站点按栏目拆了 12 份 sitemap,全部写进 robots.txt 的 Sitemap 行。GSC 里只显示发现了 1 份,其余 11 个栏目的新文章收录都慢了一周。
一开始怀疑是「文件里 Sitemap 行写在了 User-agent 分组内部,位置不规范」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。部分解析器只取第一条 Sitemap 记录,其余直接忽略。少数情况下是12 条记录里混用了 http 与 https 两种协议,有一半被丢弃。
不容易想到的是,其中几条地址带了尾部空格,解析后 404。
第一件事是列出所有 Sitemap 行并检查协议与空格
grep -n '^Sitemap' robots.txt | cat -A
随后改成只提交一个索引文件
Sitemap: https://www.example.com/sitemap_index.xml
接着确认索引文件里包含全部子 sitemap
curl -s https://www.example.com/sitemap_index.xml | grep -c '<loc>'
剩下的就是在 GSC 里重新提交并观察发现数
curl -s 'https://www.example.com/sitemap_index.xml' -o /dev/null -w '%{http_code}\n'
改完先别撤,确认这几项。GSC 里的已发现 sitemap 从 1 个变成 12 个,新文章的平均收录时间从七天缩到两天,抓取统计里各栏目都有请求。
sitemap 的入口保持一个索引文件最稳,robots 里只写这一行,增删栏目时不用再改 robots。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
