sitemap 提交后状态一直显示已提交,已发现网址 0,14 天没有变化,同一个域名下的旧 sitemap 却是成功。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

curl -IL https://example.com/sitemap.xml
curl -o /dev/null -s -w "%{http_code} %{url_effective}" -L https://example.com/sitemap.xml

sitemap 地址返回 302 跳到带 www 的域名,提交的是不带 www 的版本,抓取端跟随后把状态挂在另一个资源下。DNS 和 robots 都没问题。这一点先确认清楚,后面就不用反复试。

「sitemap 待处理」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

具体做法是,用 curl 看 sitemap 地址的完整跳转链;统一域名,提交最终返回 200 的那个地址;在 Search Console 里删除旧条目重新提交。

改完照着核一遍,重新提交后 48 小时内状态变成成功,已发现网址不再是 0。

作者 9823189