这个坑值得记一笔。GSC 覆盖率里有一批页面报 5xx,点进去用浏览器访问全部正常,本地日志里也找不到对应的错误记录,只有抓取统计在持续累积。

原因不止一个,得分开看。蜘蛛请求集中在某一时段,正好撞上后端重启或限流;部分 CDN 节点回源失败,本地访问命中的是健康节点;PHP 进程数被打满,蜘蛛的并发请求被直接拒绝。

先按 UA 过滤日志查 5xx 记录

grep 'Googlebot' access.log | awk '$9>=500' | head

模拟蜘蛛并发请求复现

for i in $(seq 1 20); do curl -s -o /dev/null -w '%{http_code} ' https://www.example.com/; done

调高后端进程上限并加健康检查

pm.max_children = 40

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

别只看报错消失,验证要多做一步。并发测试全部返回 200,GSC 里的服务器错误条目在下次抓取后回落,抓取量随之恢复。

容易忽略的是,只在蜘蛛 UA 下出现的 5xx,多半是 WAF 或限流规则误伤,先关掉规则验证,再考虑放宽参数,别急着改代码。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189