先给结论:不要试图枚举所有参数组合,也不要把“被百度抓过”当成有效地址。有效地址集合应当由站点主动定义,通常选择“归一化后保留少数有独立内容价值的参数”,其余参数一律通过规则折叠或屏蔽。判断依据不是参数多少,而是该参数是否改变页面主体内容。
第一种做法是白名单:只允许明确列出的参数进入可收录集合,其余全部视为无效。它适合参数由程序批量生成、且绝大多数组合没有独立内容的站点,例如筛选、排序、分页游标、会话标识。代价是维护成本高,新功能上线时如果忘记登记,可能误伤有真实内容的地址。
第二种做法是黑名单:默认允许参数存在,只屏蔽已知无价值的参数。它适合参数数量有限、且业务方经常新增可用参数的站点。代价是风险敞口大,一旦某个参数能被外部随意拼接,就可能产生大量近似重复地址。
选择条件可以概括为一句:参数空间是否由你控制。由你控制、可枚举,黑名单更省事;由用户或第三方可任意拼接,白名单更稳。
先做参数归一化,再做集合声明。归一化包括:统一大小写、去掉无意义空值、对参数排序、把会话类参数剥离。完成归一化后,把剩余参数分成三类:改变内容的、只改变展示的、完全不影响的。
实施动作上,可以在服务端对无效参数组合返回规范化后的地址,或返回明确的不可索引状态。这个动作的结果会直接影响下一步:如果无效组合被稳定地折叠到同一地址,后续就不需要为每个组合单独提交;如果折叠不稳定,同一内容仍会以多个地址出现,此时应先修归一化逻辑,而不是继续扩充提交清单。
不要只看抓取量。抓取量上升可能来自无效组合被大量发现,抓取量下降也可能只是调度波动。可以观察三类证据:
需要说明的是,robots.txt 的抓取限制不等于可靠的索引移除,它只约束抓取行为,不保证已存在的地址从结果中消失。站点地图也不保证收录,它只是提交候选地址的一种方式。因此,定义有效集合的核心是让无效地址在站点侧就不成立,而不是依赖事后清理。
假设某站点商品列表支持 color、size、sort、page 四个参数,其中只有 color 和 size 会改变返回的商品集合,sort 只改变顺序,page 是分页。若采用白名单,可收录集合是 color 与 size 的组合加上分页;sort 折叠为默认排序。若采用黑名单,则要持续屏蔽外部拼接出的 sort 变体和空值组合。前者初期配置更繁琐,但参数继续增长时不需要反复补规则;后者初期省事,但每次新增参数都要重新评估。
分页参数通常需要保留,因为它对应不同的内容片段;但如果分页只是前端无限滚动且没有独立地址,就不应人为制造可收录地址。另一种例外是参数值本身构成独立内容,例如不同地区的库存页,此时应按内容页处理,而不是按参数页处理。无论哪种情况,HTTPS 不保证安全无漏洞或排名,它只是传输层的一种配置,不能用来替代地址集合的定义。
最终判断标准是:当参数继续增长时,你的规则是否仍能自动把新组合归入有效或无效,而不需要每次人工枚举。如果答案是否定的,说明当前定义方式还没有收敛。