做蜘蛛池或站内引流时,入口页上的目标链接往往是直接从后台报表、统计工具或别处页面复制过来的,末尾常常带着 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 全封掉最省事”——封掉的同时也封掉了这些地址的抓取能力,若某条链接是唯一通路,就等于断链。
把入口页的链接写法收干净,通常不需要任何额外工具就能减少一批无意义的抓取请求。至于收录和排名,仍取决于页面内容本身和搜索引擎的判断,链接写法只解决“别把预算浪费在重复地址上”这一件事。