临时维护期间常见的做法是把整站或大部分路径用 Disallow: / 挡住,恢复后删掉规则。但删掉规则只代表爬虫现在被允许抓取,不代表维护期留下的其他信号已经同步归位。需要核对的残留信号主要有四类:robots.txt 自身的缓存与解析状态、维护页面的状态码与响应头、站点地图与页面内指向维护状态的痕迹、以及各搜索引擎已抓取版本中残留的维护结果。下面用一个假设情境把判断过程串起来。
假设某站点因数据库迁移挂了三天的维护页,期间 robots.txt 为 Disallow: /,维护页对所有路径返回 503 并带 Retry-After。第四天恢复原站并删除 Disallow,此时首页可正常访问。这个情境下,最容易被忽略的不是“现在能不能抓”,而是维护那三天里爬虫记录到的中间状态是否还在被引用。
此时能执行的最小动作是:先取一次线上 robots.txt 原始响应,确认返回 200、内容里确实没有残留的 Disallow 行,再检查维护页是否已经不再被任何路径命中。这个动作的结果决定下一步——如果 robots.txt 已干净但爬虫仍频繁访问维护页 URL,说明问题不在规则,而在别处留下的指向。
robots.txt 会被搜索引擎缓存一段时间,删掉规则后短时间内爬虫仍可能按旧规则行事。这不是规则没生效,而是缓存周期问题。判断依据可以看服务器日志中 robots.txt 的请求频率:如果恢复后一段时间内请求量明显下降,通常说明缓存已刷新;如果仍被高频请求,可能只是缓存未过期,也可能是其他原因,比如爬虫在定期复核。
需要注意,请求量下降或归零不能单独证明处理正确。爬虫减少访问 robots.txt,也可能是因为它转向抓取其他路径、抓取预算被分配到别处,或该爬虫本就不常来。所以这一步的结论只能是“缓存可能已刷新”,不能推出“索引状态已恢复”。
还要确认解析层面没有冲突:同一站点如果同时存在多份规则来源(例如不同子域、不同协议下的 robots.txt),删掉其中一份不代表另一份也干净。核对方法是分别请求各来源,逐一确认没有残留的 Disallow 行。这一步的前提是你有权限访问这些来源;如果缺少权限,只能记录“无法确认”,不能假设已清理。
维护期间常见的错误是让真实 URL 也返回维护页内容,且状态码用 200。恢复后如果只删了 robots.txt 规则,但真实 URL 仍返回维护页,爬虫会把它当成正常内容重新抓取,等于把维护页当正文收录。核对顺序建议是:
Retry-After、Cache-Control: no-store 等临时指令。这里有一个实际动作:对首页和一个内页各取一次响应头,比较两者是否一致。如果内页仍带维护期响应头,说明恢复不完整,下一步应先修内页再谈收录。如果响应头已一致,说明服务端层面基本归位,可以进入下一步核对。缺少权限时,至少可以用公开可访问的 URL 做这两次请求,但无法查看服务端配置,结论仅限于“外部表现正常”。
维护期间有人会把站点地图替换成只含维护页的版本,或者把页面模板改成指向维护公告。恢复后如果站点地图没换回来,爬虫会继续按旧地图抓取。核对点是:站点地图里是否还包含维护页 URL、是否缺少恢复后的正常 URL、lastmod 是否停留在维护开始那天。
同时检查页面本身:导航、页脚、结构化数据里是否还有“系统维护中”之类的文字或指向维护公告的链接。这些痕迹不会因为 robots.txt 恢复而自动消失。需要说明的是,站点地图不保证收录,更新地图只是给爬虫一个参考,不能据此推断页面一定会被重新抓取。
如果站点地图和页面痕迹都已清理,下一步可以观察爬虫对正常 URL 的抓取是否回升;如果没有回升,也不能直接归因于地图,可能是抓取预算、页面质量或其他因素,需要结合日志再判断。
维护期间被爬虫抓到的维护页,可能已经进入索引或缓存。恢复后需要区分两种残留:一种是搜索结果里仍显示维护页摘要,另一种是缓存副本仍是维护页。这两者的处理方式不同——前者通常等待重新抓取后自然更新,后者可能通过缓存刷新机制处理,但具体入口和是否可用取决于各搜索引擎的现行支持情况,需要分别核查,不能一概而论。
这里要澄清一个常见误解:robots.txt 的抓取限制不等于可靠的索引移除。维护期用 Disallow 挡住,只是阻止抓取,已经收录的 URL 不会因此自动消失;反过来,删掉 Disallow 也不等于旧版本立刻被替换。所以核对残留信号时,不能把“robots.txt 已恢复”当成“索引已恢复”的证据。
在缺少索引数据或站长工具权限的情况下,能执行的最小动作是用公开搜索或缓存查询观察维护页是否还出现,并记录观察日期。这个动作只能说明“当时可见的状态”,不能推出“已经处理完成”或“不会再出现”。如果观察到维护页仍存在,下一步是确认对应 URL 当前返回的是正常内容,再决定是否等待或采取其他动作。
把上面四类信号列成一张核对表,每项只记“已确认 / 未确认 / 无法确认”,不要写“已修复”。已确认的项目可以暂时放下;未确认的项目优先处理服务端和站点地图;无法确认的项目注明缺少什么权限或数据,避免用推测填补。这样做的结果是:你能清楚知道哪些残留信号有依据、哪些只是假设,下一步动作也就有了明确边界,而不会把“robots.txt 已恢复”误当成整站恢复完成的标志。