运营中常见的情况是:同一個頁面在搜尋结果里出現好几個版本,或者站長工具里顯示的已收錄 URL 數量明顯超過實际頁面數。多數时候不是搜尋引擎在乱收,而是站点自己為同一個頁面提供了多個可訪問寫法,蜘蛛顺着不同入口各抓了一遍。
先確認:這些 URL 是不是同一個頁面
動手處理之前要先判断清楚,別把正常的獨立頁面誤当成重复。
- 内容主体是否一致:正文、标题、主要图片相同,只是 URL 不同,才算同一頁面。
- 是否由同一份資料生成:列表篩選、排序、分頁參數往往生成的是另一批内容,属于另一類問题。
- 是否只是展示形態不同:打印頁、AMP 頁、獨立移動端域名,這類應按多版本處理,而不是简單当作重复。
常见的 URL 變形類型
1. 大小寫與末尾斜杠
/Article/123 與 /article/123、/page 與 /page/ 在很多服務器上都能返回 200,但對搜尋引擎来说就是两個地址。這是最容易忽略、也最容易修的一類。
2. 參數顺序與無用參數
?a=1&b=2 和 ?b=2&a=1 指向同一结果,却可能生成两個可抓取地址。跟踪參數、session id、排序預設值同理:用戶看到的頁面没變,URL 却變了。
3. 编碼與特殊字符寫法
同一個中文字符可能存在百分号编碼與原始字符两種寫法,空格寫成 %20 還是 + 也可能被当成不同地址。带中文、带空格的 URL 建议统一成一種编碼形式。
4. 預設值與冗余路径
/list?page=1 與 /list、/index.html 與 / 這類預設寫法,如果都能訪問且都返回 200,就凭空多出了一份重复入口。
處理顺序:先归一化,再谈索引收敛
- 确定唯一規范寫法。每個頁面只保留一個标准 URL,其余寫法全部指向它,這是後面所有操作的前提。
- 在服務器或框架层做跳轉。把大小寫、末尾斜杠、預設參數等變形用 301 统一到規范地址,通常比只在頁面里加标簽更彻底。
- 统一站内連結寫法。導航、面包屑、列表頁、分享按钮产出的連結都用規范地址,避免自己不断制造新的變形入口。
- 让 canonical 與跳轉保持一致。如果 canonical 指向 A、跳轉指向 B,等于给出两個信号,收敛過程會變慢。
- Sitemap 只放規范 URL。顺手清理掉带跟踪參數、排序參數的地址。
- 谨慎使用 robots.txt 屏蔽。被屏蔽的 URL 無法被抓取,頁面上的 canonical 也就讀不到,反而更难收敛。
收敛之前,先看這些 URL 有没有價值
不是所有變形 URL 都值得立刻處理,可以按下面的顺序排優先級:
- 有外鏈或自然流量的變形 URL:優先做跳轉,把信号集中到規范地址上。
- 僅由站内參數生成的變形 URL:先切断生成入口,再等索引自然收敛。
- 已被收錄但無流量、也無外鏈的:從内鏈和 Sitemap 中移除即可,不必額外操作。
重复 URL 的治理通常是先止损、再收敛:先把站点自己产生變形的入口關掉,再等搜尋引擎重新抓取和更新索引。這個過程需要時間,不會因為改了一處配置就立刻见效。
日常可以固定检查的几項
- 站内連結是否全部使用規范 URL,有没有混用带斜杠和不带斜杠的寫法。
- 參數頁、篩選頁是否被站内連結大量指向。
- canonical、跳轉、Sitemap 三處指向是否一致。
- 站長工具中的重复頁面、备用頁面报告是否有新增趋势。
把這几項做成定期检查,比每次發現重复再回头排查要省力得多。