结论先说:如果工具原本接收单条网址、现在要接收站点地图,输入规范不应只是把一行换成多行,而应把“每行一个可独立抓取的目标”改成“先验证容器、再展开成员、最后逐条去重”。这个结论成立的前提是站点地图本身可访问且成员指向同一站点;一旦站点地图是跨域聚合或动态生成,继续沿用这套规范会把无关目标混进检查队列,此时应退回按域分组、分别提交。
输入对象从网址变为站点地图时,常见的错误是只把换行分隔改成逗号分隔,或者把文件后缀从 txt 换成 xml。真正需要改的是规范里的三层含义:
判断依据并不复杂:如果新对象能被工具直接当作一个可抓取地址处理,就仍按单网址规范;如果它必须先被解析才能得到若干地址,就按容器规范处理。这个区分决定了后续去重和失败统计怎么写。
假设一个团队原本每天提交 200 条产品页网址,现在改为提交一份站点地图。一个可执行的规范可以这样写:
<loc> 数量做一次粗校验,确认成员数与预期量级一致;数量明显偏少时先查站点地图是否被截断,而不是直接提交。这样改的直接结果是:报告里不再出现“提交了 1 个对象、检查了 0 个页面”这类无法定位的空白,下一步排查可以明确落在容器还是成员上。
如果站点地图是跨域聚合页,或者由程序在请求时动态拼出成员,那么“先验证容器、再展开成员”的规范就不再适用。原因不是规范写错了,而是输入对象已经不再代表单一站点:成员可能属于不同主机,去重口径和失败归属都会变得模糊。
此时应改成按域拆分:先按主机名把成员分组,再对每组分别提交,并让每组沿用各自的去重规则。判断是否需要拆分的证据很直接——展开后的成员里出现多个主机名,或者同一路径在不同主机下含义不同。出现这种情况还坚持整份提交,后续报告里的问题会无法归因到具体站点。
规范改完后不要直接全量提交。先取站点地图的一小段成员,按新规范跑一次,重点看三件事:容器是否被正确识别、去重后数量是否符合预期、失败项是否能区分容器与成员。若这三项都符合,再把同一规范套到全量;若去重后数量与预期差距很大,先回去检查去重口径,而不是放宽成员校验。
这套动作的作用是让输入规范的变化可被验证,而不是靠提交后报告里的总数反推。具体工具对站点地图格式、成员上限和去重字段的支持情况各不相同,实际能力需要以你所使用工具的当前说明为准。