当筛选参数可以任意叠加,你无法也不该为每个组合生成可收录地址。可行的做法是:只把有独立检索价值、且内容确实随参数变化的组合定义为有效地址,其余一律归入“不可收录”集合。判断依据不是参数数量,而是该组合是否对应一个稳定、可被独立描述的结果页。
假设你手上只有一份URL样本日志,没有服务器权限,也拿不到完整的参数枚举表。这时仍可执行的最小动作是:从样本中抽取含参数的地址,按“参数名+参数值数量”分组,观察哪些参数会改变页面主体内容,哪些只改变排序或展示形式。
如果某个参数只影响列表顺序,而列表项集合不变,这类组合通常不值得单独收录;如果某个参数会切换到完全不同的商品子集或文档子集,它才有资格进入有效集合。这个判断不需要全量数据,抽样几十条即可看出趋势,但结论只能作为假设,不能当成最终规则。
把候选组合逐条对照以下条件,全部满足才纳入有效地址集合:
三条中任意一条不成立,就放进无效集合。无效集合的处理方式是:用 robots.txt 限制抓取,或让页面返回与内容匹配的状态码。需要提醒的是,robots.txt 的抓取限制不等于可靠的索引移除——已收录地址可能仍以无摘要形式出现,所以它只是减少抓取的手段,不是清理索引的保证。
假设某文档站有 ?lang= 和 ?sort= 两个参数。lang 会切换正文语言,属于内容变化;sort 只改变同一批文档的排列顺序。按上面的判据,lang 的每个取值可进入有效集合,sort 的所有取值进入无效集合。
此时可执行的动作是:为每种语言保留一个规范地址,并在页面中互相声明语言替代关系;对 sort 组合统一指向不带该参数的默认视图。做完这一步后,下一步应观察这些无效地址在抽样中是否仍被频繁抓取。如果抓取量下降,说明限制起了作用;如果没下降,说明还有其他入口在暴露它们,需要回到链接层面排查,而不能直接断定处理失败。
抽样只能支持“某类参数更可能属于无效集合”这一层判断。以下推论都不成立:
因此,在权限和数据都不完整时,正确顺序是:先用抽样定义一个小范围的有效集合,对无效集合施加最小限制,再根据后续抓取和展示情况调整边界。每一步的结果只用于修正下一步的假设,而不是用来证明整个集合已经处理完毕。
有效地址集合的规则应写成可复核的文字,例如:仅当参数改变主体内容且结果稳定时保留,排序、追踪、会话类参数一律剔除。这样当新的参数出现时,你不需要重新讨论,只需对照规则判断它落在哪一边。规则本身也应随内容结构调整,但每次调整都要记录理由,避免边界在无意识中扩张。
当参数组合继续增长时,真正需要维护的不是地址清单,而是这套判定规则;只要规则稳定,集合就能被一致地推导出来。