主题注册了 product 这个自定义文章类型,前台能正常访问,wp-sitemap.xml 里却只有文章和页面。几千个产品页只能靠内链被发现,收录进度很慢。
把日志和配置对完,能解释这个现象的基本就这几处。注册时没有设置 public 和 publicly_queryable 参数。也可能是没有把该类型加入 sitemap 允许列表,核心直接跳过。
少数情况下是插件接管了 sitemap 输出,覆盖了默认的分片逻辑。
动手时先查看当前 sitemap 包含哪些类型
curl -s https://www.example.com/wp-sitemap.xml
注册时补上公开参数
register_post_type('product', ['public' => true]);
末了确认分片地址已经生成
curl -sI https://www.example.com/wp-sitemap-posts-product-1.xml | head -1
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
白天有业务在跑,能验证的部分都压到了晚上做。
恢复的判定其实很直接。wp-sitemap.xml 里出现 product 的分片入口,产品页的发现速度明显加快。
这里还有个坑。只加 public 还不够,重写规则需要刷新一次,否则新类型的分页地址会 404,重新保存一次固定链接即可。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。