先把结论说清楚:异常恢复后看到死链工具结果变好,不能直接当成修复成功。缺少完整日志或服务器权限时,最可靠的做法是选一个受影响页面,用带随机参数的请求绕过缓存,对比状态码、响应头和页面正文三者是否一致;只有三者都指向同一结果,才能把这次变化归为真正修复,否则更可能是缓存过期或中间层刷新。
不要一上来就重跑整站。挑一个此前被死链工具标记、现在又显示正常的页面,把它当作样本。你需要同时记录三样东西:
Age、Cache-Control、X-Cache 这类能说明内容来自缓存还是源站的标记。如果状态码变好但正文仍是旧内容,或者响应头显示命中了缓存层,那么这次“恢复”更可能是缓存过期,而不是源站真的被修好。
缓存最容易制造假象。你可以在样本 URL 后加一个不影响内容的随机查询参数,例如 ?probe=20240613a,再请求一次。这个动作的目的不是“刷新缓存”,而是让请求尽量落到源站或未命中的缓存节点上。
对比两次结果:
这个动作的结果会直接决定下一步:若带参数请求也恢复正常,才值得扩大检查范围;若带参数请求仍异常,就不要继续批量验证,先回到源站或上游处理。
死链工具结果恢复,至少有三种合理解释:
请求量、抓取量或某项统计归零,不能单独证明处理正确。它也可能来自抓取限制、超时、工具侧抽样或数据延迟。要排除这些解释,至少需要确认同一 URL 在不同时间、不同请求方式下返回一致结果。
如果你没有服务器日志、没有 CDN 配置权限,也不掌握源站改动记录,仍然可以做三件小事:
做完这些,你能得到的结论仅限于:该样本在当前请求路径下是否仍异常、是否明显受缓存影响。你不能据此推出全站已修复,也不能推出所有搜索引擎都已重新抓取。站点地图不保证收录,robots.txt 的抓取限制也不等于可靠的索引移除;这些都需要分别核查。
假设某页面此前被死链工具标记为 404,今天工具显示正常。你不带参数请求,返回 200,正文是旧版错误页;带随机参数请求,返回 404,正文是源站错误页。此时更合理的判断是:缓存层存有旧的成功响应,源站问题仍在。下一步不应批量重跑全站,而应先处理源站或上游重定向,再重新用同样方法验证同一个样本。只有带参数和不带参数都返回一致的正确内容,才把这次变化视为真正修复。
把这个样本结论记录下来,再决定是否扩大验证范围,比直接相信工具面板上的“恢复”更稳妥。