给入口页里的目标链接加上 utm_source、utm_campaign、?from=xxx 这类参数,是很多人做点击统计的习惯动作。平时放在普通页面上问题不大,但放进蜘蛛池入口页,这件事会直接影响搜索蜘蛛对 URL 的判断,值得在动手前先想清楚。
搜索蜘蛛眼里的带参 URL
搜索蜘蛛不认识你的统计需求,它只认 URL 字符串。URL 里多一个参数,在它看来就是一个新地址;同一个目标页加上不同参数,就会生成一批互不相同的 URL。
真正决定影响大小的,不是入口页怎么写,而是目标页自己有没有做规范化处理。带参地址会不会被抓、会不会被当成独立页面,答案在这里。
什么情况下会被当成不同页面
- 目标页没有 canonical,也没有做参数过滤规则,带参数版本会被当成新地址排队抓取。
- 参数值随机、带时间戳或会话 ID,蜘蛛每次抓到的都不一样,可能持续产生新的抓取任务。
- 带参页面内容与干净版完全一致,容易被判成重复内容。
- 入口页链接没有加 nofollow,蜘蛛会顺着这些地址进入参数版本。
反过来说,如果目标页已经有 canonical 指向不带参数的正式地址,或者站点层面已经屏蔽了这批参数,那么带参 URL 的干扰会小很多。
对入口页和站点运营的实际影响
第一是消耗抓取预算。蜘蛛的时间有限,入口页把大量带参地址推到它面前,它会分掉本可以用来抓目标页的额度,尤其是入口页链接本来就多的时候。
第二是信号分散。目标页如果没有 canonical,外部链接、抓取频次、收录信号会散落在多个版本上,主版本的抓取节奏可能被拖慢。
把统计参数留在入口页的 href 里,本质上是用搜索蜘蛛的抓取额度换自己的点击数据,这笔账不一定划算。
更稳妥的几种做法
- 点击统计走服务端日志或前端点击事件,不要在 href 里拼参数。
- 如果确实需要带参,目标页加 canonical 指向不带参数的正式版本。
- 用 robots.txt 或站点层的参数处理规则,屏蔽已知的统计参数。
- 需要中间跳转做统计时,让参数只出现在中间页,最终跳转到干净 URL。
- 入口页尽量使用目标页已有的正式地址,不要为了区分来源而人为制造新地址。
怎么判断已经出问题了
- 看服务器日志,带参地址是否被反复请求,请求量是否在持续增长。
- 看目标页干净版本的抓取次数是否被带参版本分流。
- 看搜索结果里是否出现了带参数的版本,或者两个版本交替出现。
- 看入口页的抓取总量是否上去了,但目标站的抓取并没有同步增加。
如果日志里带参地址的请求占比很高,而干净地址的抓取次数在下降,通常说明入口页的链接写法已经在干扰正常的抓取分配,这时候优先改加入口页的链接写法,比继续加链接更有意义。
需要提醒的是,改掉参数只是减少不必要的干扰,抓取多少、是否收录仍由搜索引擎自己决定,任何写法都不能保证结果。