记录一下那天晚上的排查过程。一批页面在报告里显示已抓取但被 robots.txt 屏蔽,站点从没主动改过 robots,打开文件也找不到对应路径的规则。
排查方向其实有限,先把可能性排一排。安全插件动态追加了 Disallow 规则。也可能是CDN 节点缓存了不同版本的 robots.txt。
少数情况下是规则用了通配符,匹配范围比预期大。
先确认各节点返回的 robots 是否一致
for h in a b c; do curl -s https://$h.example.com/robots.txt | md5sum; done
接着找出匹配目标路径的规则
grep -n 'Disallow' robots.txt
末了清缓存并统一文件内容
curl -X PURGE https://www.example.com/robots.txt
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
改完先别撤,确认这几项。各节点返回一致,报告里的屏蔽条目减少,页面重新被抓取并回到索引。
这里还有个坑。被屏蔽的页面如果之前已经收录,改回来之后需要一段时间才会重新抓,别指望立刻恢复,期间不要反复改规则。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。