網站收錄

同一頁面出現多個 URL 變体:收錄前先做一次 URL 規范化核對

大小寫、结尾斜杠、index.html、http 與 www、參數顺序,都可能让同一份内容對應多個地址。這類變体通常都能返回 200,表面上没問题,却會稀释信号、让索引里出現一批相似頁面。本文给出一套可执行的核對顺序:先查清變体来源,再用跳轉、canonical 與屏蔽分层處理,最後通過日誌和索引观察是否收敛。

網站收錄

同一頁面出現多個 URL 變体:收錄前先做一次 URL 規范化核對

同一份内容被多個 URL 指向,是收錄問题里最常见、也最容易反复出現的一類。它們通常不是刻意生成的,而是站点在多年迭代中自然留下的:早期用大寫目錄名的連結、带 index.html 的舊入口、http 與 https 並存时期的残留、加過跟踪參數的活動頁。這類變体往往都能正常打開、返回 200,所以從表面看「没有問题」,但它們會稀释頁面信号,也让索引里出現多個長相相似的地址。

先確認變体是從哪来的

不要急着動手改,先做一次采样,把同一份内容可能出現的地址形式列全:

  • 主机名與协议:http 與 https、www 與非 www 是否各自能獨立打開,還是统一跳轉到同一個形式。
  • 路径大小寫:服務器是否区分大小寫,同一路径的大小寫變体是否都返回 200。
  • 结尾斜杠:目錄形式與带斜杠形式是否都能訪問,是否有一方 301 到另一方。
  • 預設文件名:目錄首頁與加上 index.html、default 之類的完整路径是否並存。
  • 參數:跟踪參數、排序參數、會话參數,以及參數顺序不同是否會产生新地址。

這一步的目的是分清哪些真正需要處理,哪些其實已经被服務器跳轉到统一形式了。已经一跳 301 到首選地址的,通常不需要額外動作。

三種處理方式,優先級不同

常见手段有三種,但作用强度並不一样:

  1. 服務器跳轉:301 到首選形式,是最明确的做法。前提是只跳一跳,不要出現 http 跳到 www、再跳到 https、再跳到带斜杠的连环跳。
  2. canonical:在每個變体頁面上指向同一個首選地址。它是建议而非指令,跨域或與跳轉冲突时可能被忽略。
  3. 屏蔽抓取:robots meta 或 robots.txt 只适合參數型、本身没有獨立價值的變体。對已经有外鏈指向的地址做屏蔽,往往只會让信号更乱。

顺序上建议先用跳轉统一、再用 canonical 兜底,最後才考虑屏蔽。反過来做,容易出現「被屏蔽的地址仍有外鏈、首選地址反而没人抓」的局面。

核對顺序

  1. 從抓取日誌里筛出同一路径的所有變体,確認實际被抓取的是哪几個。
  2. 逐個測試跳轉鏈,把多跳压成一跳,並確認没有循环。
  3. 检查每個變体頁面的 canonical 是否指向同一地址,首選地址是否自指向。
  4. 检查站内連結、面包屑、分頁、站点地图,是否都统一使用首選形式。
  5. 检查外鏈是否仍指向舊變体;能联系修改就改,不能改也不必强求。
  6. 站点地图里只保留首選地址,不要新舊混放。
跳轉與 canonical 表達的是同一件事:谁是首選。两者不一致时,搜尋系統會自己判断,结果未必是你想要的。

改完之後看什么

整理完成後,观察日誌里首選形式是否成為主要抓取對象,以及索引中變体是否逐渐减少。這個過程可快可慢,取决于變体自身的抓取频率與外鏈情况。如果索引里仍保留變体,可以在索引报告或搜尋结果中看到「重复網頁,系統選擇的規范網頁與用戶指定的不同」一類的提示,這时要回头检查 canonical 與跳轉是否真的對齐,而不是繼續加更多地址去覆盖。

另外要提醒的是,URL 規范化不是一次性的工作。新上线的栏目、改版後的路径、投放用的带參連結,都會不断引入新的變体。把它当成日常巡检中的一項,比攒到問题明顯时再做大清理更容易维持。