当站点同时存在手工维护的链接清单、模板自动生成的站内链接、以及由接口或脚本产出的站点地图时,同一批网址可能被三套规则各自生成一次。此时“谁负责最终提交”不能靠约定俗成,而要指定一个生成器作为唯一责任方,并让其他系统只消费它的输出。否则你会看到提交量忽高忽低、重复项反复出现,却找不到该改哪一处。
常见的表现是:站点地图文件里条目数量看起来合理,日志里也能看到抓取,但去重后有效网址明显偏少,同时又有若干栏目页始终没有进入任何一份地图。这类现象容易被归因成“抓取不足”,但更常见的原因是生成责任被切碎了。
可以先用一个假设例子说明比较方法:假设站点有 A、B、C 三个生成器,A 产出栏目页,B 产出文章页,C 产出分页。如果 A 和 B 都按“父级路径 + 当前时间戳”拼接网址,而 C 只按自增序号拼接,那么同一篇文章可能得到两个不同字符串。去重工具按字符串比对,就会把它们当成两个网址;而分页因为规则不同,可能压根没被任何一方覆盖。数字只用于说明比对方式,不代表真实站点规模。
解释一:规则冲突。各生成器对同一资源的网址形态理解不同,比如尾斜杠、大小写、参数顺序、分页参数命名不一致。结果是同一资源被写成多个字符串,去重后有效数量下降。
解释二:责任重叠。各生成器对网址形态的理解其实一致,但都认为自己“应该负责提交”,于是同一批网址被重复写入,而真正没人负责的角落(如标签聚合页、筛选参数页)被漏掉。
这两种解释的修复方向完全不同:前者要统一规则,后者要指定唯一责任方。如果只改规则而不指定责任方,下次新增一个生成器时问题会重演。
要判断属于哪一种,可以取同一批资源,分别用各生成器的输出做对照,而不是只看最终合并后的文件。
这里要注意一个常见误判:提交量或抓取量下降,并不能单独证明某个生成器“做错了”。它也可能是抓取预算分配变化、服务器响应变慢、或该批网址本身价值较低导致的。要结合字符串差异和遗漏归属一起看,而不是把统计变化直接当成因果。
可执行的做法是:选定一个生成器作为“网址规则唯一来源”,由它输出规范化的网址清单;其他生成器不再直接产出提交文件,只负责提供数据或触发更新。
这个动作的结果会直接影响下一步:如果统一规则后重复项消失、遗漏项被补上,说明此前是规则冲突与责任重叠并存;如果重复项消失但遗漏仍在,说明责任方本身没有覆盖某些模板,需要扩展它的生成范围,而不是再加一个生成器。
这套做法成立的前提是:各生成器共享同一份资源标识,且你能拿到它们的原始输出做对照。如果资源标识本身就不一致(比如不同系统用不同 ID 指代同一页面),那么先统一标识,再谈责任方。
另外,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录;不同搜索引擎对站点地图和提交接口的支持情况需要分别核查。HTTPS 同样不保证安全无漏洞或排名。这些都不影响“唯一责任方”这一决策,但会决定你在提交之后还需要做哪些验证。
最后,责任方确定后要留下一份书面规则,写明哪种网址由谁生成、谁写入提交文件。否则下一次新增系统时,同一个问题会以新的形式回来。