搜索抓取

蜘蛛抓取前的 URL 合并:哪些地址会被当成同一个页面

同一篇内容挂在不同 URL 上,蜘蛛会分别抓取,既浪费抓取预算,也容易让页面互相竞争。这篇从协议、www、末尾斜杠、参数等常见变体说起,讲清蜘蛛合并 URL 的逻辑,以及如何用 301、canonical、内链和 Sitemap 把地址收口到规范版本。

搜索抓取

蜘蛛抓取前的 URL 合并:哪些地址会被当成同一个页面

很多站点在日志里会看到蜘蛛反复抓同一批内容,但 URL 看起来又不太一样:有的带 www,有的不带;有的是 http,有的是 https;有的末尾多一个斜杠;有的后面跟着一串跟踪参数。对蜘蛛来说,这些地址在它没有拿到明确合并信号之前,往往会被当成不同 URL 分别处理。

蜘蛛不会自动帮你合并所有地址

搜索蜘蛛发现一个 URL 后,会把它放进抓取队列。如果同一个页面通过内链、Sitemap 或外链被暴露成多个地址,蜘蛛就可能分别抓取。抓取预算有限时,这些重复抓取会挤占真正需要更新的页面。更麻烦的是,多个地址返回相同内容,蜘蛛还要判断哪个是主版本,判断成本高,结果也不一定符合你的预期。

常见的重复地址有哪些

  • 协议不同:http 与 https 同时可访问。
  • 主机名不同:带 www 和不带 www 都能打开。
  • 路径细节:末尾斜杠、大小写、多余的目录层级。
  • 参数差异:跟踪参数、排序参数、会话 ID、来源标记。
  • 功能页副本:打印页、AMP 页、移动版独立地址。

这些变体不一定都会被大量抓取,但只要内链或 Sitemap 里存在多个版本,蜘蛛就有机会走到。尤其是参数 URL,如果站内链接生成规则不统一,蜘蛛会顺着不同参数组合爬出很多相似页面。

给蜘蛛明确的合并信号

最直接的方式是让非规范地址跳转到规范地址。永久跳转用 301,不要用 302 替代,也不要让跳转链太长。每一步跳转都会消耗抓取资源,蜘蛛也可能在中间停下。

如果因为业务原因不能做跳转,可以在页面头部用 canonical 标签指向规范地址。canonical 是建议信号,不是强制指令,蜘蛛会结合内链、Sitemap、重定向一起判断。所以不能只在模板里加一行 canonical,却继续在内链和 Sitemap 里分发旧地址。

内链要统一到规范地址

站内链接是蜘蛛发现 URL 的主要路径。导航、面包屑、列表页、相关推荐、分页,最好都指向同一个规范版本。如果导航里用不带 www 的地址,正文里又用带 www 的地址,蜘蛛就会收到两套入口。检查时可以随机抽取一些栏目页和详情页,看链接是否统一。

Sitemap 只放规范 URL

Sitemap 是给蜘蛛的清单,不是把站内所有地址都倒进去。只提交规范 URL,能减少蜘蛛对重复版本的注意力。参数页面、筛选页面、打印页,如果没有独立搜索价值,不建议放进 Sitemap。若确实需要保留,至少确保它们通过 canonical 或 robots 规则与主版本区分开。

服务器层面容易忽略的细节

有些重复地址来自服务器配置。比如 http 没有强制跳 https,带 www 和不带 www 都返回 200,末尾斜杠和不带斜杠都能打开。这些配置看起来方便,实际会让蜘蛛看到多个可抓取版本。可以在服务器或 CDN 层做统一跳转,但要注意跳转目标本身可访问,避免循环或跳到 404。

另外,服务器不稳定时,蜘蛛可能抓取失败并稍后重试。如果同一内容有多个地址,重试的地址也可能分散,进一步增加抓取波动。保持服务器响应稳定,对 URL 收敛也有帮助。

怎么检查和收敛

  1. 看服务器日志,筛选蜘蛛访问记录,按路径和参数统计重复抓取较多的地址。
  2. 用搜索资源平台的抓取统计和索引覆盖报告,观察是否有重复页面被收录。
  3. 抽查内链、Sitemap、canonical 是否指向同一规范地址。
  4. 对确认的重复地址做 301 或 canonical,并观察后续抓取变化。
  5. 改版或换模板后,重新检查链接生成规则,避免旧地址回流。
URL 收口不是做一次就结束。模板、栏目、参数规则、服务器配置任何一处变化,都可能让重复地址重新出现。定期看日志和抓取数据,比一次性设置更可靠。

总之,蜘蛛抓取的是你暴露给它的地址,而不是你心里以为的那个地址。把规范 URL 定清楚,在内链、Sitemap、跳转和 canonical 上保持一致,蜘蛛才能把抓取精力放在真正需要更新的页面上。