先给结论:有效地址集合应当由“能被独立检索并具有独立价值”这一业务规则定义,而不是由参数是否存在或组合是否穷尽来定义。具体做法是先确定哪些参数会改变页面主体内容,再为剩余参数规定唯一规范形式,最后用可核对清单验证集合边界。这样做的直接结果是:抓取预算和索引候选被集中到真正需要收录的地址上,而无限组合只保留一个代表地址。
假设一个商品列表页支持颜色、尺码、排序、每页数量、来源渠道等参数。运营看到的是“每个筛选组合都能满足一类用户”,因此认为组合越多越好;技术看到的是“参数可以无限拼接,地址空间没有上界”,因此认为必须全部屏蔽。两边都没有错,但讨论的对象不同:运营说的是用户价值,技术说的是地址数量。
分歧之所以难以收敛,是因为双方都在用“收录”这个词,却指代不同事实。运营说的收录是“用户能通过搜索找到这个筛选结果”,技术说的收录是“爬虫把这个 URL 当作独立文档处理”。把这两个事实分开核对,才能把争论转成可验证的项目。
解释一:内容等价。多数参数组合只是对同一批商品换了一种排列或过滤方式,主体内容高度重合。此时真正需要独立收录的是“有独立检索需求且结果集明显不同”的少数组合,其余组合属于同一文档的不同视图。
解释二:地址等价。即使内容相同,只要参数顺序、默认值、追踪参数不同,就会产生大量字面不同的 URL。这些地址在系统里是不同字符串,但对用户和检索而言没有区别。问题不在于内容重复,而在于地址没有被归一。
两种解释会导向不同动作:前者要求筛选内容价值,后者要求统一地址形式。如果只做其中一个,集合边界仍然会继续膨胀。
要判断当前问题更偏向哪一种,可以收集以下可核对证据,而不是凭感觉下结论:
这些证据指向的是机制,而不是某个统计数字。抓取量下降或某个参数组合不再出现,可能来自规则调整,也可能来自链接改版或抓取节奏变化,不能单独作为判断依据。
第一步,给参数分类。把会改变主体内容的参数列为“内容参数”,例如分类、价格区间、关键属性;把只改变呈现顺序或来源标记的列为“非内容参数”,例如排序、每页数量、渠道追踪。分类结果决定后续规则,而不是由参数多少决定。
第二步,为每类参数规定唯一规范形式。内容参数保留,但限制可组合的维度数量;非内容参数统一为默认值或从规范地址中移除。可以用 <link rel="canonical"> 指向代表地址,并在站内链接中直接使用规范形式,减少爬虫发现变体的机会。
第三步,明确集合边界并复核。有效地址集合等于“内容参数在允许范围内的组合,每个组合对应一个规范地址”。超出范围的组合不进入集合,但仍可被用户访问,只是不作为独立收录目标。这个定义让运营和技术有了同一份清单。
一个注明假设的短例子:假设某列表页有 3 个内容参数,每个参数取 4 个值,非内容参数 2 个。若不限制,字面组合可达 4×4×4×2×2=256 种;若规定内容参数最多同时使用 2 个,且非内容参数只保留默认形式,则有效地址集合收缩到有限范围。这里的数字只用于说明比较方法,不代表任何真实站点的规模。
规则上线后,不要只看“收录数量有没有变化”。更有区分度的验证是:随机抽取集合内地址,确认它们返回主体内容且规范地址一致;再抽取集合外地址,确认它们指向代表地址或不被当作独立文档处理。若集合外地址仍以独立形式出现在站内链接中,说明链接层没有同步,需要回到第一步检查参数分类是否被正确执行。
robots.txt 的抓取限制不等于可靠的索引移除:被限制抓取的地址仍可能因外部链接而被引用。站点地图也不保证收录,它只是提交候选地址的一种方式。验证应以规范地址、站内链接和页面主体内容三者是否一致为准,而不是以单一提交动作是否完成为准。
当多个角色对同一事实理解不同时,最有效的做法不是继续争论“该不该收录”,而是把有效地址集合写成一份可核对的清单:每个地址对应哪个内容参数组合、规范形式是什么、由谁维护。清单一旦确定,新增参数就必须先回答它属于哪一类、是否进入集合,否则默认不进入。这样,参数组合无限增长的压力被挡在集合边界之外,后续的抓取与索引工作也有了稳定的判断依据。