唯一责任方应定义为“规则合并与最终发布”这一环节的归属者,而不是生成网址的任一系统。假设某电商站有商品中心、内容平台和活动配置三套系统,都会输出可访问网址,并各自维护一份 robots 或站点地图片段。此时若把责任拆给三个团队,冲突规则会同时上线,抓取异常后无人能判断哪条规则生效。可行做法是:指定一个发布方,其他系统只提交候选条目,由发布方统一去重、排序、落盘并留版本记录。
多个系统同时产出网址,并不等于它们都该产出抓取规则。网址生成是业务事实,规则生成是发布决策。把两者混在一起,常出现三种局面:
这三条诉求单独看都合理,合在一起却互相覆盖。责任方要解决的不是“谁更懂业务”,而是“谁有权把候选规则变成线上生效规则”。
适用条件是系统之间网址空间天然隔离,例如 a.example.com 与 b.example.com 分属不同业务,规则文件也分开托管,互不拼接。代价是跨子域的抓取预算无法统一观察,一旦某个子域规则写错,排查要逐域进行。若三套系统共用同一主域,这种做法通常不成立,因为 robots.txt 只有一份,片段无法自动合并成合法文件。
适用条件是共用主域、共用一份 robots.txt,或站点地图由统一入口输出。代价是发布方成为瓶颈,需要定义提交格式、审核时限和回滚方式。选择条件可以简化为一句:只要线上最终只有一个规则文件或一个站点地图索引,就必须集中发布;只有当规则文件物理分离且互不引用时,自治才成立。
假设情境:某站商品系统希望屏蔽带 ?sort= 的排序页,内容系统希望这些页被抓以便收录筛选组合,活动系统则依赖其中部分参数页做落地页。三个诉求都真实存在。集中发布方不应直接采纳任何一方,而应先确认这些参数页是否真有独立价值,再决定是统一屏蔽、统一放开,还是只对确认无价值的参数组合做限制。
定义责任方之后,下一步不是写规则,而是让决策有依据。发布方至少应能回答:
这里要避免一个常见误判:某路径请求量归零,不能单独证明规则写对了。它还可能是网址本身不再生成、服务器返回错误、抓取预算被其他路径占用,或该搜索引擎根本不支持这条规则。请求量变化只能作为线索,需与网址生成记录、响应状态和规则版本对照。
同样,robots.txt 的抓取限制不等于可靠的索引移除,已收录网址可能仍出现在结果中;站点地图不保证收录,它只是提交候选;HTTPS 也不保证安全无漏洞或排名。把这些当成规则发布后的必然结果,会让责任方误判自己是否完成了任务。
具体动作:由发布方建立一份“规则候选登记”,每条候选包含来源系统、目标网址模式、期望动作、依据和有效期。发布方每周合并一次,冲突条目退回来源系统补充依据,未冲突条目进入待发布队列。
这个动作的结果会直接影响下一步:如果登记后发现大量候选指向同一批参数页,说明问题不在规则,而在网址生成阶段缺少规范,下一步应推动业务系统收敛网址形态,而不是继续叠加抓取规则。如果登记后冲突很少,但抓取日志仍显示异常路径被频繁请求,下一步应检查是否有系统绕过登记直接改线上文件,并核实各搜索引擎对相关规则的支持情况。不同搜索引擎的支持范围需要分别核查,不能按同一份文档推断。
责任方定义清楚后,规则数量未必减少,但每条规则都能追溯到来源、依据和发布记录。抓取异常出现时,排查顺序也就确定了:先看线上生效版本,再看候选登记,最后看各系统的网址生成记录。