恢复后需要核对的不是“页面能不能打开”,而是重定向链、缓存头、状态码和抓取入口是否仍停留在维护态。假设一次计划维护把全站临时 302 到 /maintenance,恢复时只撤掉了入口页跳转,那么不同角色会看到不同结果:运维看到首页 200,SEO 看到内页仍 302,CDN 节点还缓存着维护页。把分歧转成可核对项,比争论“已经恢复没有”更有效。
维护期常见做法是 A 页 302 到维护页,恢复时又把维护页 302 回 A 页。如果只删掉其中一条规则,就可能留下链式跳转。用 curl -I 逐层查看 Location,确认最终落点与预期 URL 一致,而不是停在中间层。
需要区分的两种成立条件:如果维护页只对未登录用户生效,恢复后仍可能对爬虫返回 302;如果维护规则按路径前缀匹配,恢复后某些子目录仍会命中旧规则。实际动作是逐条抓取代表性 URL 并记录状态码,结果会决定下一步是改重定向规则还是清缓存。
源站返回 200 不代表边缘节点已经更新。维护页常带较长的 Cache-Control 或 Expires,恢复后这些头若未同步调整,用户和爬虫仍会拿到维护内容。核对时看响应头中的缓存指令、Age 和 Vary,而不是只看页面正文。
如果 CDN 有多个节点,应分别请求并对比。不同节点返回不同版本,说明缓存刷新范围不完整;全部节点一致返回维护页,则更可能是源站规则未撤。这个区分会影响动作顺序:先刷缓存还是先改源站。
临时维护适合用 302 或 503 加 Retry-After,但恢复后若仍返回 503,搜索引擎会继续按不可用处理。需要核对的是:最终 URL 返回 200,且不再带维护期的 Retry-After。同时检查 robots.txt 是否在维护期被改成全站禁止,恢复后是否已还原。
这里有一个容易误判的点:抓取量或请求量归零不能单独证明处理正确。它也可能来自缓存未过期、爬虫调度周期、或入口页本身没有被链接。应结合状态码、响应头和实际抓取日志一起判断。
假设某站在维护期做了三件事:全站 302 到 /maintenance、robots.txt 禁止抓取、CDN 缓存维护页 24 小时。恢复时只撤了 302。此时运维看到首页正常,SEO 看到内页仍跳转,CDN 还在发旧页。可按以下顺序核对:
Location。Age 是否已更新。robots.txt 是否恢复,并确认它只影响抓取、不等于索引移除。这个顺序的意义在于:先确定残留发生在哪一层,再决定改规则、刷缓存还是改链接。若第一步就发现最终落点正确,后面几步可以缩小范围;若第一步仍停在维护页,后面的缓存和链接核对才有明确目标。
多个角色对“是否恢复”有不同理解时,最有效的做法是统一核对口径:同一批 URL、同一时间点、同一请求方法,记录状态码、Location、缓存头和最终正文特征。这样讨论的是证据,而不是各自看到的页面。
还需要单独核查不同搜索引擎对临时维护和重定向的处理差异,不能用一个平台的表现推断另一个平台。HTTPS 只说明传输层加密,不保证页面已恢复或没有残留跳转。把这些项分开记录,才能判断下一步是继续观察还是立即修正。