唯一责任方应当是“内链网址规则的最终裁决系统”,而不是抓取、渲染或发布链条上的任意一环。判断方法很简单:看一条内链的 href 从生成到进入页面,哪一步拥有“拒绝或改写”的权力;拥有这个权力的系统才是责任方,其余系统只能提交输入或消费结果。若两个系统都能改写 href,就必须指定一个为裁决方,另一个降级为建议方。
常见场景是:模板系统按栏目层级拼出 /category/product-a,而商品系统按自身 ID 生成 /p/12345。两个网址都能打开页面,于是内链里一半指向层级路径,一半指向 ID 路径。此时若只问“谁的规则对”,会陷入循环;真正要问的是“谁有权否定另一方的输出”。
这个现象有两种合理解释。第一种是两套系统各自独立运行,缺少统一出口,属于规则冲突。第二种是其中一套只是历史遗留或缓存产物,实际已不再生成新链接,属于残留数据。两者表现相似,但处理方式完全不同:前者需要定责和收敛,后者只需清理存量。
要区分冲突与残留,可以核对三类可观察证据:
这些证据只能说明“谁在写”,不能单独证明“谁写得对”。抓取量或内链统计归零,也可能来自抓取调度、页面未发布或统计口径变化,不能直接当作某系统已停止生成的证据。
把分歧转成可核对的项目,需要为裁决方设定明确条件:
假设某站规定商品系统为裁决方,模板系统改为只提交栏目参数。动作是:在模板输出前增加一次规范化调用,把候选 href 交给商品系统校验。结果是模板不再直接拼接最终网址,冲突来源被切断;下一步就可以安全地清理存量中的旧路径,而不必担心新页面继续产生两套链接。
责任方一旦确定,内链建设的检查对象也随之变化。原本检查“页面里有没有链接”,现在要检查“链接是否都来自裁决方”。具体动作包括:把内链生成逻辑收敛到单一模块;对存量页面做一次来源标注;对无法标注来源的链接单独隔离,而不是直接删除。
需要提醒的是,站点地图或 robots.txt 不能替代这套定责。站点地图不保证收录,robots.txt 的抓取限制也不等于可靠的索引移除。它们处理的是抓取与发现层面,而内链网址规则处理的是链接生成层面,两者不能互相顶替。
假设某站有两个系统:A 生成带语言前缀的网址,B 生成不带前缀的网址。若规定 A 为唯一责任方,则 B 的输出必须经过 A 校验;校验失败的链接进入待处理清单,而不是直接上线。这个假设的关键不是谁更先进,而是谁拥有最终否决权。若两边都能否决对方,项目就会退回到“谁都不负责”的状态,内链问题会反复出现。
因此,定义唯一责任方的落点不是组织架构,而是一条可执行的规则:每条内链只能有一个最终生成者,其他系统只能提供输入。做到这一点,多个系统同时生成网址规则的分歧才会变成可以核对、可以收敛的项目。