常见问题

目标 URL 带一堆参数,搜索蜘蛛会重复抓取还是干脆跳过?

入口页里的目标链接如果挂着跟踪参数,搜索蜘蛛拿到的往往不是你想让它抓的那个地址。本文说明搜索引擎对带参数 URL 的分层处理逻辑,分析抓取预算被摊薄、重复内容、canonical 冲突等常见后果,并给出入口页输出规范链接、参数规范化与自检的具体做法。

常见问题

目标 URL 带一堆参数,搜索蜘蛛会重复抓取还是干脆跳过?

入口页上挂的目标链接,如果带上 ?utm_source=xxx、&ref=123 之类的尾巴,站长常会纠结两件事:搜索蜘蛛会不会把它当成一个新 URL 反复抓?参数堆多了,会不会干脆跳过不抓?这两个担心都有道理,但答案取决于参数的类型和数量,不能一概而论。

搜索蜘蛛对带参数 URL 的基本态度

并不存在“带参数就不抓”的规则。搜索引擎真正权衡的是两点:这个地址会不会批量生成高度相似的页面,以及抓它值不值得占用有限的抓取预算。因此实际表现是分层的:

  • 结构简单、数量可控的参数,例如分页参数,通常仍会被正常抓取。
  • 取值可以无限组合的参数——排序、筛选、价格区间、多条件叠加——容易被降频甚至跳过,因为每种组合都可能对应一个几乎相同的页面。
  • 会话类参数(sessionid、token、时间戳、随机数)每次访问都不同,这类地址一般不会被当作独立页面处理。

入口页给目标 URL 挂参数,会带来什么

入口页本身的作用是让搜索蜘蛛发现目标 URL。如果入口页里输出的链接带了一串跟踪参数,最直接的影响是:搜索蜘蛛拿到的并不是你想让它抓的那个规范地址。后续可能出现几种情况。

  • 抓取预算被摊薄。同一个目标页面以多个参数版本出现,搜索蜘蛛需要分别请求,真正有价值的地址反而排到后面。
  • 重复内容风险。如果参数不影响页面主体内容,多个版本内容高度相同,彼此之间会互相竞争。
  • canonical 与入口页链接打架。目标页自己声明了规范地址,而入口页却指向带参数的版本,等于给搜索蜘蛛发了两个不同的信号。
  • 入口页自身的价值被稀释。入口页输出的链接越杂乱,越容易被判断为低质量链接集合,连带影响入口页的抓取频率。

更稳妥的做法

  1. 入口页只输出规范 URL。去掉 utm、ref、from 之类纯统计用途的参数,让搜索蜘蛛第一眼看到的就是最终希望被访问的地址。
  2. 参数确实需要保留时,做规范化处理。在目标页上加 rel=“canonical” 指向无参数版本,或让带参数地址 301 到规范地址。
  3. 跟踪统计不要走页面上可见的链接。统计需求可以用服务端日志、跳转中间件或前端事件完成,不必把参数写进 HTML。
  4. 把参数数量和取值固定下来。如果某个列表页必须带参数,尽量控制在少数几个维度,避免“任意组合”式的 URL 爆炸。
  5. 用 robots.txt 兜底明显无意义的部分。对确定不需要被抓的参数模式可以屏蔽,但要注意别顺手挡掉真正需要收录的地址,改动后先在日志里观察一段时间的抓取变化。

参数不是完全不能用

带参数的 URL 本身不是问题,问题在于“不可控的数量”和“无意义的取值”。像分页、分类这类边界明确、内容确有差异的参数,搜索引擎是能处理的。真正容易被忽略的,是入口页这个环节——很多人精心整理了目标站的 URL 结构,却在入口页随手贴了一条从后台统计工具里复制的带参链接,等于把前面做的规范化工作又打散了。

一个简单的自检清单

  • 入口页上每条目标链接是否都是最终希望被访问的地址。
  • 页面里是否混入了统计参数、会话参数或临时 token。
  • 目标页的 canonical 是否与入口页链接指向一致。
  • 带参数地址被请求时,日志里是否出现了大量参数变体。
  • 调整链接形式后,入口页自身的抓取频率有没有异常波动。
搜索蜘蛛对待参数 URL 的方式,本质上是对抓取预算的分配。入口页要做的是减少歧义,让每条链接只指向一个明确的地址,而不是把选择权交给搜索引擎去猜。