生成的 sitemap.xml 有 6.2 万条 URL,文件 9.8MB,Search Console 显示已读取 50000 条,剩下 1.2 万条一直没进索引。日志里能对上时间点,这种反而好排。
sitemap 协议规定单个文件最多 50000 条且不超过 50MB,超出的部分解析器直接截断。生成器没有自动切分,也没有输出索引文件。这一点先确认清楚,后面就不用反复试。
wp sitemap rebuild --max-urls=40000 curl -s https://example.com/sitemap_index.xml curl -s https://example.com/sitemap-1.xml | grep -c "<loc>"
这次卡住的地方就在「sitemap 单文件超限」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
处理上按这个顺序:把生成器改成每 40000 条输出一个子图;再生成一个 sitemap 索引文件指向所有子图;提交索引文件,确认每个子图都能单独打开。
结果对不对很好判断,索引文件列出 2 个子图,每个不超过 4 万条,Search Console 显示全部已读取。
