網站收錄

大小寫、斜杠與預設文档:同一頁面收錄成多個 URL 时的收敛顺序

同一個頁面在索引里以大小寫、结尾斜杠、預設文档等不同寫法出現,往往是 URL 規范没统一造成的。本文先区分抓取與收錄,再梳理變体的常见来源,並给出從服務器跳轉、内鏈、canonical 到 sitemap 的收敛顺序與自查清單。

網站收錄

大小寫、斜杠與預設文档:同一頁面收錄成多個 URL 时的收敛顺序

有时會發現,同一個頁面在索引里以几種不同的 URL 出現:有的带大寫字母,有的少了结尾斜杠,有的後面還跟着 index.html。它們指向的内容一模一样,却各自占着一個索引位置。结果是權重被摊薄,統計也對不上。這類問题並不神秘,本质是 URL 規范化没有统一,再加上搜尋引擎會把每種寫法先当成獨立地址来抓取。

先確認:是被抓取,還是被收錄

這一步很容易混淆。服務器日誌里出現某個 URL,只說明它被抓取過;索引里能查到它,才算進了收錄。排查时按這個顺序来:

  • 用 site: 查询或站長平台,看變体 URL 是否真的能單獨被搜到;
  • 看站長平台的覆盖率报告,變体是已收錄,還是顯示為重复網頁、未選定規范網頁;
  • 查服務器日誌,確認這些變体是從哪里被發現的,是内鏈、外鏈、sitemap 還是參數拼接。

如果變体只是被抓取、並没有被收錄,處理起来简單得多;如果已经各自收錄,就需要等搜尋引擎重新判断規范版本。

常见的 URL 變体有哪些

  • 大小寫:/About 與 /about 在多數服務器上是两個地址;
  • 结尾斜杠:/news 與 /news/ 可能都能正常訪問;
  • 預設文档:根目錄與 /index.html、/index.php 同时存在;
  • 重复斜杠:/a//b 這類由拼接错誤产生的地址;
  • 协议與主机名:http 與 https、带 www 與不带 www;
  • 參數與追踪碼:utm 參數、會话 ID、排序參數。

這些變体只要都能返回 200,搜尋引擎就有理由把它們当作不同的 URL 去抓取和评估。

收敛的顺序:從服務器開始,而不是從 canonical 開始

  1. 服務器层面统一跳轉。先選一個唯一形式,把其他寫法 301 過去。大小寫、结尾斜杠、預設文档、协议與主机名都放在這一步處理,這是最彻底的做法。
  2. 站内連結保持一致。内鏈、導航、面包屑、分頁以及後台自動生成的連結,都要使用規范形式。内鏈是搜尋引擎發現 URL 的主要来源,自己产出的變体越多,收敛越慢。
  3. canonical 只做兜底。当某些變体無法用跳轉處理,比如带參數的頁面,再用 canonical 指向規范 URL。注意它是提示,不是强制指令,應寫在跳轉之後。
  4. sitemap 只提交規范形式。把變体也寫進 sitemap,等于主動告诉搜尋引擎這些都是獨立頁面。
  5. 外鏈逐步修正。外部連結指向哪個版本你控制不了全部,但可以在跳轉层兜住,避免出現新的變体。

几個常被忽略的细节

  • 跳轉鏈不要超過一跳,A 到 B 再到 C 的形式會浪費抓取,也让規范判断變模糊。
  • 規范 URL 的内容要真的和變体一致,内容有差异时,搜尋引擎可能不采纳你的指向。
  • HTTPS 迁移或換域名时,舊地址的跳轉要長期保留,不要只放几個月。
  • CDN 或反向代理有时會改寫 URL,排查时记得把這一层也算進去。
URL 規范化的目标不是让變体彻底消失,而是让搜尋引擎明确知道哪一個版本才算數。只要跳轉、内鏈、canonical、sitemap 四個环节指向一致,收敛只是時間問题。

自查清單

  1. 唯一規范形式是否已经确定,並寫成文档?
  2. 服務器是否對所有變体做了 301,而不是 302 或直接返回 200?
  3. 站内連結是否全部使用規范形式?
  4. canonical、sitemap、内鏈是否指向同一個 URL?
  5. 改完之後是否看過日誌,確認變体的抓取在减少?

整個過程不需要額外手段,把入口收干净,剩下的交给正常的抓取周期即可。收錄版本统一之後,統計和排名通常也會跟着稳定下来。