提交时从浏览器地址栏复制,末尾带了问号,GSC 里记成 sitemap.xml?,状态一直是待处理,反复请求抓取也没有反应。

这类报错背后常见的原因有几处,逐个排除就行。带参数的地址被当成另一个文件,蜘蛛请求到的是 301。也可能是服务器对问号结尾做规范化跳转,跳转目标没有登记。

另外,同一路径的重复提交只保留先登记的那条。

上来先看带问号的实际响应

curl -sI 'https://www.example.com/sitemap.xml?' | head -3

再往下删除旧记录再提交干净地址

curl -s https://www.example.com/sitemap.xml | head -2

随后核对 robots 里的声明

curl -s https://www.example.com/robots.txt | grep -i sitemap

剩下的就是查看状态码是否 200

curl -s -o /dev/null -w '%{http_code}' https://www.example.com/sitemap.xml

这次没动代码,只在配置和运行环境上找原因。

改完先别撤,确认这几项。新地址状态变为成功且已发现地址数不为零,旧记录从列表移除,日志里不再出现带问号的请求。

这里还有个坑。复制地址时顺手看一眼结尾,这类提交错误占比不低,删掉重建比等重试快。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189