同一個頁面,訪客用不同寫法都能打開:带 www 和不带 www、结尾带斜杠和不带斜杠、路径大小寫不同、再加上預設文档 index.html。這些寫法在服務器上往往都能返回 200。對用戶来说没差別,但對抓取和統計来说,同一份内容就有了好几個地址。一旦站内連結、外鏈、站点地图各用一種寫法,点击資料和頁面權重就會分散到不同 URL 上。
先弄清分歧出在哪
寫法不一致通常不是故意的,而是不同时期、不同人、不同工具留下的痕迹。常见的几類:
- 协议:http 與 https 並存,舊連結仍然可以訪問。
- 主机名:example.com 與 www.example.com 同时能打開。
- 结尾斜杠:/about 與 /about/ 返回同一内容。
- 大小寫:/News/2024 與 /news/2024 都能訪問。
- 預設文档:/news/ 與 /news/index.html 内容相同。
- 端口與參數:带端口訪問,或連結里挂着無關的跟踪參數。
三類最常见的問题
www 與非 www
两個主机名都解析、都能返回 200,是最容易被忽略的一種情况。選一個作為主域名,另一個做 301 跳轉。注意跳轉要一步到位,不要先跳 http 再跳 https 再跳 www,否則每次訪問都要多走几跳。
结尾斜杠
目錄型地址带斜杠更自然,文件型地址不带斜杠更自然。關键是站内連結统一,別一會儿 /tag/seo 一會儿 /tag/seo/。如果两種寫法都返回 200,先確認服務器是在做隐式跳轉,還是两個地址真的都能獨立打開。
大小寫與預設文档
Linux 服務器通常区分大小寫,/News 和 /news 可能是两個真實目錄;Windows 服務器不区分。更換主机或迁移环境时,這類差异最容易暴露出来。預設文档則常见于首頁和栏目頁,建议對外统一使用不带 index.html 的短地址。
自查步骤
- 列出站点所有入口寫法:协议、主机名、结尾斜杠、大小寫、預設文档。
- 用抓取工具或脚本,分別請求同一頁面的几種寫法,记錄狀態碼與最终跳轉地址。
- 確認跳轉是否為 301 永久跳轉,跳轉层級是否超過一跳。
- 核對站内導航、内鏈、站点地图、RSS、分享按钮里的地址寫法是否一致。
- 在統計工具里查看是否存在同一頁面被拆成多條记錄的情况。
處理原則
- 選定唯一的主域名與协议,其余寫法一律 301。
- 站内連結使用统一規范,避免手動拼接出不一致的地址。
- canonical、og:url、站点地图中的地址保持同一種寫法。
- 改動後保留舊寫法的跳轉,並且保留較長一段時間。
- 把 URL 規范寫進模板和發布流程,而不是靠事後修补。
URL 寫法统一不是一次性的清理動作,而是模板和流程里的預設設定。只要還有人手動粘贴地址,就值得定期复检一遍。
長期维護
每次改版、換主机、接入 CDN 或上线多語言版本,都可能引入新的寫法分歧。建议把 URL 規范寫進開發约定和内容發布清單,新增栏目或頁面时先確認地址寫法,再考虑其他優化。對搜尋引擎来说,一個頁面只有一個稳定地址,後面的抓取、索引和統計才有可靠的基准。