事情本身不复杂,线索都在日志里。sitemap 提交成功,状态显示已读取,但覆盖率报告里有效页面一直是零,站点实际有几百篇原创文章,浏览器访问也都正常。
真正麻烦的地方在于,几个原因的现象几乎一样。sitemap 里的地址全部返回 301 或 404。还有一种是robots.txt 挡住了 sitemap 所在目录,抓取后拿不到内容。
不容易想到的是,站点被手动操作处罚,任何提交都不会进索引。
批量抽样检查状态码
curl -s -o /dev/null -w '%{http_code}' https://www.example.com/post-1
再往下确认 robots 没有挡 sitemap 路径
curl -s https://www.example.com/robots.txt | grep -i sitemap
末了查看手动操作报告里有没有处罚记录
curl -s https://www.example.com/sitemap.xml | head -3
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
恢复的判定其实很直接。抽样状态码全部为 200,重新提交后有效页面数开始增长,已发现数量同步出现。
提醒一点。sitemap 读取成功不等于 URL 有效,这两份数据要分开看,否则会一直在错误的方向上排查,浪费很多时间。这类问题最好一次改到位,反复小改反而容易把原因搅混。