这类问题我又碰上了一次。WAF 上线后把 robots.txt 也纳入规则,对蜘蛛返回 403,Search Console 显示整站已被 robots.txt 屏蔽,而文件内容其实是允许抓取的。

第一反应是「CDN 缓存了 403,规则放行后仍返回错误」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。WAF 把 robots.txt 当成敏感路径,对非浏览器 UA 一律 403;403 在部分爬虫里被解释成全站禁止;规则按路径前缀匹配,把站点地图也一起挡了。

上来先确认蜘蛛看到的状态码

curl -sI -A 'Googlebot' https://www.example.com/robots.txt

随后在 WAF 里给 robots 和站点地图加白

example.com/robots.txt allow all

然后清掉被缓存的 403

curl -X PURGE https://www.example.com/robots.txt

等前面都确认过,再用抓取测试确认恢复

https://search.google.com/search-console/robots-testing-tool

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

怎么算真的好了,看的是同一批现象。放行后蜘蛛拿到的 robots 恢复 200,屏蔽提示几天内消失,抓取量回到正常水平。

WAF 放行要按路径精确配置,别用整站关闭规则的方式换恢复,等于把防护也撤了。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189