核心做法是先定义“有效地址集合”,再让301重定向只处理集合内的旧地址,而不是尝试覆盖所有可能的参数组合。假设某电商站的历史筛选页会生成颜色、尺码、排序、页码等参数,组合数量没有上限;此时继续用规则逐条匹配参数,只会让重定向表不断膨胀,且永远有漏网地址。更可行的路径是:把有效地址集合收敛为“可索引的规范页”,其余参数组合统一视为无效变体,交给规范化或410处理,而不是全部301到同一个目标。
定义有效地址集合的第一步,不是写规则,而是判断哪些参数会改变页面主体内容。以假设的服装站为例:颜色和尺码会改变可售商品与库存,属于有效维度;排序方式、每页数量、来源追踪码不改变主体内容,属于无效变体。这个判断直接决定后续动作:有效维度保留为独立地址,无效维度不参与地址身份。
如果三个问题里有两个以上为否,就不应把它纳入有效地址集合。此时继续为它配置301重定向,等于承认一个本不该存在的地址身份。
参数组合无限增长时,枚举法必然失败。更稳的方式是只声明允许出现在有效地址中的参数名,其余参数一律剥离或拒绝。假设允许的参数是 color 和 size,那么带 sort、page、utm_source 的地址都不进入有效集合。动作上,可以在服务端或边缘层先归一化参数:保留白名单参数,按固定顺序排列,丢弃其余参数。
这个动作的结果会直接影响下一步。如果归一化后地址与某个规范页一致,就返回301指向规范页;如果归一化后仍不对应任何有效页,就返回404或410,而不是301到首页。把无效参数全部301到首页,会让大量不同地址指向同一目标,后续很难判断哪些旧地址真正有价值。
有效地址集合不能只停留在文档里,必须能被执行。一个可操作的判定顺序如下:
这套顺序的关键在于第3步:有效页清单来自内容系统,而不是来自重定向规则表。这样新增有效页时,集合自动扩展;无效参数再多,也不会进入重定向表。假设某月新增了材质筛选,只需把 material 加入白名单并让内容系统输出对应页,不需要为每个颜色与材质的组合单独写301。
规则数量减少不代表处理正确。请求量下降、抓取量归零或某个参数组合不再出现,都可能有其他解释:爬虫暂时降低频率、站内链接改版、统计口径变化,或该组合本来就没有外部入口。要验证有效地址集合是否合理,应看三类证据:
如果410占比过低,说明白名单过宽,无效参数仍在被当作有效地址;如果301占比过高,说明有效集合定义过松,旧地址没有被及时收敛。两种结果都指向同一个动作:回到参数白名单,重新判断哪些参数真正改变内容。
假设某站的历史筛选页产生了约数万个带参数的旧地址,其中大部分只差排序和追踪码。常规做法是写规则把这些地址301到对应分类页。执行后,重定向表迅速膨胀,且新参数仍在产生。改用有效地址集合后,只保留颜色和尺码两个参数,排序与追踪码被剥离。结果是:带排序参数的旧地址归一化后与分类页一致,返回301;带未知参数的地址返回410;重定向表不再随参数组合增长。下一步只需定期检查410日志,确认没有误伤真实有效页。
这个取舍的代价是:部分用户收藏的带排序参数地址会失效,需要重新选择排序。但它换来的是地址集合边界清晰,301重定向不再承担无限枚举的职责。对于参数组合无限增长的站点,这通常是更可维护的选择。