死链检查方法改动前怎样保存原始状态:别把“先备份”当成复制一份链接清单

📍 WDQWDWQD987AAAAA:216.73.217.52
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /25a5c092c78e.html
📄

死链检查方法改动前怎样保存原始状态:别把“先备份”当成复制一份链接清单

死链检查方法在改动前保存原始状态,核心不是只保存一份“待处理链接列表”,而是同时固定三样东西:检查范围与入口、当时的响应结果、以及页面之间的链接关系。只复制链接清单,改完后无法判断问题是被修复了、被隐藏了,还是因为抓取范围变化而消失。正确做法是:先冻结检查口径,再保存可复核的原始证据,最后才动页面。

常见误解:保存了链接清单就等于保存了原始状态

很多人做死链检查时,把工具导出的 URL 列表另存一份,就认为原始状态已经保住了。这份清单只能说明“当时发现了哪些链接”,不能说明这些链接是从哪个页面发现的、服务器返回的是 404 还是 403、是否被 robots.txt 拦截、是否是跳转链中的一环。改动后如果清单对不上,就无法复盘。

另一种误解是只保存首页或站点地图。站点地图只覆盖提交者愿意列出的 URL,不保证等于全站真实链接;首页更只是入口之一。用它们当原始状态,范围天然缺失。

改动前应固定的检查口径

先写清楚这次死链检查是在什么条件下做的,后续复核必须沿用同一条件,否则结果不可比。至少固定以下项目:

这些条件不写下来,改完再抓一次,差异可能来自设置变化,而不是页面变化。

保存原始状态时应该存哪些证据

建议按“可复核”标准保存,而不是按“方便阅读”标准保存。可执行的保存步骤如下:

  1. 导出原始抓取结果,保留来源页、目标链接、状态码、跳转链、发现次数等字段,不要只留一列 URL。
  2. 对每个待处理链接,保存当时的响应头关键字段,例如状态码、Location、X-Robots-Tag。这能区分 404、301 跳转和 noindex。
  3. 保存来源页面的链接上下文,例如该链接出现在正文、导航还是页脚。同一链接在不同位置的处理优先级不同。
  4. 保存 robots.txt 与站点地图在检查时点的内容,作为范围说明,而不是收录保证。
  5. 把以上文件按“日期+检查口径”命名归档,并在改动记录中写明对应关系。

如果链接数量很大,可以只对判定为死链、跳转链和疑似软 404 的条目做逐条保存,其余保留汇总导出。判断标准是:改动后能否凭这些证据复现当时的结论。

一个可操作的对照例子

假设某页面正文里有一个指向旧活动页的链接,检查时返回 301 跳转到频道页,工具把它记为“跳转”而非死链。改动前只保存了“跳转”这个标签,改完后把该链接直接删掉,再抓取时它从报告里消失。此时无法判断:是跳转被修好了,还是链接被删了。

如果原始状态里保存了来源页、目标 URL、301 与 Location 值,就能对照确认:该条目消失是因为来源页不再包含这个链接,而不是跳转问题被解决。这就是保存原始状态与只保存清单的区别。

改动后如何用原始状态复核

改动完成后,用同一口径再检查一次,然后逐项对照:

如果复核结果与原始状态无法对齐,优先回到检查口径,而不是直接改页面。口径不一致时,任何“修复成功”的判断都不成立。

下一步:在下一次改动前,先按上面的口径做一次基线检查并归档,把原始状态文件与改动记录放在同一目录,确保改完后能用同一条件复现对照。

图1 图2

nginx