结论先行:当筛选、排序、分页、追踪等参数可以自由组合、地址数量在理论上无限时,有效地址集合不应由“参数组合”定义,而应由“内容是否可独立成立”定义。更具体地说,把可索引地址限定为“能对应一段独立内容、且该内容在站内存在唯一规范入口”的地址,其余组合一律归入不可索引或折叠处理。这个定义在缺少完整日志和权限时仍然可以执行,但它依赖一个前提:你能判断哪些参数真正改变页面主体内容。若这个前提不成立,结论会失效。
参数组合的数量是笛卡尔积式的:三个筛选维度各有若干取值,再加上排序和分页,地址空间会迅速膨胀到无法穷举。如果按“出现过即有效”来定义,有效集合会随爬虫发现的路径不断扩张,内链结构设计就失去边界——你永远在追着新组合补规则,而不是在设计入口。
反过来,按“内容是否可独立成立”定义,有效集合的规模由内容单元数量决定,而不是由参数取值数量决定。内容单元是有限且可控的,参数只是访问这些单元的方式。这样定义的集合天然收敛。
这里要区分两类参数:
判断标准不是参数名,而是“去掉这个参数后,页面主体内容是否实质不同”。这个判断可以用人工抽查完成,不需要全量数据。
在没有完整爬虫日志、没有搜索平台权限、也无法改动服务端的情况下,仍可执行一个最小动作:选取一个参数维度,手工构造该维度的极端组合,观察页面主体内容是否变化。
具体做法是:固定其他参数,只让目标参数取两个差异最大的值,对比两次返回的主体内容区域。如果内容实质相同,只是顺序或条数不同,就把该维度判为呈现型;如果内容集合本身不同,就判为内容型。
这个动作的结果直接影响下一步:
需要注意,这个动作只能给出方向性判断,不能推出“该维度所有取值都有效或都无效”。它验证的是判断方法是否可用,而不是穷举结论。
假设某站的内容型筛选维度被判为有效,于是为每个筛选值都保留了可索引地址。但如果这些筛选值对应的内容集合高度重叠——例如两个筛选值返回的商品有八成相同——那么“内容可独立成立”的前提就被破坏了。此时按内容定义的有效集合会把大量近似重复地址纳入进来,反而制造了新的重复问题。
这个反例说明:内容是否独立成立,不能只看“内容集合是否不同”,还要看差异是否足够大到值得单独索引。差异阈值需要结合业务判断,没有通用数值。缺少数据时,可以用抽样重叠比例作为参考,但要注明这是假设性估计,不是精确指标。
把地址分成三层,比追求一个精确集合更可操作:
落地时,内链只指向核心层地址,避免把衍生层地址当作入口传播。这样即使参数组合继续增长,内链结构也不会随之膨胀。
需要提醒的是,用 robots.txt 限制抓取不等于把这些地址从索引中移除,两者是不同机制;站点地图列出地址也不保证被收录。因此分界的目标是控制内链传播范围,而不是承诺索引结果。
下一步动作:先用上述手工对比法,把现有参数维度逐个标记为内容型或呈现型,形成一张维度清单。然后只对内容型维度检查唯一规范入口,对呈现型维度统一折叠。这个清单不需要完整日志即可启动。
不能推出的结论包括:
把有效地址集合定义在内容单元上,而不是参数组合上,是在数据不全时仍能推进的可行路径;但它成立的条件是你能区分内容型与呈现型参数,并能判断内容差异是否足够大。