網站收錄

http、www、尾斜杠、大小寫:URL 變体太多,索引里會留下几份同样的頁面

同一篇内容常常能通過 http 與 https、带 www 與不带 www、带尾斜杠與不带尾斜杠等多個地址打開。URL 不归一,蜘蛛會重复抓取,索引里也可能留下多份相同頁面,後續排查收錄时數字很容易對不上。這篇梳理常见變体、归一顺序和上线前的自查清單。

網站收錄

http、www、尾斜杠、大小寫:URL 變体太多,索引里會留下几份同样的頁面

同一篇内容,訪客從不同地址都能打開:有人從 http 進,有人從 https 進;有人複製的是带 www 的連結,也有人拿到的是不带 www 的;有的地址结尾带斜杠,有的不带。對人来说這些都能看,但站在搜尋索引的角度,它們可能是好几個不同的 URL。

常见的 URL 變体有哪些

  • 协议:http://example.com/page 與 https://example.com/page
  • 主机名:example.com 與 www.example.com
  • 尾斜杠:/page 與 /page/
  • 大小寫:/Page、/page、/PAGE,在部分服務器上會被当成不同路径
  • 追踪參數:utm_source、utm_medium、fbclid 等,同一個頁面能生成無數地址
  • 會话與排序參數:sessionid、sort、filter 之類
  • 路径寫法:/category/page 與 /page,或者 ID 與 slug 並存的两套地址

URL 不归一會带来什么

蜘蛛的抓取有配額和节奏。同一份内容對應多個地址,它可能反复抓取這些地址,真正需要更新、需要被發現的頁面反而排到後面。索引层面也一样:内容几乎一致时,索引會自己挑一個版本留下,但這個選擇未必和你的预期一致。结果就是内鏈指向的那份可能没被留下,外鏈积累的那份反而在索引里,之後排查收錄問题时很容易對不上。

更麻烦的是統計口径。抓取日誌里同一個頁面出現多個地址,收錄數字看起来涨了,實际有效頁面並没有增加,站点地图和站長平台的資料也會互相打架。

先归一 URL,再谈 canonical

遇到重复地址,很多人第一反應是给每份都加 canonical。canonical 有用,但它只是提示,不是命令。更稳的做法是先让站点只暴露一個規范地址,再让 canonical 作為补充。

  1. 定下唯一形式:選 https、選带 www 或不带 www、選带尾斜杠或不带,全站统一,寫進開發規范。
  2. 用 301 而不是 302:把舊地址永久跳到規范地址,301 表達的是地址已经換了,302 只是临时跳轉,语义不同。
  3. 内鏈只指向規范地址:導航、面包屑、文章互鏈、分頁連結保持统一,不要一會儿带斜杠一會儿不带。
  4. 站点地图只放規范地址:sitemap 里出現非規范地址,等于又给蜘蛛递了一份副本。
  5. 處理參數頁:追踪參數尽量在服務端忽略或重定向;排序、篩選類參數頁按是否值得收錄分別處理。
canonical 解决的是哪一份是主版本,301 解决的是地址已经換了。两者管的事情不同,別用一個代替另一個。

上线前過一遍這些检查

  • 從 http 訪問是否 301 到 https,且路径完整保留
  • www 與非 www 是否只有一個能直接返回 200
  • 带尾斜杠和不带尾斜杠是否只有一種返回 200
  • 頁面上所有内鏈是否都指向規范地址
  • sitemap、RSS、分享按钮里的地址是否统一
  • 服務器是否對大小寫敏感,模板生成的連結大小寫是否一致
  • 翻頁、排序、篩選參數是否會产生大量内容相同的地址

已经乱了怎么办

如果索引里已经存在多份相同内容,先別一次性大改。可以按流量和連結價值分档:有外鏈、有自然点击的舊地址優先做 301,其余低價值地址逐步收敛。改動後观察一段時間的抓取日誌,看舊地址的訪問是否下降、規范地址的抓取是否變多。索引替換需要時間,過渡期里不同工具顯示的數字可能仍不一致,這属于正常現象,不必反复改動。

URL 归一看着是技術细节,但它决定了蜘蛛把抓取配額花在哪里、索引里最终留下哪一份。把這一步做在前面,後面的收錄维護會省很多力气。