唯一责任方应定义为“最终输出可抓取网址清单的那个系统”,而不是规则写得最多的系统。判断依据不是谁生成了URL,而是谁在发布前对合并结果做最后一次去重、过滤和确认。若缺少完整日志或权限,仍可先对任意一个页面反查其URL来源,找到最后写入者,再据此确定责任方。
多个系统同时产出网址规则时,常见角色有三类:栏目系统生成列表页和详情页,标签或聚合系统生成组合页,站点地图或推送程序生成对外提交清单。三者都可能被叫作“生成网址”,但只有最终把清单交给抓取入口的系统,才应承担唯一责任。
判断时看两点:一是该URL是否在最终清单中可见,二是谁有权在发布前删除它。若某系统只提供候选URL,却无权否决,它就不是责任方,只能算输入方。
不必等全量数据。取一个你怀疑被重复生成的页面,按以下顺序处理:
这个动作的结果会直接决定下一步:如果责任方在站点地图生成侧,就优先修合并与去重逻辑;如果责任方在栏目系统,就优先修模板输出条件。方向不同,修改位置也不同。
没有抓取日志、没有后台权限,也能做一个最小验证:选取同一内容对应的两个URL,分别观察它们在站内链接、站点地图和推送记录中的出现情况。若一个URL只出现在候选清单,另一个出现在最终清单,则最终清单的生成方就是责任方。
需要注意,这个验证只能说明“谁在输出”,不能证明“谁导致重复”。重复可能来自模板条件、参数拼接或人工提交,不能仅凭一次对照就下结论。若两个URL都出现在最终清单,则责任方可能是合并逻辑缺失,而不是某个上游系统。
定义唯一责任方后,应落到一条可执行规则,例如:最终对外可抓取URL清单由站点地图生成程序统一输出,其他系统只提供候选,不得直接提交。规则要写明三件事:谁做最终去重、谁有权删除、删除后由谁复核。
假设某站有三个系统分别生成文章页、标签页和搜索参数页,若把责任方定为站点地图生成程序,则它需要在输出前合并候选并去掉带重复参数的URL。若把责任方定为各栏目系统,则每个系统都要自行判断是否与别人重复,这通常会留下缺口。两种选择成立的条件不同:前者适合候选来源多、参数复杂的站;后者适合各栏目内容边界清晰、几乎不交叉的站。
确定唯一责任方,只说明谁对最终清单负责,不等于抓取量会立刻变化,也不等于重复URL会被索引移除。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。若你后续看到抓取量下降,可能是合并规则生效,也可能是抓取预算波动、服务器响应变化或外部链接减少,不能只凭一个现象归因。
因此,责任方确定后的下一步不是承诺效果,而是保留一份变更前后的URL清单,观察最终清单是否变短、重复参数是否减少。若清单没有变化,说明责任方可能找错了,或规则没有真正执行。