不能把“所有参数组合”都当成有效地址。可行做法是:先按业务语义把参数分成“决定内容”和“只影响展示或追踪”两类,再为前者定义有限取值域,为后者声明可忽略,最终得到一个可枚举或可正则描述的有效地址集合。若无法完成这个划分,就只能退回到“只允许白名单参数组合被抓取”,代价是部分长尾内容可能不再被 Baiduspider 抓取。
当筛选、排序、分页、追踪参数可以自由叠加时,地址空间会呈指数增长。常见表现是抓取请求持续增加,但新增地址对应的正文高度相似,甚至只是同一列表的不同排列。这时有两种解释:
两种解释对应的处理完全相反:前者需要保留并纳入有效集合,后者应当被排除或折叠。判断错误会直接导致抓取预算被无效地址消耗,或让真正有差异的页面失去被抓机会。
不要凭感觉判断,用可复核的证据把参数分类:
一个假设例子:某站点有 sort、page、from 三个参数。若 sort 只改变排序、from 只标记来源,二者都不产生新内容;只有 page 在合理页数内产生新列表。此时有效集合可以定义为“page 在限定范围内、其余参数被忽略或规范化”的地址形式。这个结论依赖上述差异度证据,而不是抓取量本身。
做法 A:规范化折叠。把展示型参数从地址中剥离,让多个参数组合指向同一规范地址。适用条件是参数确实不改变内容,且站点能稳定输出规范形式。代价是需要在服务端或链接生成环节持续维护映射规则,一旦新参数上线而未同步,折叠会失效。
做法 B:白名单限制。只允许已确认有内容差异的参数组合被抓取,其余组合返回不可抓取状态或不生成链接。适用条件是参数取值域难以穷举、或内容差异无法可靠判定。代价是可能误伤部分长尾有效地址,需要定期回看被挡地址是否真的有独立内容。
选择依据不是哪种更“干净”,而是:内容差异能否被稳定判定。能判定时优先折叠,判定成本过高时用白名单。两者也可以分参数执行,对内容型参数保留、对展示型参数折叠。
先做一次参数清单审计:列出当前所有出现在链接中的参数,标注“内容型 / 展示型 / 未知”。对未知参数,抽取少量样本比较正文差异。完成分类后,把展示型参数写入规范化规则,把内容型参数写入有效集合定义。
动作结果是:有效集合从“无限组合”变成“可枚举或可正则描述”的范围。下一步应观察这个范围之外是否仍有被抓取请求,以及这些请求是否对应独立内容。若仍有大量未知组合被抓,说明链接生成端还在输出未受控地址,需要回到源头收敛;若范围之内的地址反而减少,则要检查规范化是否过度折叠了本应保留的内容型参数。
robots.txt 只能限制抓取,不等于可靠的索引移除;站点地图也不保证收录。因此有效地址集合的定义应解决“哪些地址值得被抓”,而不是承诺这些地址一定进入索引。若同一参数组合在搜索引擎、平台推荐和广告落地页中承担不同角色,应分别核查各自的地址规则,不要用一套集合覆盖所有渠道。
最终判断标准是:给定一个参数组合,能否用已确认的证据说明它对应独立内容。能,则纳入有效集合;不能,则折叠或排除,并为这个决定保留可复核的记录。