把开关变化前后的页面当成两个独立版本分别留档,而不是只记录“开关已改”这一事实。具体做法是:在改动前后各抓取一次返回内容,保存状态码、最终URL、响应正文摘要和抓取时间,再把这些字段与开关状态一起写进同一份变更记录。这样做的目的是让后续看到的死链报告有可对照的基线,而不是只能凭记忆判断某条记录是改动前遗留还是改动后新产生。
功能开关常改变页面的输出路径:同一URL可能因开关关闭而返回精简版、重定向到另一路径,或因模块被移除而直接404。如果记录里只有“某日调整了开关”,没有当时页面实际返回的内容,那么之后在站长工具里看到一批死链,就无法判断它们来自开关关闭的那段时间,还是开关打开后新暴露的旧问题。
一个可核对的证据结构至少包含四类字段:抓取时间、请求URL、HTTP状态码与最终URL、响应正文中与开关直接相关的那段可见文本。缺少正文摘要时,仅凭状态码无法区分“页面正常但内容被开关裁掉”和“页面真的不存在”。这两类问题在后续处理上完全不同:前者要查开关配置,后者要查链接来源。
假设某列表页由开关控制是否输出分页链接。开关关闭时页面返回200,但正文里没有分页链接;开关打开后返回200,正文出现分页链接。若只记录“开关已打开”,之后站长工具报告部分分页URL为死链,你会缺少判断依据。
按版本记录的做法是:关闭状态下抓取一次,保存状态码200、最终URL为原地址、正文摘要记为“无分页链接”;打开后再抓取一次,保存状态码200、最终URL为原地址、正文摘要记为“含分页链接若干”。当死链报告出现时,先比对该URL是否出现在打开后的正文里。出现在正文里,说明链接由开关打开后的页面输出,需要回到链接生成逻辑排查;未出现在正文里,则更可能来自外部引用或历史缓存。这个对比动作直接决定下一步是查模板还是查外链。
开关改动后死链数量上升,存在多种合理解释,不能直接归因于开关本身:
要区分这些解释,靠的是改动前后的成对记录,而不是单次快照。成对记录能回答一个关键问题:这条死链在开关关闭时是否已经存在。已存在,属于暴露;不存在,才需要怀疑开关打开引入了新的链接生成。
拿到一份带版本状态的记录后,按以下顺序处理,每一步的结果都会缩小下一步的范围:
需要提醒的是,robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录。记录版本状态解决的是判断依据问题,不解决收录结果问题。如果开关改动同时涉及HTTPS配置,也要注意HTTPS不保证安全无漏洞或排名,不能把协议变化当作死链问题的解释。
最终判断标准很简单:当你再次打开站长工具死链报告时,能否用记录回答“这条链接在开关关闭时是否已经返回过这个状态”。能回答,记录就有效;不能回答,说明还缺一次改动前的抓取。