網站收錄

同一頁面多個地址都能打開:先做 URL 收口再谈收錄

同一份内容通過 http/https、www/非 www、结尾斜杠或參數顺序不同,可能产生多個可訪問地址。本文梳理重复 URL 的常见来源,說明如何确定主版本、用 301 收口,並让内鏈和 sitemap 保持一致,减少重复内容和抓取浪費。

網站收錄

同一頁面多個地址都能打開:先做 URL 收口再谈收錄

一個頁面往往不止一個地址能打開:带 www 與不带 www、http 與 https、结尾有没有斜杠、參數顺序不同,甚至大小寫混用,都可能返回同一份内容。對用戶来说都能看,對搜尋引擎来说却是多個 URL。收錄阶段出現重复内容、權重分散、抓取次數被浪費,通常從這里開始。

先找出重复地址是從哪里来的

常见来源並不复杂,但容易漏掉:

  • 协议和主机名:http 與 https,www 與非 www,带預設端口和不带端口。
  • 路径细节:结尾斜杠有無、目錄大小寫、中文路径编碼方式不同。
  • 參數:排序、篩選、會话 ID、跟踪參數、參數顺序變化。
  • 功能頁:打印頁、分享頁、手机版獨立地址、舊版入口。

這些地址如果都返回 200,蜘蛛會分別抓取、分別判断,最後可能只選一個留下,也可能留下多個相似版本。

确定主版本,用 301 收口

先選一個主版本。判断依據可以看外鏈最多的那個、日誌里蜘蛛抓得最多的那個、sitemap 里一直声明的那個,以及用戶最常用的訪問方式。選好之後,其余版本统一做 301 永久重定向到主版本。

不建议用 302 長期代替 301,也不要用 JavaScript 跳轉或 meta refresh 来做收口。這些方式可能被当成临时處理,蜘蛛仍會保留原地址。重定向鏈也要尽量短,避免 A 跳 B、B 再跳 C。

站内連結和 sitemap 要保持一致

重定向只是兜底,真正影响判断的是站内信号。導航、面包屑、文章内鏈、分頁連結、sitemap 里出現的地址,都應该是主版本。如果一邊 301 收口,一邊内鏈還在大量指向舊地址,蜘蛛會持續發現舊 URL,收口速度會被拖慢。

canonical 可以作為补充,但不要把它当成唯一手段。頁面能 301 的,優先 301;不能 301 的,比如參數頁、打印頁,再用 canonical 指向主版本,同时確認 canonical 地址本身返回 200 且可被抓取。

几個容易忽略的细节

  • 大小寫:有些服務器区分大小寫,/Page 和 /page 是两個地址;有些服務器不区分,但連結寫法不统一仍會制造多個入口。
  • 结尾斜杠:/a 和 /a/ 是否都返回 200,要看服務器配置。目錄型地址通常保留一種寫法。
  • 參數顺序:?a=1&b=2 與 ?b=2&a=1 内容相同,但 URL 不同。可以通過服務器或 CDN 统一參數顺序,或對無實际意义的參數做處理。
  • 跟踪參數:utm、fbclid 之類參數最好在服務器端忽略,或通過 canonical 指向無參數版本,避免每個分享渠道都产生一個地址。

收口之後看什么指标

改動後不要只看收錄量。可以按顺序观察:服務器日誌里舊地址的抓取次數是否下降;新主版本的抓取和返回狀態是否稳定;索引里重复或备用版本是否减少;内鏈和 sitemap 中是否還有舊地址残留。

如果舊地址被抓取後返回 301,這是正常過程。蜘蛛需要時間重新確認,通常不會立刻完成替換。大批量修改时建议分批做,先改一组目錄或一種參數,观察日誌和索引變化後再繼續。

URL 收口的目标不是让所有地址消失,而是让搜尋引擎清楚知道哪一個地址代表這份内容。主版本稳定、内鏈一致、重定向清晰,收錄判断才會更干净。

最後提醒一句:不要為了让舊地址快速消失就返回 404 或 410,除非那些地址确實不再使用。正常做法是保留 301,让它把已有信号传递到主版本。