当筛选参数、排序参数和追踪参数可以任意组合时,你无法为每个组合写一条规则。有效地址集合只能按“参数是否改变页面主体内容”来定义:改变内容的是有效地址,不改变内容的归入同一等价类。robots.txt 的 Disallow 只能阻止抓取,不能替代 noindex 或删除,因此对已经收录的旧组合,必须把抓取限制和索引移除分开处理。
拿三个同类地址做对照:一个只带追踪参数,一个带排序参数,一个带筛选参数。分别看返回的标题、主体文本和主要链接是否出现实质差异。只有筛选参数改变了结果集,排序和追踪没有改变主体内容,那么有效地址集合就是“路径 + 筛选参数”,其余参数一律视为装饰。
判断依据要可复查:保存每个地址的返回状态、规范化链接和页面主体摘要。若两个地址的规范化链接指向同一个地址,说明站点自身已经把它们视为同一资源,这比人工猜测更可靠。若规范化链接互相指向对方,先解决这个冲突,再谈参数集合。
这类参数包括来源、活动标识、会话标识。有效地址集合应当只保留无参数版本或保留一个规范版本,其余用 rel=canonical 指向规范版本。robots.txt 里不要为每个参数写一条 Disallow,因为组合会继续增长,规则永远追不上。
实际动作:在服务端对这类参数做 301 或 302 跳转到规范地址,或者在输出 HTML 时统一写入规范链接。做完之后,抓取统计里这类地址的抓取量应当下降,但这不是判断正确的唯一证据——抓取量下降也可能只是抓取预算被调走。下一步应检查规范地址自身的抓取和收录是否稳定,而不是只看被清理地址的数量归零。
这类参数包括分页、筛选、排序中确实改变结果集的维度。有效地址集合不能简单砍掉,否则会丢掉长尾入口。此时应把参数维度收敛到有限集合:只允许白名单内的参数和取值进入可抓取范围,其余组合返回 404 或 410,而不是让它们返回 200 并靠 robots.txt 挡住。
实际动作:为筛选参数建立白名单,超出白名单的组合在服务端返回 410。结果会直接影响下一步:410 比 Disallow 更明确地表达“此地址已不存在”,有助于已收录地址退出;但如果这些地址仍有外部链接或用户收藏,410 会造成访问失败,需要先确认业务上可以放弃它们。
robots.txt 适合阻止已知的、稳定的路径前缀,例如内部搜索结果的固定入口。它不适合表达“某个参数取某些值时有效”。因为 robots.txt 的匹配是按路径前缀和通配符,无法判断参数值背后的内容差异。
还要注意:robots.txt 的抓取限制不等于可靠的索引移除。一个地址被 Disallow 后,搜索引擎仍可能因外部链接而保留其索引条目,只是不再抓取内容。所以对必须退出的旧组合,优先用 410 或 noindex;只有当地址数量极大、且确认没有索引价值时,才用 robots.txt 减少抓取浪费。
假设旧系统只有颜色、尺寸、材质三个筛选参数,每个参数取值有限,组合总数可控。新系统允许任意标签叠加,参数数量增长到 12 个,组合数迅速膨胀。此时不应为每个新参数补一条 Disallow,而应做两件事:
站点地图不保证收录,它只是提交候选地址。做完上述动作后,下一步应抽样检查白名单内地址是否被正常抓取,以及白名单外地址是否开始退出索引。如果白名单外地址仍大量出现在索引中,说明 410 尚未被处理,或存在外部链接在维持它们,需要继续排查链接来源,而不是回头去加更多 robots.txt 规则。
旧合作方可能仍在用带追踪参数的地址引流。这类地址通常不改变内容,但可能有合同或统计需求。处理时不要直接 410,否则会中断对方访问。可以保留 200 返回,但用规范链接指向无参数版本,并在 robots.txt 中只屏蔽该合作方专用的路径前缀。同时与对方确认参数是否还需要保留,若不需要,再改为跳转或 410。
有效地址集合的定义不是一次性的。参数维度变化、旧合作结束、筛选逻辑调整,都会改变集合边界。每次变化后重新抽样对照,比维护一份不断加长的 robots.txt 规则更可靠。