網站收錄

URL 變体被分別收錄:尾斜杠、大小寫與預設文档的核對顺序

同一個頁面常常可以通過多個地址訪問:带不带 www、http 還是 https、有没有尾斜杠、大小寫不同、或者多了 index.html。如果服務器對這些地址都返回 200,搜尋引擎就可能把它們当作不同頁面分別抓取和收錄。本文按核對顺序梳理如何判断變体、選定規范形式,並用服務器跳轉與站内連結把地址收敛到一處。

網站收錄

URL 變体被分別收錄:尾斜杠、大小寫與預設文档的核對顺序

同一個頁面,往往可以通過不止一個地址打開:带 www 和不带 www、http 和 https、结尾有没有斜杠、字母大小寫不同、甚至多一段 index.html。如果服務器對這些地址都正常返回 200,搜尋引擎就有理由把它們当成不同頁面,分別抓取、分別收錄。结果就是同一個内容在索引里出現多份,标题和摘要互相竞争,站内站外的信号也被分散。

先判断:是真變体,還是本来就不同的頁面

不是所有看起来相似的 URL 都属于變体。带篩選參數的列表頁、分頁的後續頁碼、真正面向不同語言或地区的版本,都是獨立頁面,不该强行合並。判断标准是内容本身:正文、頁面标题、主要结构是否基本一致。只有当几個地址指向的是同一份内容时,才谈得上收敛。

常见的 URL 變体清單

  • 协议不同:http 與 https 同时可訪問
  • 主机名不同:www 與非 www 都能打開
  • 尾斜杠不同:/about 與 /about/
  • 大小寫不同:/About 與 /about
  • 預設文档:/about/ 與 /about/index.html
  • 顯式端口:example.com:443 與 example.com
  • 參數顺序與追踪參數:同一路径挂上不同排列的查询串
  • URL 编碼寫法:同一字符的不同轉义形式

它們為什么會各自被收錄

常见原因有几類:服務器没有做跳轉,任意變体都能拿到 200;站内連結、導航、站点地图混用了不同寫法;頁面本身允许多地址訪問,canonical 只寫了一個地址;CDN 或反向代理對 host 的判断不一致,回源後仍返回正常頁面。對爬虫来说,只要地址能正常返回内容,它就可能抓取並尝试索引。

核對顺序

  1. 先選定一個規范形式,一次决定、長期不改:通常是 https,加上固定選擇 www 或非 www,路径统一為小寫,並统一是否带尾斜杠。
  2. 在服務器层面 301 到規范形式,而不是只靠 canonical 兜底。跳轉是给爬虫最直接的信号。
  3. 检查跳轉鏈,避免“變体 → 另一個變体 → 規范”的多跳,尽量一次到位,减少抓取浪費。
  4. 统一站内寫法:導航、面包屑、正文内鏈、站点地图、RSS、分享按钮、广告落地頁都使用規范地址。
  5. canonical 寫成規范地址本身(自引用),其余仍可訪問的變体頁面在條件允许时指向規范地址。
  6. 检查 CDN、反向代理與负载均衡的 host 判断,確認非規范 host 不會回源出 200 頁面。
  7. 观察實际收錄地址:用 site 查询和抓取工具看索引里留下的是哪個形式,確認收敛是否在推進。

收敛之後要注意什么

  • 已收錄的舊變体不會立刻消失,索引更新需要時間,不必频繁改動策略。
  • 如果舊變体還有外鏈,301 能把信号传递到規范地址,通常比直接返回 404 更平滑。
  • 不要用 canonical、robots 限制、301 同时去解决同一件事,多個信号容易互相冲突。
  • 參數類變体優先在服務器或爬虫規則层面處理,比逐頁寫标簽更省事。
URL 變体的核心不是“让搜尋引擎替你選一個”,而是服務器和站内連結只提供一個。你给出的信号越乱,索引里的结果越不确定。

小结

遇到同一頁面多個地址被分別收錄,先確認内容是否真的一致,再選定唯一規范形式,用 301、内鏈和 canonical 逐步收敛。顺序上,服務器跳轉優先于标簽提示,站内统一優先于事後清理。收敛完成後给索引留出更新時間,再用收錄地址分布来驗證。