唯一责任方应当落在“最终写出线上可访问URL集合”的那一层,而不是落在最早提出链接建议的系统。若URL由CMS、商品中心、路由服务或前端拼接共同产生,先确定谁拥有发布权:只有发布权持有者才能对死链负责。判断方法很简单:把同一批URL拿去比对线上实际返回状态,如果某个系统生成的地址从未被发布层写入,它就不该成为责任方。变化点在于,当业务从单系统生成URL转为多系统拼接时,责任方必须从“内容编辑”迁移到“发布层”;如果发布层无法覆盖全部入口,则应保留旧规则并限制新系统直接输出链接,而不是让两套规则并行。
多个系统同时生成网址规则时,常见冲突是:A系统生成带参数链接,B系统生成静态路径,C系统负责渲染。此时不能按“谁先产生链接”定责,而要按“谁决定该URL是否可被外部访问”定责。生成权只是建议,发布权才是承诺。若发布层明确拒绝某类参数,那么该参数链接即使被其他系统大量引用,也应由引用方承担清理责任,而不是由发布层兜底。
实际动作:先导出一份线上可访问URL样本,再分别与各系统生成的URL清单做交集。结果会直接决定下一步:交集之外、但被发布层引用的地址,属于发布层责任;发布层未引用、却被其他系统写入页面的地址,属于引用方责任。这个动作不需要复杂工具,用站长工具死链报告和服务器访问日志即可完成初步比对。
保留旧规则的前提是:旧URL仍有外部入口,且发布层能稳定返回有效内容。此时应保留旧路径,并让新系统生成的链接统一指向旧路径,避免两套规则同时对外。改写的前提是:旧URL已无业务价值,但仍有少量外部引用;此时应在发布层做一次映射,把旧地址指向新地址,并停止其他系统继续生成旧格式。退出的前提是:旧URL从未被发布层引用,也没有外部入口;此时应直接删除生成规则,而不是保留空壳。
三种取舍不能同时成立。若发布层已无法确认旧URL是否被引用,优先选择保留,因为退出会放大不确定性;若发布层能确认旧URL已无访问,改写或退出才成立。这里的关键依据不是“死链报告数量”,而是“发布层是否仍对外承诺该地址”。
假设某站点有三个系统:内容系统生成文章路径,商品系统生成商品路径,路由服务负责最终输出。内容系统生成 /article/123,商品系统生成 /item/456,路由服务只允许 /p/123 和 /p/456 对外。此时唯一责任方是路由服务,因为它决定最终可访问集合;内容系统和商品系统只负责提供内容标识,不负责对外路径。
如果路由服务把两个路径都拒绝,而内容系统仍在页面中写入 /article/123,那么责任方就转移到内容系统,因为它仍在对外输出未被发布层认可的地址。这个假设说明:责任方不是固定组织,而是随“谁在对外输出可访问地址”变化。下一步动作是停止内容系统直接输出路径,改为输出内容ID,由路由服务统一生成。
站长工具死链报告中的数量下降,可能来自抓取减少、屏蔽规则生效或报告延迟,不能单独证明责任方已经唯一。robots.txt 的抓取限制不等于可靠的索引移除;站点地图不保证收录。若报告归零但发布层仍在输出旧路径,问题只是暂时不可见。更可靠的证据是:发布层输出的URL集合与外部引用集合是否一致。若不一致,责任方仍未收敛。
因此,处理顺序应是先确定发布权,再决定保留、改写或退出,最后才看死链报告变化。若发布权无法确定,任何清理动作都可能把责任推给错误的一层。
唯一责任方要落到可执行的规则上:发布层负责最终URL格式,其他系统只提供内容标识;任何新增URL规则必须先经过发布层确认;旧规则退出前,先确认没有外部引用。这样做的结果不是立刻消除所有死链,而是让后续新增链接不再产生两套规则。下一步只需定期比对发布层输出与外部引用,发现不一致时按“谁对外输出”追责,而不是按“谁生成”追责。