站点运营

站点运营:URL 規范化自查,別让同一篇内容散成多個地址

同一份内容出現多個可訪問地址,會让抓取和資料統計都變得零散。這篇文章從大小寫、末尾斜杠、查询參數、www 與协议等常见来源入手,给出一份 URL 規范化自查清單,並說明 canonical 與 301 各自适合用在哪里、處理顺序怎么排。

站点运营

站点运营:URL 規范化自查,別让同一篇内容散成多個地址

URL 規范化到底在解决什么問题

同一個頁面,如果從不同入口訪問會得到不同的地址,比如大小寫不同、末尾多了或少了一個斜杠、带上了一串跟踪參數,那么站内連結、外鏈、Sitemap 里出現的地址就可能是散開的。對搜尋引擎来说,這些地址可能被当成多個頁面分別處理,抓取资源分散,站点运营者在統計流量时也容易對不上帳。URL 規范化要做的,就是给每份内容定一個标准地址,其他變体通過 301 或 canonical 归拢過去。

常见的重复地址来源

大小寫與末尾斜杠

部分服務器對路径大小寫不敏感,/About 和 /about 都能打開;另一些則只認一種。末尾斜杠同理,/list 和 /list/ 是否等價,取决于服務器配置和框架路由。建议全站统一為小寫,並明确目錄型地址带斜杠、文件型地址不带斜杠,然後在服務器层面把例外情况 301 到标准形式。不要長期靠頁面里的 canonical 兜底,301 更干净。

查询參數

分頁、排序、篩選、打印頁、utm 跟踪碼、session id 都會生成新地址。先把它們列出来,逐項判断:哪些參數是内容本身需要的,比如分頁;哪些只是来源标记,比如 utm。後者可以统一 301,或者用 canonical 指向不带參數的版本。篩選類參數要格外小心,多條件组合會成倍膨胀地址數量,對抓取预算不友好。

协议與域名變体

http 與 https、带 www 與不带 www、舊域名、測試域名、CDN 回源域名,都可能能訪問同一份内容。選定一個主地址,其余在服務器或 CDN 层做整站 301。改版換域名时,這條尤其要逐條驗證,別留下能打開却没人管的舊入口。

自查清單

  • 全站連結與導航是否统一小寫,末尾斜杠風格是否一致;
  • http 是否整站跳轉到 https,且不形成多层跳轉;
  • 带 www 與不带 www 是否只保留一個入口;
  • 分頁地址是否稳定可抓取,而不是带一堆临时參數;
  • 跟踪參數是否在落地时就剥掉;
  • Sitemap 與内鏈里是否只出現标准地址;
  • canonical 是否自指向真實可訪問的 200 頁面;
  • 舊域名與測試域名的解析是否已经下线或 301。

canonical 的正确用法

canonical 是一個提示,不是强制指令,搜尋引擎有權忽略。因此它适合做兜底,不适合当主力。使用时注意几点:一是尽量自指向,即标准頁指向自己;二是目标必须是可訪問的 200 頁面,不能指向 404 或跳轉鏈上的地址;三是同一頁面不要輸出多個互相冲突的 canonical;四是不要為了凑資料把不相關的頁面互相指向。分頁场景常见的错誤是把所有分頁都指向第一頁,這會让後續頁面的内容难以被單獨發現,建议按實际策略處理,或者让每頁自指向。

比較稳妥的處理顺序

  1. 先用服務器日誌和站点查询,把能打開同一内容的地址尽量列全;
  2. 為每類内容選定一個标准地址;
  3. 在服務器或 CDN 层做 301,把變体收敛到标准地址;
  4. 统一站内連結、導航、Sitemap 中的地址寫法;
  5. 用 canonical 處理無法 301 的少數情况;
  6. 观察一段時間,看日誌中變体地址的請求是否下降。

驗證與观察

改完不是立刻就能看到變化,通常需要几周時間让搜尋引擎重新抓取和處理。可以定期看服務器日誌里變体地址的訪問量、看抓取統計中标准地址的占比是否上升,以及检查是否又冒出了新的變体。同时留意別在收敛過程中制造出新的重定向鏈,跳轉层數越多,抓取成本越高。

URL 規范化不是一次性動作。新栏目上线、改版、做投放活動时,都要顺手检查一遍地址是否统一,否則舊問题會以新的形式回来。