当URL带查询参数时,有效地址集合不能按“所有参数取值组合”来定义,而要先声明哪些参数改变页面内容、哪些只影响展示或追踪,再对剩余参数给出取值边界。否则样本阶段看似正常,规模一上来就会出现大量内容相同或近似、仅参数不同的地址,让收录判断失去意义。
假设一个筛选页,参数为color、size、sort。手工抽查时,?color=red与?color=blue返回不同商品列表,看起来每个组合都是独立页面。但当参数增加到七八个、每个又有多个取值时,组合数量按乘法增长,很快超出站点实际拥有的内容量。此时会出现两类地址:一类确实对应不同结果集,另一类只是参数排列不同、结果完全一致。样本阶段因为只看了少量组合,没有暴露这个问题。
这里的关键不是“参数多不多”,而是“参数是否改变用户可见的核心内容”。如果两个地址返回的商品集合、排序、价格、库存完全一致,只是URL不同,它们在内容层面就是同一个有效地址。
面对放量后的例外,通常有两种解释,需要分开验证。
两种解释会导向不同的处理动作:前者需要保留参数并控制取值域,后者需要剥离无意义参数。如果只凭“页面能打开”就判定有效,会把大量兜底页面算进集合,导致后续判断失真。
要区分上述两种解释,可以采集一组可复查的证据,而不是只看单个页面是否可访问。
假设某筛选页有color和size两个参数,各有5个真实取值。若结果集指纹显示25个组合中只有12个返回不同内容,其余13个与默认页一致,那么有效集合应定义为这12个,而不是25个,更不是任意字符串组合。这个例子只用于说明比较方法,不代表任何具体站点的实际数据。
在明确证据后,可以按以下顺序定义并固定有效地址集合:
这个动作的结果会直接影响下一步:如果合并后集合规模仍然很大,说明需要重新评估参数是否真的必要;如果合并后集合很小,说明之前的高组合数主要来自兜底页面,后续的抓取和状态检查应针对真实集合展开。需要注意的是,robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录,因此集合定义完成后仍要分别核查不同搜索引擎的支持情况。
上述方法适用于参数取值来自有限维度、且结果集可稳定比对的场景。以下情况不能直接套用:
在这些边界内,定义有效地址集合的核心始终是:先确认参数是否改变内容,再确认取值是否有真实来源,最后用可复查的证据固定集合,而不是用组合数量倒推页面数量。