维护期间整站返回 503,恢复上线后抓取量好几天都上不来,日志里蜘蛛的访问次数比维护前少了一大截,提交地图也没用。乍看像缓存或者权限的锅,追下去往往不是。
curl -sI https://example.com/robots.txt | head -1 # 维护期间这一行应始终是 200 OK
追下去是这么回事:robots.txt 返回 5xx 会被当作临时不可用,引擎暂停抓取再逐步恢复,节奏由它自己定;返回 4xx 则相反,会被当成没有限制直接放开抓。
「robots.txt 503」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
具体做法是,维护期间要单独保证 robots.txt 仍然返回 200;用固定内容响应,不要跟着整站一起返回 503;恢复后重新提交一次站点地图催一催。
验收就看一点,维护期间 robots.txt 状态码保持 200,恢复后的流量比往常回落更少。
