维护页撤下后,真正要核对的是它留下的缓存、重定向、状态码和外部引用是否还在影响旧链接。最容易被忽略的是:页面已经恢复,但服务器仍对部分旧地址返回维护页内容或缓存副本,此时死链修复工具会把本可恢复的链接继续判为异常。
两种做法的残留信号完全不同。整站拦截通常靠服务器配置或CDN规则,恢复后要核对的是规则是否真正关闭;按路径拦截往往给旧链接单独返回维护页,恢复后要核对的是这些路径是否回到正常内容或正确跳转。
如果维护期间对所有请求返回 503 并带 Retry-After,恢复后先确认旧链接返回的是 200 或符合预期的 301,而不是仍带维护页正文的 200。这种“状态码正常、内容不对”的情况,死链修复工具往往不会报错,只能靠人工抽查发现。
保留适用于维护页只做短暂拦截、恢复后旧链接全部回到原地址的情况。此时不必改动链接结构,但要核对缓存和重定向是否同步失效。
改写适用于维护期间部分旧链接已被合并或替换。此时要把维护页的跳转目标改成新的正式地址,并确认跳转是永久还是临时:如果只是临时维护,用 302;如果链接结构确实变了,才考虑 301。把临时跳转写成永久跳转,会让后续回退变得困难。
退出适用于维护页对应的旧地址已经确定不再使用。此时应让这些地址返回 410 或 404,而不是继续返回维护页内容,否则死链修复工具会一直把它们当作待恢复链接。
503 或维护页 200。这些信号里,缓存和重定向最容易造成误判。一个假设例子:维护期间把 /old-a 跳转到维护页,恢复后只改了服务器配置,但CDN缓存仍保留旧跳转。此时访问 /old-a 仍到维护页,死链修复工具会继续报告异常;先失效该路径的缓存,再重新抽查,才能判断链接本身是否真的有问题。
运维可能认为“配置已回滚”,SEO可能认为“链接仍异常”,内容团队可能认为“页面已恢复”。分歧的根源通常是各自看的是不同层:服务器配置、缓存层、抓取结果。与其争论结论,不如把每个分歧写成一条可核对项,注明核对对象和预期结果。
例如,把“维护页是否还在生效”拆成:源站对 /old-a 返回什么状态码、CDN 对该路径返回什么、外部抓取工具看到什么。三项分别核对后,分歧自然收敛到具体一层。核对结果会直接决定下一步:如果源站正常而缓存异常,动作是失效缓存;如果源站仍返回维护页,动作是回查服务器规则。
只有在确认残留信号已清理、旧链接的真实状态稳定后,再用死链修复工具批量扫描才有意义。否则工具会把缓存或维护规则造成的临时异常当成真实死链,导致误删、误跳转。扫描后如果仍有个别地址异常,先回到对应层核对,而不是直接批量改写链接。