把参数组合无限增长的问题先收敛成一个可执行判断:只有当某个参数会改变页面返回的状态码、规范化目标或可索引内容时,它才值得进入有效地址集合;其余组合应被折叠或排除,而不是交给工具无限抓取。下面以你手里的一份 URL 清单或站点地图为对象,说明如何定义这个集合。
有效地址集合的边界,取决于参数是否触发服务端的不同处理。可以用一组对照请求来判断:对同一个路径分别请求带参和不带参版本,比较三项证据——HTTP 状态码、最终重定向目标、页面主内容是否不同。
这一步的实际动作是:从清单里挑出参数名,不挑具体值。结果决定下一步是“按参数名建规则”还是“按参数值逐个保留”,两者后续工作量差别很大。
如果站点对带参地址做了规范化(canonical 或 301),有效地址集合应以规范化后的目标为准。做法是:抽取一批带参 URL,请求后记录最终落点,把落点相同的归为一组。
假设一份清单里有 ?color=red、?color=blue、?size=m 三类参数,其中 color 只影响筛选展示、最终都指向同一列表页,size 会改变返回内容。那么可执行的处理是:color 折叠进列表页,size 保留为独立地址。这个例子只用于说明比较方法,不代表任何真实站点的现状。
需要注意,robots.txt 的抓取限制不等于可靠的索引移除;即使某组参数被 robots 挡住,也不代表它已从有效地址集合中消失,仍可能在别处被引用。
有效地址集合不是永久定义,它依赖前提。至少记录三个条件:参数是否影响服务端渲染、规范化规则是否生效、内容是否面向独立检索意图。前提变化时,结论应随之改变。
把这三个前提写进规则说明,后续新增参数时就能直接归类,而不是每次重新争论。
拿到一份 URL 清单后,按以下顺序操作,每一步的结果决定下一步:
如果抽样后发现某参数的请求量或抓取量归零,不能单独据此证明处理正确;也可能是抓取预算调整、链接变更或临时屏蔽造成的,需要结合状态码和引用来源一起判断。
定义完成后,用同一份清单再跑一次,观察两件事:保留地址的数量是否稳定,折叠地址是否都落到同一规范化目标。如果数量仍随参数值增长,说明折叠规则没有覆盖真正的变化来源。
站点地图不保证收录,因此不要把地图里的带参地址数量当作有效地址集合的最终依据。集合应以实际响应和规范化结果为准,并随前提变化定期复核。