常见问题

目标 URL 带了一长串参数,搜索蜘蛛会把它当成新页面重复抓取吗?

很多站点在入口页或外链里给 URL 挂上统计、会话、筛选参数,结果日志里同一内容被反复请求。本文说明搜索蜘蛛对参数地址的判断逻辑、什么情况下参数会被视为不同 URL,以及如何用规范化、robots 和链接写法收敛参数,减少无效抓取。

常见问题

目标 URL 带了一长串参数,搜索蜘蛛会把它当成新页面重复抓取吗?

很多站点在给目标 URL 做外链或放进入口页时,会顺手带上统计参数、会话参数或者筛选参数,比如 utm_source、from、ref、sessionid 之类。结果在服务器日志里看到同一个内容被请求很多次,于是产生疑问:搜索蜘蛛到底把带参数的地址当成新 URL,还是当成同一个页面的不同写法?

结论先给:搜索蜘蛛把 URL 当成一个字符串来看,参数不同,它就是不同的地址。只不过在实际抓取时,会有一套优先级和去重逻辑,不会无脑全部抓完。理解这套逻辑,比纠结“会不会重复抓”更有用。

参数不同,为什么就算不同 URL

对搜索引擎来说,URL 的识别基于完整地址。https://example.com/a 和 https://example.com/a?from=abc 是两个不同的字符串,理论上对应两个可访问的资源。搜索蜘蛛不会先“理解”这两个地址内容一样,再决定合并——它需要先抓取,才能判断内容是否重复。

所以带参数的链接被放进入口页或站外页面,等于给搜索蜘蛛多派了一份待抓任务。任务本身没问题,问题是当参数组合成百上千时,这些任务会挤占本来该给正常页面的抓取额度。

哪些情况参数会被大量派发

  • 入口页或列表页里的链接,把当前页面的查询参数顺着带了下去,翻一页多一组参数。
  • 站内搜索、筛选、排序功能生成了可抓取的链接,每个条件组合都是一个新地址。
  • 分享链接、广告链接自动附加统计参数,被大量复制到外部页面。
  • 会话 ID、跟踪 ID 写进了 URL,而不是放在 cookie 或请求头里。

这几种情况的共同点是:内容基本不变,地址却不断增殖。搜索蜘蛛抓到的是一堆高度相似的页面,站点能获得的实际价值很低。

搜索蜘蛛会怎么处理这些参数 URL

不同的搜索引擎细节不完全一样,但大致路径相似:

  1. 先抓一部分参数 URL,比对页面主体内容是否与已有页面高度重复。
  2. 如果判定为重复,后续同类参数地址的抓取优先级会被调低。
  3. 如果站点明确用 canonical、robots 或链接规范做了收敛,抓取会更加集中于主地址。

也就是说,参数 URL 不会永远无限抓下去,但在“被降权”之前的那部分抓取已经消耗掉了。对抓取预算紧张的中小站点来说,这部分消耗是实打实的。

怎么收敛参数,减少无效抓取

不建议一刀切禁止所有参数,因为有些参数确实代表不同内容,比如商品 ID、文章 ID、分页 page。要区分对待:

  • 无意义的跟踪参数:在入口页和站内链接里尽量不写,必要的统计放到前端脚本或服务端记录。
  • 同一内容的多参数地址:在页面 head 里用 canonical 指向不带参数的规范地址。
  • 筛选、排序、会话类参数:如果内容重复,用 robots.txt 的 Disallow 配合通配符拦掉明显无价值的组合。
  • 必须保留的参数:在 sitemap 里只列规范形式,避免把变体也提交一遍。
robots.txt 只影响抓取,不影响收录判断。被挡住的 URL 仍可能因为外部链接被索引,只是搜索蜘蛛不会去抓内容。用之前想清楚目的。

入口页放带参数链接时的两个习惯

第一,入口页输出的链接尽量用规范地址,不要在 href 里拼接来源标记。搜索蜘蛛顺着入口页发现的地址,会直接影响它后续抓取什么。

第二,如果同一个目标 URL 需要在多个入口页出现,保持地址写法一致。写法统一,日志里的请求会更集中,判断抓取效果也更容易。

回到最初的问题:搜索蜘蛛确实会把带参数的地址当成新 URL,但抓不抓、抓多少,取决于站点有没有做收敛。与其担心重复抓取,不如先把链接里的参数管好,让每一次抓取都落在真正有价值的内容上。