同一個站点同时存在 http 和 https、带 www 和不带 www 的可訪問版本,是很多收錄問题的起点。看起来只是多了一個入口,實际结果是蜘蛛可能把同一批頁面当成两套 URL 分別抓取和记錄,索引量虚高、權重分散,用戶搜尋时命中的還可能是舊版本。
先確認站点實际有几個可訪問版本
不要凭印象判断,逐個請求比對比看日誌更直接。用無痕窗口或命令行訪問下面几種组合,记錄狀態碼和最终落地的 URL:
- http://example.com
- http://www.example.com
- https://example.com
- https://www.example.com
重点看两件事:一是每種寫法返回的是 200 還是 301、302;二是如果返回 301,鏈條有几跳,最终落到哪個版本。有些站点首頁做了跳轉,但内頁在舊版本下仍然直接返回 200,這種情况最容易被忽略。
确定一個主版本,其余全部跳轉
主版本定下来之後(通常是 https 加 www 或 https 不加 www,取决于歷史积累和現有外鏈情况),其余版本應该 301 到它。几個實操点:
- 用 301,不用 302 或 JS 跳轉。302 是临时语义,合並信号弱。
- 一次跳到最终地址,避免 https 跳 http 再跳 https 這類多跳鏈條。
- 跳轉要覆盖全站,不只是首頁。可以在服務器层或 CDN 层统一處理。
- 内鏈、Sitemap、canonical、结构化資料里的 URL,都统一寫成主版本。
canonical 和跳轉的關系怎么理解
跳轉是硬性信号,canonical 是提示性信号,两者不冲突,理想狀態是一致:舊版本 301 到主版本,主版本頁面上的 canonical 指向自己。
要避免的是 A 頁 canonical 到 B、B 頁又 canonical 回 A 的閉环,這種情况下搜尋引擎只能自己判断,收敛结果不可控。如果短期内没法做全站跳轉,退一步至少要全站 canonical 指向主版本,但優先級要清楚:能用跳轉解决的,不要只靠 canonical。
舊版本已经被收錄了,怎么處理
跳轉生效後,舊版本 URL 一般不需要單獨提交刪除,等蜘蛛重新抓取时會看到 301 並逐步更新索引。這個過程快慢和站点規模、抓取频率有關,几周到几個月都算常见。
需要注意几点:
- 跳轉長期保留,不要上线几個月後就撤掉。
- 站点地图只放主版本的 URL,舊版本不要出現在里面。
- 不要给舊版本加 noindex,它和跳轉同时出現时,可能让合並信号變得更模糊。
- 在搜尋控制台里留意“重复網頁,搜尋引擎選擇的規范網頁與用戶指定的不同”這類提示,它通常說明站内還有信号不一致的地方。
几個常见坑
- 只跳首頁。内頁在舊版本下依然返回 200,等于给蜘蛛留了一整套镜像。
- 混合内容。https 頁面里引用了 http 的资源,可能让蜘蛛在两種协议之間来回切換。
- CDN 缓存了舊規則。改完配置後记得刷新缓存並复测。
- 證书不覆盖带 www 的域名。這種情况下 https 版本會报错,检查时容易被誤判成這個版本不存在。
收尾检查
改完之後按這個顺序复测一遍:四個版本组合逐個請求,確認除主版本外都是單跳 301;随机抽几個内頁,確認舊版本同样跳轉;检查頁面源碼里的 canonical 和 Sitemap 是否统一;最後观察一段時間的索引量與落地 URL 變化,而不是当天就下结论。