搜尋抓取

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 規范化的目标不是“让蜘蛛多抓”,而是让蜘蛛把有限的請求用在你希望它抓的地址上。