搜索抓取

URL 规范化与去重:蜘蛛眼里,两个地址什么时候算同一页

蜘蛛抓取以 URL 为单位,同一内容存在多个地址时,容易被重复排队。本文梳理常见重复 URL 来源,包括大小写、斜杠、参数和追踪标识,并说明 301、canonical、Sitemap 与内链如何配合收敛,最后给出从日志自查到逐步调整的顺序。

搜索抓取

URL 规范化与去重:蜘蛛眼里,两个地址什么时候算同一页

蜘蛛抓取时,队列里排的是一个一个 URL,而不是“一篇文章”。同一个页面如果存在多个可访问地址,蜘蛛可能会把它们当成不同 URL 分别排队、分别抓取。对站点来说,这不会立刻造成故障,但会让抓取预算和日志数据变得不那么清爽。

蜘蛛为什么不先做内容去重

搜索引擎当然会做内容相似度判断,但在抓取阶段,它首先要决定“这个 URL 要不要来”。URL 是抓取调度的基本单位,去重和合并往往发生在抓取之后。因此,重复 URL 越多,被重复请求的概率就越高。

常见的重复 URL 来源

  • 大小写不同:/Page 与 /page 在某些服务器上返回同一内容。
  • 结尾斜杠:/list 与 /list/ 同时可访问。
  • 域名变体:www 与非 www、http 与 https 并存。
  • 参数顺序不同:?a=1&b=2 与 ?b=2&a=1。
  • 追踪参数:utm、from、ref 等参数生成大量地址。
  • 会话 ID:URL 里带 sessionid 或类似标识。
  • 分页与筛选:同一列表页的多种排序、筛选组合。
  • 打印页、AMP、分享页等副本。

规范化信号能做什么

301 跳转、rel=canonical、Sitemap 和内链,都是告诉蜘蛛“哪个地址是主版本”的方式。它们不是强制命令,但方向一致时,蜘蛛更容易收敛到规范 URL。

301 更适合地址迁移

如果旧地址不再需要独立存在,用 301 指向新地址通常比 canonical 更明确。

canonical 适合保留多入口的页面

当多个地址都要能访问,只是希望蜘蛛以其中一个为准,可以在页面 head 里标注 canonical。注意 canonical 指向的地址本身要可访问、可抓取,并且尽量与内链、Sitemap 保持一致。

重复 URL 会带来哪些实际影响

  • 抓取预算被分摊:同一内容被多次请求,新页面可能少抓几次。
  • 日志分析变难:你看到的访问量里混入了重复地址。
  • 内链权重分散:不同地址各自收到一部分链接。
  • 数据统计偏差:页面级数据被拆成多份。

一个可执行的自查顺序

  1. 先从服务器日志里按路径聚合,找出返回 200 且内容相同的地址组。
  2. 检查站内链接,把入口统一指向规范地址,包括导航、面包屑、分页和正文推荐。
  3. 对确实需要迁移的旧地址,配置 301,避免链式跳转。
  4. 对必须保留的副本页,补充 canonical,并确认 canonical 地址没有被 robots.txt 屏蔽。
  5. Sitemap 只提交规范 URL,不要同时提交多个变体。
  6. 观察一段时间日志,看重复路径的请求量是否下降,再决定下一步。

处理完之后,抓取会怎样变化

通常不会立刻看到抓取量暴涨或排名变化。更常见的是日志里重复地址减少,规范地址的抓取更集中,新 URL 的发现速度更稳定。如果站点本身内容更新少,变化可能更不明显。

URL 规范化的目标不是“让蜘蛛多抓”,而是让蜘蛛把有限的请求用在你希望它抓的地址上。