同一個頁面,如果站内同时存在 /News/2024/seo-guide/、/news/2024/seo-guide 和 /news/2024/seo-guide/index.html 三種寫法,對訪客来说没什么差別,對搜尋引擎、統計工具和日誌分析来说却是三條记錄。URL 規范化要處理的就是這件事:让同一份内容只對應一個主地址,其余寫法统一跳轉過去。
不一致通常從哪儿来
- 大小寫混用:栏目編輯手動輸入連結,一會儿 News 一會儿 news。Windows 服務器不区分大小寫,Linux 服務器区分,換服務器後問题才集中暴露。
- 尾斜杠忽有忽無:目錄形式带斜杠,文件形式不带,模板和手寫連結各寫各的。
- 預設文档:/about/ 和 /about/index.html 都能正常打開。
- 协议與主机名:http 與 https、带 www 與不带 www 長期並存。
- 參數顺序:?a=1&b=2 與 ?b=2&a=1 返回同样结果。
- 跟踪參數:utm_source、from、spm 之類被複製進站内連結和分享按钮。
- 中文與特殊字符:编碼形式不同,或空格、加号的處理不一致。
- 分頁與排序:?page=1 與不带參數、?sort=default 與預設排序各算一個地址。
自查:從站内連結和訪問日誌两头看
- 從首頁往下点三到四层,把浏览器地址栏里的 URL 记下来,看同一栏目是否存在多種寫法。
- 用爬虫或站内連結检查工具跑一遍,按路径聚合,找出同时存在带斜杠與不带斜杠、大寫與小寫的路径。
- 看服務器訪問日誌,統計同一路径不同寫法的請求量,請求多的說明入口多。
- 看統計後台,如果同一内容有几個入口地址、資料被拆散,基本可以確認存在重复。
- 检查站点地图與 RSS,確認里面用的寫法與實际主地址一致。
统一方向怎么定
- 先定协议和主机名:确定 https 與是否带 www,其余形式 301 到主形式。
- 路径尽量用小寫字母加连字符,新内容按這個規則生成,老地址保持原样並做跳轉。
- 目錄统一带尾斜杠,具体頁面文件不带,或者反過来,全站只選一種。
- 預設文档對外只暴露目錄地址,index.html 的請求 301 到目錄。
- 站内連結、站点地图、canonical、面包屑、分享按钮统一使用主地址。
- 跟踪參數只用于站外投放,站内跳轉前清理掉。
處理时的几個注意点
跳轉優先用 301,一次到位,別串成多級鏈條。canonical 是辅助信号,替代不了跳轉;如果站内連結仍指向舊寫法,它的作用會被明顯削弱。參數顺序不同可以按規則统一,但带真實篩選意义的參數不必强行合並,否則用戶点回来會看到不一样的结果。老地址不要直接 404,保留跳轉至少一個季度,观察日誌里舊寫法的請求是否逐步下降。
URL 規范化的目标不是消灭所有變体,而是让站内主動引用和對外暴露的地址保持一致,剩下的變体用跳轉兜住。
建议每季度抽一次,重点看新上线的栏目和刚改過模板的頁面,這两處最容易引入新的寫法。