入口页上挂的目标链接,如果带上 ?utm_source=xxx、&ref=123 之类的尾巴,站长常会纠结两件事:搜索蜘蛛会不会把它当成一个新 URL 反复抓?参数堆多了,会不会干脆跳过不抓?这两个担心都有道理,但答案取决于参数的类型和数量,不能一概而论。
搜索蜘蛛对带参数 URL 的基本态度
并不存在“带参数就不抓”的规则。搜索引擎真正权衡的是两点:这个地址会不会批量生成高度相似的页面,以及抓它值不值得占用有限的抓取预算。因此实际表现是分层的:
- 结构简单、数量可控的参数,例如分页参数,通常仍会被正常抓取。
- 取值可以无限组合的参数——排序、筛选、价格区间、多条件叠加——容易被降频甚至跳过,因为每种组合都可能对应一个几乎相同的页面。
- 会话类参数(sessionid、token、时间戳、随机数)每次访问都不同,这类地址一般不会被当作独立页面处理。
入口页给目标 URL 挂参数,会带来什么
入口页本身的作用是让搜索蜘蛛发现目标 URL。如果入口页里输出的链接带了一串跟踪参数,最直接的影响是:搜索蜘蛛拿到的并不是你想让它抓的那个规范地址。后续可能出现几种情况。
- 抓取预算被摊薄。同一个目标页面以多个参数版本出现,搜索蜘蛛需要分别请求,真正有价值的地址反而排到后面。
- 重复内容风险。如果参数不影响页面主体内容,多个版本内容高度相同,彼此之间会互相竞争。
- canonical 与入口页链接打架。目标页自己声明了规范地址,而入口页却指向带参数的版本,等于给搜索蜘蛛发了两个不同的信号。
- 入口页自身的价值被稀释。入口页输出的链接越杂乱,越容易被判断为低质量链接集合,连带影响入口页的抓取频率。
更稳妥的做法
- 入口页只输出规范 URL。去掉 utm、ref、from 之类纯统计用途的参数,让搜索蜘蛛第一眼看到的就是最终希望被访问的地址。
- 参数确实需要保留时,做规范化处理。在目标页上加 rel=“canonical” 指向无参数版本,或让带参数地址 301 到规范地址。
- 跟踪统计不要走页面上可见的链接。统计需求可以用服务端日志、跳转中间件或前端事件完成,不必把参数写进 HTML。
- 把参数数量和取值固定下来。如果某个列表页必须带参数,尽量控制在少数几个维度,避免“任意组合”式的 URL 爆炸。
- 用 robots.txt 兜底明显无意义的部分。对确定不需要被抓的参数模式可以屏蔽,但要注意别顺手挡掉真正需要收录的地址,改动后先在日志里观察一段时间的抓取变化。
参数不是完全不能用
带参数的 URL 本身不是问题,问题在于“不可控的数量”和“无意义的取值”。像分页、分类这类边界明确、内容确有差异的参数,搜索引擎是能处理的。真正容易被忽略的,是入口页这个环节——很多人精心整理了目标站的 URL 结构,却在入口页随手贴了一条从后台统计工具里复制的带参链接,等于把前面做的规范化工作又打散了。
一个简单的自检清单
- 入口页上每条目标链接是否都是最终希望被访问的地址。
- 页面里是否混入了统计参数、会话参数或临时 token。
- 目标页的 canonical 是否与入口页链接指向一致。
- 带参数地址被请求时,日志里是否出现了大量参数变体。
- 调整链接形式后,入口页自身的抓取频率有没有异常波动。
搜索蜘蛛对待参数 URL 的方式,本质上是对抓取预算的分配。入口页要做的是减少歧义,让每条链接只指向一个明确的地址,而不是把选择权交给搜索引擎去猜。