结论先给:当参数组合可以无限生成时,有效地址集合不应由“哪些 URL 被收录”来定义,而应由“哪些 URL 承担唯一内容职责”来定义。具体做法是先锁定一个可枚举的参数维度白名单,再把白名单之外的所有组合视为同一地址的变体,只保留其中一个作为规范地址。这个集合的大小是有限的、可复核的,而不是随参数空间膨胀。
用收录结果反推有效集合,会陷入一个循环:收录本身受抓取预算、外链分布、历史信号影响,同一个内容可能因为不同参数被收录多条,也可能一条都没被收录。前者会让集合虚高,后者会让集合虚低。更麻烦的是,参数组合的增长速度通常远快于抓取速度,未被发现的组合永远不进入查询视野,于是“查询到的集合”只是冰山一角,无法作为定义依据。
一个可区分的证据是:如果同一内容的多条参数地址在查询结果里交替出现、且没有稳定的一条长期占位,说明系统没有稳定的规范判断,此时收录数据反映的是抓取偶然性,而不是内容结构。
实际工作中常见两种做法,选择取决于参数是否承载独立内容职责。
选择条件可以简化为一句:参数是否改变用户看到的核心内容集合。改变,则进入白名单;不改变,则折叠。若两者混杂,就按维度拆分,而不是按 URL 拆分。
假设某站点用参数控制内容语言,例如同一商品的不同语言版本通过参数区分。此时若套用“白名单之外一律折叠”,会把语言变体错误地合并,导致非默认语言版本无法被单独访问。这个反例说明:当参数承载的是面向不同用户群体的等价内容,而不是同一内容的展示变体时,折叠策略不再成立。这时需要把该参数提升为独立维度,并为每个语言值保留一个规范地址。
判断标准不是参数名字,而是参数值变化后,目标用户是否认为这是“另一个页面”。是,则保留;否,则折叠。
先做一次参数维度盘点:列出站点当前所有会出现在地址中的参数,逐个标注“改变核心内容 / 不改变核心内容 / 不确定”。对标注为“不改变”的维度,统一指向无参数规范地址;对“改变”的维度,保留一个规范地址并限制取值组合数量;对“不确定”的维度,先保持现状并记录,不急于合并。
动作的结果会直接决定下一步:如果盘点后发现“不确定”维度占比很高,说明当前缺少内容职责的明确定义,下一步应先补内容模型,而不是继续调规范化规则;如果“不改变”维度占多数且合并后规范地址稳定,下一步可以在此基础上做站点地图,但站点地图只用于提示发现,不保证收录。另外,robots.txt 的抓取限制不等于可靠的索引移除,若目标是让某类参数地址退出索引,仅靠抓取限制通常不够,需要配合规范标签或移除请求,且不同搜索引擎的支持情况要分别核查。
这个顺序的关键在于:有效集合先由内容职责决定,再由查询结果校验。反过来做,集合就会随抓取波动而漂移,无法作为后续决策的稳定基础。