不少人在入口页里放目标链接时,是直接从推广后台或统计工具里复制出来的,链接后面往往拖着 ?utm_source=...&ref=...&sid=... 这一串参数。于是就出现一个很实际的问题:搜索蜘蛛看到一个目标 URL 有七八种带参数的写法,会把它们当成同一个页面,还是当成新页面各抓一遍?
先看搜索蜘蛛怎么理解带参数的 URL
对搜索蜘蛛来说,URL 就是地址,参数不同通常意味着地址不同。也就是说,example.com/a 和 example.com/a?ref=123 在默认情况下是两个地址,各自都可能被抓取、被存入候选集合。
但搜索引擎并不是死板地按字符串处理。它会结合经验规则和你站点给出的信号(如 canonical、参数处理设置、robots 规则)来判断哪些参数属于跟踪、排序、过滤类,可以合并。判断的主动权不完全在你手里,所以结果往往不确定:一部分参数 URL 被合并,另一部分被单独抓取。
入口页里带参数链接带来的三个实际问题
- 抓取预算被稀释:同一个内容被拆成多个地址,搜索蜘蛛要花更多次抓取才能覆盖,本来能用在其他页面上的配额被消耗掉。
- 发现结果分散:入口页里同时出现干净地址和参数地址,等于向搜索引擎提交了两套候选,最后哪一条被保留你无法完全控制。
- 日志难读:日志里同一内容出现几十种参数组合,很难判断某个目标 URL 到底有没有被真正抓过。
入口页里更稳妥的几种做法
- 入口页统一使用干净 URL:放链接前把跟踪参数、会话 ID、时间戳这类只在推广侧才需要的参数去掉。推广统计可以让落地页用脚本读取来源,不一定非要写死在链接上。
- 参数 URL 在服务器端做处理:对确认没有内容差异的参数,用 301 指回主地址,或在站点层面告诉搜索引擎哪些参数可以忽略。注意不要对本来有区分意义的参数(如分页、筛选)一刀切。
- 给出 canonical 信号:如果参数版本必须存在,就在页面上指向主地址的 canonical,减少重复候选。
- 用 robots 规则挡住纯跟踪地址:对确认无用、又不会被用户直接访问的参数路径,可以用 robots.txt 限制抓取。但要清楚:限制抓取不等于从索引中消失,且屏蔽过度可能连带挡住重要页面。
- 别把参数当成多提交几次的手段:同一内容用不同参数在入口页里反复出现,通常不会提高被发现的机会,只会增加噪音。
怎么判断已经出问题
可以按这个顺序排查:
- 在服务器日志里按目标路径筛选,看相同内容是否出现多种参数形式,并且都被抓过。
- 看抓取频次是否集中在少数几个 URL 的参数变体上,而其他页面长期没有抓取记录。
- 检查入口页源码,确认链接是不是被复制粘贴带进了统计参数。
如果确认只是跟踪参数,处理起来通常并不复杂:入口页换成干净地址、服务器做重定向或参数处理,过一段时间日志里的参数变体会逐渐减少。需要提醒的是,这类调整只影响抓取和判断的效率,不能保证目标 URL 一定被收录或获得排名。
参数本身不是问题,问题是同一个内容被拆成多个地址后,抓取和判断都变得更分散。入口页放链接前多看一眼 URL,往往比事后补救省事。