同一個頁面,因為大小寫、结尾斜杠、參數顺序不同,可能被系統当成好几個地址。對訪客来说都能打開,對搜尋引擎来说却要花時間分辨哪個才是主地址,抓取精力也被分散。這份清單用来把 URL 的寫法统一起来。
一、先把頁面地址收集起来
從站点地图、服務器訪問日誌、站内連結里各取一份 URL 列表,去重後合並對比。看的是同一批頁面在不同来源里的寫法差异,不必一次覆盖全站,先把栏目頁和主要的内容頁理清。
- 訪問日誌里出現频次高、寫法却不一样的地址;
- 站点地图里带大寫字母、中文或空格的地址;
- 内鏈里带參數、带 # 或多次跳轉的連結。
二、逐項確認寫法
大小寫
服務器区分大小寫时,/About 和 /about 是两個頁面。惯例是全部小寫。發現大寫版本仍返回 200,就要决定保留哪一個,其余用 301 收敛過去。
结尾斜杠
目錄形式 /news/ 與文件形式 /news 在部分服務器上结果不同,也可能多出一次跳轉。選定一種作為标准,全站内鏈按标准寫。
參數
追踪參數、排序參數、會话 ID 會让同一頁产生大量變体。先確認哪些參數會影响頁面内容,哪些只是记錄来源。不影响内容的參數,尽量不要出現在站内連結里。
中文與空格
URL 里出現中文、空格、括号时會被编碼成 %XX 形式,不同系統编碼结果可能不同。建议直接用简短英文或拼音,减少编碼差异带来的重复。
扩展名
.html、.php、無扩展名混用,會让地址看起来不像同一套規則。新栏目定一種即可,舊地址保持可訪問,不必强行全站改名。
三、把差异收敛掉
- 确定标准寫法,寫進編輯規范,新上线頁面直接照做;
- 變体地址统一 301 到标准地址,确保只跳一次;
- 站内連結、站点地图、分享按钮里的地址改成标准寫法,避免繼續产生變体;
- 頁面的 canonical 指向标准地址,與 301 的目标保持一致。
四、复查时注意別合並過头
改完後抽查若干地址,確認跳轉一步到位、返回碼正确、目标頁面能正常訪問。同时也要注意,不是所有相似地址都该合並:带獨立内容的參數頁、不同語言版本、分頁地址,都應保留自己的 URL,只在它們确實指向同一份内容时才收敛。
URL 規范不是一次大掃除,而是让新頁面不再制造新的變体。規則定得越简單,後面维護的成本越低。
最後,把這套寫法交给负责發文章的人。多數重复地址不是技術問题,而是寫連結时随手複製粘贴造成的。