同一個頁面,在搜尋引擎那里可能不止一個地址。带 www 和不带 www 各算一個,http 和 https 各算一個,结尾有没有斜杠各算一個,大小寫不同也可能各算一個。這些地址如果都能正常打開,搜尋引擎就會分別抓取、分別判断。结果往往是:收錄量看着涨了,但每個地址分到的信号都很薄。
URL 變体一般從哪来
多數站点的重复 URL 不是刻意造出来的,而是几個小习惯叠加出来的:
- 协议與主机名:http 和 https 同时可訪問;www.example.com 和 example.com 都能打開。
- 结尾斜杠:/about 和 /about/ 返回同一份内容。
- 大小寫:/Product/1 和 /product/1 在区分大小寫的服務器上可能是两個路径。
- 預設文件名:/index.html、/index.php 和根目錄指向同一頁。
- 跟踪參數:?utm_source=…、?ref=…、?fbclid=… 會生成大量带參數地址,内容其實一样。
它和收錄是什么關系
搜尋引擎的索引單位是 URL,而不是"頁面"。同一份内容對應多個 URL 时,常见两種结果:
- 所有版本都被抓取,但只有其中一個被编入索引,其余顯示為重复網頁、未编入索引一類的狀態;
- 几個版本轮流出現在索引里,索引报告看起来忽多忽少、不太稳定。
不论哪種,指向這個頁面的外鏈和内鏈都會被拆到不同地址上,頁面本身积累的信号變弱。抓取机會也會被分掉一部分——同样的内容被反复抓,蜘蛛停留在其他頁面上的時間就少了。
先确定唯一的規范地址
動手之前要先定一個"正版":
- 协议一般選 https,現在證书成本很低,没有必要两個都留。
- 主机名看歷史:已经积累外鏈的那一個尽量保留,證书和备案也要能覆盖。
- 结尾斜杠、大小寫、預設文件名各選一種寫法,全站统一。
這個决定做過之後不要反复改。协议、主机名来回切換,等于把刚建立的信号又打散一次。
统一的具体做法
- 服務器层做 301:把非規范形態永久跳轉到規范地址。www、协议、預設文件名适合用 301;结尾斜杠和大小寫要谨慎,規則寫得太宽,會把本该存在的不同頁面也一起跳走。
- 站内連結自己先统一:導航、正文内鏈、面包屑、頁脚、sitemap、canonical、og:url,全都寫成規范地址。只做服務器跳轉、内部連結還指向舊形態,相当于每次点击都多绕一跳。
- 跟踪參數單獨處理:不影响内容的參數,可以在頁面上用 canonical 指向干净地址,也可以配置參數识別規則。不建议一上来就在 robots.txt 里屏蔽,屏蔽之後连 canonical 都讀不到。
- 副本归位:打印版、移動版、AMP 之類的副本,用 canonical 指向主版本,而不是让它們各自參與竞争。
怎么確認有没有漏網的
- 用 site: 查询看索引里出現的地址形態,是否只剩一種前缀。
- 翻一段時間的服務器日誌,統計訪問到同一内容的 URL 有多少種寫法。
- 抽查首頁、栏目頁、内容頁各几條,看跳轉鏈是否一次到位,有没有 A→B→A 的循环。
- 改完之後观察几周,重复與未编入索引的狀態會慢慢减少,但不會一夜之間清空。
几個容易踩的坑
- 用 canonical 代替 301。canonical 只是提示,不是强制,用戶和蜘蛛走的仍是舊地址。
- 跳轉規則寫得太激進,把參數頁、子目錄頁一起跳到首頁,反而制造出软 404。
- 只處理了首頁,栏目頁和内容頁仍是混合形態。
- 改完就等着收錄數字變化。URL 统一解决的是"自己给自己制造的重复",能不能被收錄,還要看内容本身有没有價值。
URL 统一不會直接带来收錄,但它能让你之後看到的收錄資料更接近真實情况——否則你连"到底收錄了多少頁面"都判断不准。