網站收錄

URL 大小寫、末尾斜杠、www 前缀:同一頁面的多種寫法怎么收口

同一個頁面常會因為协议、主机名、末尾斜杠和大小寫产生多個 URL。本文說明如何盘点這些變体、選定主版本、用一次到位的跳轉做收口,並给出收口後的驗證方法和几個常见错誤做法。

網站收錄

URL 大小寫、末尾斜杠、www 前缀:同一頁面的多種寫法怎么收口

同一個頁面在服務器上可能有好几種寫法:带 www 和不带 www、http 和 https、末尾带斜杠和不带、路径里大寫和小寫。對訪問者来说它們看起来是同一個頁面,對搜尋引擎来说它們是不同的 URL。如果不做收口,抓取、外鏈和統計資料會被分到几個地址上,收錄表現自然好不了。

先認清變体從哪来

  • 协议與主机名:http 與 https、example.com 與 www.example.com,常因為早期配置残留而同时可訪問。
  • 末尾斜杠:/about 與 /about/,目錄寫法和文件寫法混用。
  • 大小寫:/About、/about、/ABOUT 在多數服務器上指向同一内容,但 URL 字符串不同。
  • 預設文档:/index.html 與根目錄内容重复。
  • 參數顺序:同一组篩選參數顺序不同,也會生出多個地址。

這些變体的共同点是:内容一样,URL 不一样。它們不會自動互相抵消,而是各自被当成一個候選頁面。

做一次全站盘点

收口之前先知道自己有多少變体。可以按下面的顺序查:

  1. 從服務器日誌里筛出返回 200 的 URL,按主机名和协议分组,看有几種前缀。
  2. 把 sitemap 里的地址去重,检查是否混入了非主版本的寫法。
  3. 抽查站内連結:導航、面包屑、正文連結、分頁連結是否指向同一個版本。
  4. 看站長工具里的頁面报告,留意被标记為重复或未選擇規范頁面的地址。

盘点的重点是找出谁在指向哪個版本,而不只是統計有多少個地址。

選定主版本並一次跳到位

主版本的選擇没有绝對标准,取一個就好:通常選 https 加带 www 或不带 www 中歷史外鏈更多的那一個,路径统一小寫、目錄地址统一带末尾斜杠。定下来之後:

  • 服務器层把其余變体 301 到主版本,直接跳到最终地址,不要先跳 www 再跳 https 再补斜杠。
  • 站内所有連結改成主版本,包括導航、分頁、相關推荐和 sitemap。
  • 頁面里的 canonical 指向主版本,並且保持自指,即主版本頁面 canonical 就是它自己。

大小寫要單獨處理

如果服務器對大小寫不敏感,/About 和 /about 會返回同一份内容,但 URL 字符串仍然不同。這时不要在不同大小寫下輸出不同的 canonical,直接让所有變体 301 或 canonical 到小寫版本即可。若服務器区分大小寫,則要確認没有两條真實存在的路径只差大小寫。

服務器規則別做過头

跳轉規則寫得越复杂,越容易出現连环跳轉或被誤伤。改規則前先在測試环境驗證几组地址:根目錄、带參數、带末尾斜杠、大小寫混合,確認都是一次跳到正确地址。

收口的目标是让一個頁面只有一個可被引用的地址,不是把所有可能的寫法都用規則堵死。

收口之後怎么驗證

  • 批量請求一批變体地址,看返回碼是否為 301,且 Location 指向主版本。
  • 用抓取工具或日誌確認蜘蛛最终停留在主版本地址上。
  • 抽查頁面源碼里的 canonical 是否随 HTML 一起返回,避免依赖脚本注入。
  • 過一段時間再看索引情况,變体地址會逐步登出,速度不會很快。

几個常见的错誤做法

  • 同时用 301、canonical、noindex 三種方式指向不同地址,信号互相矛盾。
  • 只在 sitemap 里改主版本,站内連結和跳轉規則没動,蜘蛛還是會先撞上變体。
  • 為了统一斜杠,對已经是主版本的地址也加了一條跳轉,形成自跳。
  • 把變体頁面内容清空或返回 404,而不是跳轉,導致原有外鏈失效。

URL 變体不是什么大問题,但它會長期消耗抓取资源、稀释信号。把主版本定下来,跳轉做一次到位,内鏈和 sitemap 跟上,剩下的交给時間。