先给结论:不要按“谁先上线谁负责”或“谁的配置能覆盖谁”来定责任方,而要先确定哪一层输出的是最终可抓取的规范网址。具体做法是选一条真实网址,从内容源、路由层、渲染层、站点地图与内链逐层记录它如何被改写,最后能改变规范网址的那一层就是唯一责任方;其余系统只能提交输入,不能各自定义网址。这个判断只在单个样本成立时容易,规模放大后必须用分层抽检验证,不能直接照搬。
多个系统同时生成网址规则,通常出现在内容源、路由或重写层、前端渲染层、站点地图生成器、内链模板同时存在时。责任方只能有一个,判据是“最终规范网址由谁输出”。
选择依据不是团队规模或系统新旧,而是能否指出“哪一层输出的网址会被爬虫当作最终链接”。指不出来,就先做出口收敛,而不是先分责任。
选一条已收录或已提交的网址,按下面顺序记录,每一步只记录“输入是什么、输出是什么、是否改变规范网址”。
动作的结果决定下一步:如果只有一层改变了规范网址,把该层定为唯一责任方,其余系统改为只提交输入并接受校验;如果两层以上都能改变规范网址,先冻结其中一层的输出权限,再重新追踪,直到只剩一个出口。这个动作不需要改算法,只需要改配置归属和校验入口。
单条网址追踪通过,不代表批量成立。常见例外有三类,必须分别处理。
假设一个例子:某站路由层输出 /item/123,渲染层却输出 /item/123?from=list,站点地图又输出 /item/123/。单看首页样本可能只看到第一种,规模化后带参数和分页的网址开始出现例外。此时不能把三个系统都列为责任方,而应把路由层定为唯一出口,渲染层和站点地图改为只读输入,并用分层抽检验证参数、分页、语言前缀三类样本是否一致。
责任划分生效的标志不是配置改完,而是后续新增网址只从一个出口产生。验证时抓取一批新生成网址,检查它们是否全部来自同一出口层,并记录例外类型。如果例外仍集中在某一层,说明该层还在输出规范网址,责任方并未真正唯一。
需要说明边界:robots.txt 的抓取限制不等于可靠的索引移除,HTTPS 也不保证安全无漏洞或排名。这些手段不能用来替代网址出口收敛。请求量或抓取量下降也不能单独证明责任划分正确,它还可能来自抓取预算变化、站点地图更新延迟或内链调整。只有逐层追踪和分层抽检同时支持“只有一个出口层”时,才能把该层认定为唯一责任方,并据此决定下一步是继续收敛还是进入规模验证。