一個站点跑上几年之後,经常會變成這样:http://example.com、https://example.com、http://www.example.com、https://www.example.com 全都能打開首頁,而且内容一模一样。從訪客角度看没什么差別,反正都能用;但從抓取和运营角度看,等于把一個站拆成了好几個入口,外鏈、統計、缓存各记一份。
先弄清楚分裂是怎么形成的
常见的情况不是有人故意配置,而是歷史遗留叠加:早期上线用的是 http,後来迁到 https 但没做强制跳轉;中途換過域名前缀,改了一半;CDN 或负载均衡那层又配了另一套規則。结果是每個版本都能正常返回 200,谁也看不出問题。
自查:把所有能打開首頁的地址列出来
這一步不要凭记忆,直接手輸地址逐個驗證,建议列成清單:
- http 與 https 各试一次,注意浏览器是否自動补全、是否被插件改寫。
- 带 www 與不带 www 各试一次,包括二級域名栏目頁。
- 试一下带 index.html 或 index.php 的地址,看是否與目錄地址同时可訪問。
- 试一下末尾带斜杠和不带斜杠的栏目地址。
- 如果你配置過測試域名、舊域名,也一並列出,確認它們目前的狀態碼。
每一條都记錄三件事:返回的狀態碼、最终落到的地址、頁面里的 canonical 指向哪里。三者對不上,就是需要處理的地方。
确定唯一主版本,其余全部跳過去
主版本選哪個没有绝對答案,通常跟着品牌习惯走:习惯带 www 就统一带 www,习惯裸域就统一裸域,协议一律用 https。關键是只留一個,其余版本用 301 指過去。
跳轉尽量一步到位
要避免的是這種鏈條:http://www 先跳到 https://www,再跳到 https://裸域。每多一跳就多一次等待,抓取端也更費劲。配置时直接让所有非主版本一次性跳到最终地址,不要经過中間站。
站内連結和资源引用要同步改
服務器跳轉只解决了入口問题,頁面内部的引用同样會触發跳轉。检查導航菜單、面包屑、正文内鏈、图片和脚本地址,把寫死的舊版本域名替換成主版本。這一步容易被忽略,尤其是模板里残留的绝對地址。
這些位置也要一起對齐
- 頁面 canonical 标簽,確認輸出的是主版本地址。
- 站点地图里收錄的地址,逐條核對前缀。
- 分享卡片里的 og:url,避免轉發出去指向另一個版本。
- 结构化資料中的 url 和 @id 字段。
- 統計後台、站長平台的站点属性配置,几套属性混用會让报表口径不一致。
- CDN 的回源域名和缓存規則,確認缓存键不會因為协议不同而各存一份。
調整完成後不要马上看结论。跳轉生效、缓存過期、抓取端重新計算都需要時間,观察两到四周再评估資料變化會更稳妥。
小结
域名與协议统一属于那種“改起来不复杂、但一直没人管”的基础工作。它不會立刻带来流量,却能让後續所有跟抓取、統計、外鏈相關的判断建立在同一份資料上。花半小时把入口地址列清楚,往往比反复分析报表更有用。