问题出现得很突然,日志倒是留得挺全。GSC 里 sitemap 的读取状态是 503,浏览器打开正常,隔几分钟再试又能读到,抓取记录断断续续。

真正麻烦的地方在于,几个原因的现象几乎一样。生成 sitemap 时实时查库,耗时过长触发网关超时并返回 503。也可能是服务器对爬虫做了限流,短时间内多次请求被拒绝。

少数情况下是文件过大导致 PHP 内存耗尽,进程被回收。

先重复请求几次看是否稳定复现

for i in 1 2 3; do curl -s -o /dev/null -w '%{http_code} ' https://www.example.com/sitemap.xml; done

再往下改成静态文件定时生成

wp sitemap generate --quiet

给 sitemap 单独放宽超时和内存

fastcgi_read_timeout 60s;

白天有业务在跑,能验证的部分都压到了晚上做。

改完先别撤,确认这几项。连续多次请求都返回 200,GSC 里的读取状态恢复正常,读取到的条数稳定不再波动。

容易忽略的是,动态生成的 sitemap 在流量高峰最容易超时,缓存成静态文件基本能根治,顺带还能降低数据库压力。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189