有效地址集合不是把所有带参数的URL都收进来,而是先限定“哪些参数组合属于同一内容、哪些属于独立可访问页面”。当参数可以无限拼接时,外链域名查询看到的往往是同一目标被拆成大量变体,此时应保留的是能稳定返回独立内容的地址模式,改写的是仅顺序或无关参数不同的变体,退出的是永远返回同一结果或空结果的组合。
定义有效地址集合的第一步,是区分三类参数:决定内容主体的参数、只影响展示或追踪的参数、以及无意义的填充参数。只有第一类才可能产生独立有效地址。判断依据不是参数名称,而是同一路径替换该参数值后,页面主体信息是否发生实质变化。
实际操作时,可以固定一个路径,逐个改变参数值并记录返回内容的主体特征。如果两个地址返回的主体特征完全一致,只保留其中一个作为代表地址。这个动作会直接缩小后续需要检查的地址数量,也决定了下一步是继续扩样还是停止在该路径上投入。
参数无限增长的根源,是多个参数可以自由组合。有效地址集合应建立在“可枚举维度”上,而不是建立在“任意组合”上。可枚举维度指的是取值有限、且有业务含义的参数,例如分类、地区、年份。超出这些维度的组合,即使技术上能访问,也不应默认视为有效地址。
假设一个站点有type、region、page三个参数,其中type有5个取值、region有10个取值、page理论上无上限。有效地址集合可以定义为type×region的有限组合,再附加一个受控的分页规则;而不是接受type×region×page的任意拼接。这个定义一旦成立,后续的外链域名查询就只需要围绕这组有限组合展开,而不是对所有可能URL做穷举。
面对已经存在的参数地址,取舍取决于它当前是否承担独立访问价值。
这里有一个容易误判的点:抓取量归零或某项统计下降,不能单独证明某个地址组合应该退出。它也可能是抓取预算重新分配、站点地图未更新、或外部链接自然减少的结果。要区分这些原因,需要对照服务端日志、外链来源和内容变更记录,而不是只看一个指标。
有效地址集合定义完成后,应同步到两个位置:站点地图只列出代表地址,外链域名查询只把代表地址作为比较基准。站点地图不保证收录,但它能表达你认可的地址范围;robots.txt的抓取限制不等于可靠的索引移除,因此不要用抓取限制来代替地址集合的定义。
具体动作可以是:先按可枚举维度生成一份代表地址清单,再拿外链域名查询结果去比对,找出落在清单之外的地址。清单之外的地址如果仍有外链,就进入改写或保留判断;如果没有外链且无独立内容,就进入退出判断。这个动作的结果会决定下一轮是继续收敛参数组合,还是转向处理已保留地址的内容质量。
参数组合会随业务变化增加,因此有效地址集合需要留下可复查的边界说明:哪些参数属于内容参数、哪些维度可枚举、分页上限如何设定、新增参数由谁判定归属。没有这层说明,集合会再次膨胀,外链域名查询也会重新面对无法解释的地址数量。边界说明不需要复杂,但必须能回答“这个新参数组合为什么被排除或纳入”,否则下一次参数增长时,同样的取舍问题会原样出现。