先把当时的情况摆出来。robots.txt 里 Sitemap 写在 User-agent: * 分组下面,缩进对齐看着没问题,GSC 却一直没读到站点地图,只能手动提交。
这类报错背后常见的原因有几处,逐个排除就行。Sitemap 是独立指令,不隶属于任何 User-agent 分组。另一种情况是写进分组后部分解析器会当成未知字段直接丢弃。
少数情况下是地址用了相对路径,解析器要求完整 URL。
第一件事是把指令提到文件末尾独立成行
Sitemap: https://www.example.com/sitemap_index.xml
随后确认整份文件里没有重复的 Sitemap 行
grep -n -i sitemap robots.txt
末了重新抓取 robots 后看解析结果
curl -s https://www.example.com/robots.txt
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
白天有业务在跑,能验证的部分都压到了晚上做。
恢复的判定其实很直接。GSC 的 robots.txt 报告里能看到站点地图地址,提交入口不再提示未声明,抓取记录也开始出现 sitemap 请求。
一个 robots.txt 可以写多条 Sitemap,但每条都必须是绝对地址,写相对路径等于没写,而且不会报错。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。