现场是这样的。robots.txt 里把 Sitemap: .../sitemap1.xml 和 Sitemap: .../sitemap2.xml 写在同一行,GSC 里只看到第一份,第二份从头到尾没有被抓取过。
中间走过弯路,把「用逗号分隔多个地址同样不被支持」当成主因,改完现象没变。
这类报错背后常见的原因有几处,逐个排除就行。一行只能有一条 Sitemap 指令,第二条被当作该行剩余内容;解析器按行读取,同一行的第二个地址直接丢弃;索引文件本来能解决,但站点没生成。
上来先看 robots 里 Sitemap 的写法
curl -s https://www.example.com/robots.txt | Select-String Sitemap
每条指令单独占一行
Sitemap: https://www.example.com/sitemap1.xml
Sitemap: https://www.example.com/sitemap2.xml
或者统一用索引文件提交
Sitemap: https://www.example.com/sitemap_index.xml
提交后确认两份都被读取
curl -s https://www.example.com/sitemap_index.xml | Select-String sitemap
改之前先确认了最近有没有人动过配置,避免白查一遍。
怎么算真的好了,看的是同一批现象。GSC 的 sitemap 列表里两份子文件都显示成功,抓取统计里出现第二条索引文件的请求。
补一句。一行一条是硬规则,多写几个地址不如做一个 sitemap 索引文件。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
