网站收录

带参数的 URL 被收录了:utm、筛选和排序参数怎么收口

带 utm、排序、筛选参数的 URL 被收录,往往不是蜘蛛乱抓,而是站内链接和分享链接把它们递了出去。本文把参数分成追踪类、视图类和筛选类,分别说明什么情况用 canonical 收口、什么情况该保留或禁抓,以及怎么从日志判断收口有没有生效。

网站收录

带参数的 URL 被收录了:utm、筛选和排序参数怎么收口

带参数的 URL 出现在索引里,很少是蜘蛛自己乱抓,多数是自己递出去的:分享链接带 utm、筛选页有内链、排序按钮本身就是链接跳转。这些地址能正常打开、内容也完整,蜘蛛没有理由跳过。麻烦在于它们会稀释抓取预算,也会让同一批内容在索引里出现多份。

先分清参数是干什么的

把所有带参数的地址当成一类处理,很容易把该留的也一起砍掉。按作用分三类更实用。

  • 追踪类:utm_source、gclid、fbclid 之类,只用于统计来源,不改变页面内容。
  • 视图类:排序方式、每页数量、列表或网格视图、页码,内容主体相同,只是排列和展示不同。
  • 筛选类:品类、价格区间、颜色、品牌等组合,会真实改变页面上出现的条目集合。

追踪类和视图类基本不需要独立索引;筛选类要看有没有对应的搜索需求。这两类不应该用同一套办法处理。

不改变内容的参数:让代表地址回到无参数版本

canonical 指向无参数地址

把页面上的 rel="canonical" 写死成不带参数的版本,是成本最低的一步。注意 canonical 要指向可访问、可被索引的地址,也不要同时给带参数页面加 noindex,两个信号打架时结果往往不是你想要的那个。

站内链接别带追踪参数

很多参数 URL 是自己带进来的:活动页、分享按钮、邮件模板都在链接后面拼 utm。站内跳转去掉这些后缀,蜘蛛就不会顺着爬到复制出来的地址。

外部转发带来的参数管不了,但可以收口

别人转发时拼上的参数没法控制。这类地址偶尔出现几次不致命,关键是服务器不要因为参数不同就输出不同内容,同时保持 canonical 一贯,让代表地址始终唯一。

筛选类参数:留一部分,收一部分

筛选页有没有价值,取决于有没有对应的搜索需求,以及页面上有没有足够的内容量。

  • 有明确搜索需求、结果集稳定的组合,比如某个品类加某个品牌,可以保留,并给独立的标题和描述。
  • 结果很少或经常为空的组合,即便收录也很难有表现,更适合收掉。
  • 多个条件任意叠加,组合数量可能是天文数字,全部放开并不现实。

收的方式有两种:robots.txt 禁止抓取,或者页面加 noindex。区别在于,禁抓之后蜘蛛看不到页面上的 canonical 和 noindex,将来想再放开,旧地址可能长期留在索引里;noindex 允许蜘蛛进来读,但要消耗一部分抓取。

还有一个容易被忽略的细节:参数顺序。a=1&b=2 和 b=2&a=1 是两个不同的 URL,站内生成链接时统一顺序,能少造一批重复地址。参数值的大小写、空值处理也值得顺手统一。

从日志里看收口效果

改完之后不要只看索引报告,日志更直接。统计一段时间内蜘蛛请求中带参数的占比,看趋势有没有降下来;同时观察不带参数的规范地址抓取次数有没有上升,这能说明抓取预算被挪到了更有用的地方。如果带参数请求占比不变,多半是站内还有链接在生成它们。

收口的目标不是把带参数的地址从索引里清空,而是让每个内容只留一个代表地址,把抓取和索引留给真正需要被搜到的页面。

最后提醒一句:Google 早期的 URL 参数设置工具已经取消,这类问题现在主要靠 canonical、robots.txt 和站内链接结构来解决,不要指望在后台勾一个选项就完事。收口是个持续动作,新上线的活动页、筛选组件、分享模块都可能重新把参数地址送出去,隔一段时间回日志里看一眼比较稳妥。