常见问题

入口页链接带 utm、spm 这类跟踪参数:搜索蜘蛛会当成新 URL 重复抓取吗

入口页的目标链接常带 utm、spm、from 等跟踪参数。搜索蜘蛛会把带参与不带参的地址视为不同 URL,可能导致重复抓取,也可能在索引阶段被归并到别的版本。本文说明其中的判断逻辑、日志排查方法,以及入口页链接该怎样写才更省抓取预算。

常见问题

入口页链接带 utm、spm 这类跟踪参数:搜索蜘蛛会当成新 URL 重复抓取吗

做蜘蛛池或站内引流时,入口页上的目标链接往往是直接从后台报表、统计工具或别处页面复制过来的,末尾常常带着 utm_source、spm、from、ref 这类跟踪参数。这些参数对人没有影响,对搜索蜘蛛却是另一回事:同一个目标页,因为参数不同,可能被当成多个 URL 分别抓取。下面把这件事拆开说清楚。

搜索蜘蛛怎么判断带参数的 URL 是不是新地址

搜索引擎处理 URL 时会先做一轮规范化。协议和主机名大小写、默认端口、结尾多余的斜杠、片段标识(也就是 # 后面的内容),这些通常会被合并。但查询字符串(?a=1 这样的部分)一般会保留,因为参数在很多时候确实对应着不同的内容。

所以对搜索蜘蛛来说,/page 和 /page?utm_source=x 是两个不同的 URL。它不会因为参数名恰好叫 utm 就自动忽略,是否忽略取决于搜索引擎自身的参数处理规则和该站点的历史表现,这部分你无法直接控制,只能在链接写法上减少歧义。

会带来哪两种结果

结果一:抓取预算被重复消耗

入口页如果给每个目标链接都拼上不同的跟踪参数,蜘蛛跟进时就会为同一份内容多次发起请求。抓取预算是有限的,重复请求多了,真正需要被发现的新 URL 排队时间就更长。对蜘蛛池这类靠入口页批量分发链接的场景,这种浪费会明显影响效率。

结果二:参数页与干净页内容相同,被归一

如果参数纯粹是统计用途,页面内容和不带参数的版本完全一致,搜索引擎在整理索引时通常会把它们归并到其中一个版本。归并的结果不一定是你期望的那个 URL,观察收录情况时如果只盯着带参地址,很容易误判成没被抓到。

入口页链接的规范写法

  • 入口页上只写干净的目标 URL,把跟踪参数交给落地页的前端脚本或后续跳转处理;
  • 确实需要区分来源时,用清晰的路径区分,或在带参页面上设置 canonical 指向不带参的版本;
  • 对明确无意义的参数(会话 ID、排序参数、随机会话串),可以在 robots.txt 里屏蔽对应路径,但要记住:屏蔽之后该 URL 就不会被抓取;
  • 检查入口页模板,避免程序在循环生成链接时统一拼接参数。

什么时候参数是必须保留的

并不是所有参数都该清理。分页参数(page=2)、筛选条件(color=red)、语言或地区切换,这些通常会真实改变页面内容,属于有意义的 URL 组成部分,不适合一概屏蔽或重写。判断标准很简单:去掉参数后,页面内容是否仍然一致。一致就倾向清理,不一致就保留。

日志里怎么确认是入口页在带参

在服务器访问日志中,如果出现大量形如 /target?utm_source=...&spm=... 的请求,且路径部分相同、只有参数不同,基本可以判断入口页在批量输出带参链接。可以进一步统计这些请求的蜘蛛 UA 占比、返回码分布和请求间隔,再决定是改入口页写法,还是加 canonical 做归并。如果参数值看起来像随机串,还要排除是统计脚本自己发起的请求,而不是蜘蛛抓取。

提示:参数屏蔽建议在确认该 URL 内容与干净版本重复、且不需要被单独处理之后再执行,否则容易连带切断唯一入口。

几个常见误区

  • “参数是我们自己加的,搜索引擎应该知道可以忽略”——它并不知道,查询字符串是 URL 的一部分;
  • “加了 canonical 就万事大吉”——canonical 是建议性信号,最好和干净的链接写法配合使用;
  • “把带参数 URL 全封掉最省事”——封掉的同时也封掉了这些地址的抓取能力,若某条链接是唯一通路,就等于断链。

把入口页的链接写法收干净,通常不需要任何额外工具就能减少一批无意义的抓取请求。至于收录和排名,仍取决于页面内容本身和搜索引擎的判断,链接写法只解决“别把预算浪费在重复地址上”这一件事。