先分类:参数不同,处理方式差别很大
判断一个带参数的 URL 要不要收录,第一步不是决定屏蔽还是放开,而是把参数归类。不同来源的参数,对内容的影响完全不同,混在一起处理通常会导致误伤。
- 跟踪类:utm_source、gclid、fbclid、spm、ref 等,加与不加,页面内容一字不差。
- 排序与视图类:?sort=price_asc、?view=grid,内容基本一致,只是顺序或样式变了。
- 筛选类:?color=red&size=40,可能组合出成百上千个结果页,其中一部分确实有搜索需求。
- 分页类:?page=3,属于同一列表的延伸。
- 会话与身份类:?sid=、?sessionid=、?uid=,每个用户一个地址,几乎必然产生大量重复。
- 语言与地区类:?lang=en,通常和 hreflang 配合使用,属于有明确用途的一类。
跟踪参数:优先级最高的一类
跟踪参数是最容易失控的一类。外链、广告、站内分享按钮都可能带上它们,蜘蛛顺着这些链接抓过去,就会看到同一份内容的多个地址。问题不在于某一个参数,而在于规模:如果站内大量链接都带参,抓取预算会被反复消耗在同一批内容上,真正需要更新的页面反而排到后面。
处理顺序建议:先确认这些带参 URL 现在处于什么状态——是被抓取了没收录,还是已经进了索引,还是压根没被发现。状态不同,手段不同。
- 从服务器日志或索引报表里捞出带参 URL 的样本,看数量级和抓取频次。
- 检查这些页面返回的 canonical 指向哪里。如果指向无参数版本,通常问题不大;如果指向自身,索引就会分散。
- 确认无参数版本的 URL 是否稳定、是否可被抓取,这是收敛的前提。
- 再决定手段:站内链接统一去掉跟踪参数,是最干净的做法;需要彻底阻断抓取时用 robots.txt;如果 URL 已经被抓取甚至收录,用 noindex 让它自己退出更稳妥。
要注意 robots.txt 屏蔽和 noindex 会互相干扰:一旦某个路径被 robots.txt 屏蔽,蜘蛛就看不到该页面上的 noindex 标签,已经进索引的页面可能会长期留在那里,因为没有机会读到退出信号。
排序与筛选参数:先问有没有搜索需求
筛选参数不能一刀切。有些组合本身就是用户的搜索词,比如“某品牌 某型号 价格”,这类页面如果内容足够、结果不为空,是可以单独放开的。判断标准大致有三条:这个组合有没有人搜、生成的结果是否稳定且非空、页面之间是否存在大量重复的标题与描述。
- 有需求、结果稳定:保留收录,做好标题描述,让它成为独立入口。
- 有需求但结果经常为空:优先解决内容问题,空结果页不宜收录。
- 纯排序、纯视图切换:一般不需要独立收录,用 canonical 归到默认视图即可。
- 组合爆炸型筛选:保留高频组合,其余用 robots.txt 或参数规则收敛。
无论选哪种,站内链接的输出方式都很关键。如果筛选结果页之间互相大量链接,蜘蛛会顺着这些链接扩散出去,再好的收敛策略也会被稀释。
分页参数:默认自指,别急着指向第一页
分页 URL 通常是 self-canonical,也就是指向自己。把第二页、第三页全部 canonical 到第一页,会让蜘蛛误以为后面几页是重复内容,从而放弃抓取,列表深处的条目就更难被发现。只有当整站确实只保留一个聚合入口时,才考虑向第一页收敛。
至于第几页开始不再收录,可以结合两点看:页面上的条目是否还有独立价值,以及这部分内容是否已经被其他路径覆盖。
一套可执行的自查顺序
- 从日志和索引报表中提取带参 URL,按上面的类别归并,先看总量。
- 对每一类判断:内容是否独立、是否有搜索需求、是否会被站内链接反复暴露。
- 选收敛手段——链接层面去掉参数优先,其次是 canonical,再是 noindex,最后才是 robots.txt 屏蔽。
- 同步更新 sitemap,别把准备收敛的带参 URL 继续提交上去。
- 观察一段时间,重点看抓取分布有没有回到核心页面上。
几个常见误区
- 用 robots.txt 屏蔽了参数路径,又在页面上加 noindex,两个信号互相抵消。
- canonical 指向了一个被屏蔽或不可抓取的 URL,等于给了一个无效建议。
- 认为加上 noindex 就会立刻退出索引,实际还要等蜘蛛重新抓取并读到标签。
- 把带参 URL 全量写进 sitemap,等于主动扩大重复内容的规模。
参数处理的本质不是“要不要”,而是“留哪些、留多少、用什么方式留”。把类别分清楚,再按链接、canonical、noindex、robots.txt 的顺序逐步收敛,通常比一次性大改更容易观察效果,也更少出现误伤。