日志里偶尔出现蜘蛛请求返回 500,同一时刻用户访问正常,GSC 里的服务器错误条目慢慢累积到两百多条。
真正麻烦的地方在于,几个原因的现象几乎一样。蜘蛛并发较高,触发了数据库连接数上限。也可能是缓存未命中时走全量查询,超时导致 500。
不容易想到的是,WAF 对特定 UA 的规则误判并返回 500。
上来先按时间聚合 500 记录看是否集中
grep 'Googlebot' access.log | awk '$9==500 {print $4}' | cut -c14-16 | sort | uniq -c
压测复现并观察数据库连接
mysql -e 'show status like "Threads_connected";'
给蜘蛛请求加缓存兜底
fastcgi_cache_valid 200 10m;
同一份数据我导出了两份,一份留底,一份拿来试。
这类问题以前遇到过,但这次的触发条件和上次不一样。
改完先别撤,确认这几项。蜘蛛请求的 500 归零,GSC 服务器错误条目在下次抓取后回落,抓取频率不再下降。
偶发 500 比持续 500 更危险,因为不容易被发现,但足以让蜘蛛降低整站抓取频率,还会影响新页面收录。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。