很多站点在检查收錄时,會發現同一個頁面有多個 URL 都能打開,比如大小寫不同、末尾有没有斜杠、带不带跟踪參數。每個變体都可能被蜘蛛發現並抓取,索引里就會出現多條相似记錄。
先分清:哪些變体是問题,哪些是功能
不是所有多 URL 都要收敛。分頁、篩選、排序參數如果承载了不同内容,属于功能型 URL,處理方式不同。真正需要優先處理的是同一内容因书寫、协议、參數拼接产生的變体。
- 大小寫:/About 和 /about
- 末尾斜杠:/guide 和 /guide/
- 跟踪參數:?utm_source=xxx、?from=xxx
- 會话與排序參數:?sid=xxx、?sort=price
- 索引參數:?id=123 與 /123 路径形式
處理顺序:先確認現状,再動手
第一步:確認哪些變体已進入索引
用 site 查询或索引狀態报告,把同一内容的不同 URL 列出来。重点看它們是否有獨立标题、描述和点击資料。如果只是 URL 不同,内容完全一样,就属于可收敛對象。
第二步:定一個主 URL
每個頁面只保留一個主 URL,作為 canonical、内鏈和 Sitemap 中使用的地址。主 URL 應结构简單、稳定、可長期使用。不要频繁更換主 URL,否則信号會反复重置。
第三步:按變体類型分別處理
- 大小寫:服務器和 CDN 统一把小寫作為主形式,大寫 URL 用 301 跳轉到小寫。注意 URL 路径大小寫敏感,不要只靠前端處理。
- 末尾斜杠:選带斜杠或不带斜杠其中一種,另一種 301 過去。全站規則要一致,避免有的頁面带、有的不带。
- 跟踪參數:内部連結不要带跟踪參數;外部投放連結可以用 canonical 指向無參數版本。不要用 robots.txt 屏蔽通用參數,否則可能誤伤正常頁面。
- 會话和排序參數:如果參數不改變核心内容,canonical 指向預設版本;如果改變内容,保持可抓取並合理分類。
- 索引參數:能改成静態路径的尽量改,不能改的用 canonical 收敛。
第四步:统一内部連結和 Sitemap
内部連結、導航、面包屑、Sitemap 都只指向主 URL。很多重复收錄不是外部造成的,而是站内連結自己带了參數或大小寫混用。Sitemap 里混入變体 URL,會直接引導蜘蛛抓取重复版本。
第五步:观察抓取和索引變化
收敛後不要期待立刻生效。蜘蛛需要重新抓取舊 URL,確認 301 或 canonical 信号,再逐步替換索引中的记錄。可以观察抓取統計里舊變体是否减少、主 URL 是否稳定。
常见誤区
- 同时用 301 和 canonical:如果已经 301,目标頁不需要再對舊 URL 做 canonical 声明。
- 只改 canonical 不做内鏈统一:站内連結繼續指向變体,蜘蛛仍會反复發現舊 URL。
- 一刀切屏蔽所有參數:可能把篩選、分頁等有價值頁面一起屏蔽。
- 频繁更換主 URL:每次更換都會让索引信号重新评估。
提醒:URL 收敛的目标不是让所有變体消失,而是让同一内容只對應一個清晰的主地址。功能型參數應保留,重复型變体才需要收敛。
检查清單
- 列出同一内容的所有可訪問 URL。
- 確認哪些是重复變体,哪些是功能參數。
- 為每個頁面選定唯一主 URL。
- 用 301 處理大小寫和末尾斜杠。
- 内部連結和 Sitemap 只放主 URL。
- 跟踪參數通過 canonical 或連結規范處理。
- 观察抓取和索引資料,確認舊變体逐步减少。
最後,URL 變体問题通常不是一次改完就結束。上线新頁面、更換 CMS、調整 CDN 規則时,都可能重新引入不一致的 URL 形式。把主 URL 規則寫進内容發布流程,比事後反复排查更省力。