站点按栏目拆了 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。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189