站点运营

站点运营:URL 規范化自查,別让同一頁面裂成多個地址

同一份内容常常同时存在带 www、不带 www、http、https、尾斜杠和大小寫等多個地址,重复地址會分散抓取预算。這篇文章给出一套 URL 規范化自查流程:從确定唯一規范形式,到用日誌和狀態碼排查地址變体,再處理 canonical 與重定向冲突的常见坑,适合站点运营定期执行。

站点运营

站点运营:URL 規范化自查,別让同一頁面裂成多個地址

同一個頁面,在服務器上往往能對應好几個地址:带 www 和不带 www、http 和 https、结尾有没有斜杠、字母大小寫不同、後面還挂着跟踪參數。對訪客来说打開的内容没有区別,但在搜尋蜘蛛眼里,每一個地址都是一條獨立 URL。抓取预算被這些重复地址分掉,頁面之間积累的信号也被摊薄。下面是适合站点运营定期执行的 URL 規范化自查流程。

為什么同一頁面會裂成多個地址

大多數重复地址不是有人故意造出来的,而是服務器配置、CMS 預設行為和日常調用习惯叠加的结果。常见的来源有:

  • 服務器同时监听 www 與非 www,两個域名都返回 200;
  • HTTP 没有强制跳轉到 HTTPS,两套协议各有一套地址;
  • 首頁既可以用根目錄訪問,也可以用 /index.html 訪問;
  • 栏目頁 /list 與 /list/ 都能打開,且都返回正常狀態;
  • URL 大小寫混用,而服務器對大小寫敏感;
  • 分頁、排序、篩選參數被随手拼接,产生大量近似地址;
  • 對外分享时自動附带 utm 等跟踪參數,被外部站点引用後固化下来。

先定唯一規范形式

動手改之前,先把規則寫清楚,避免邊改邊乱:

  • 协议固定為 https;
  • 主机名固定為带 www 或不带 www 的其中一種;
  • 目錄類地址固定结尾带斜杠或不带斜杠的其中一種;
  • 文件名统一小寫,避免大小寫變体;
  • 參數只保留业務必需的,跟踪參數不進入内鏈和站点地图。

這份規則最好落在文档里,而不是只存在于某個人的记忆里。改版、換人、上新栏目时都需要它作為對照。

自查動作清單

  1. 從服務器訪問日誌或站長工具里抽样,看看同一批内容是否被多個地址反复抓取。
  2. 用 curl -I 逐個請求各變体,正常對外服務的應该只有一個返回 200,其余應為 301 指向它。
  3. 查看頁面源碼里的 canonical,確認它指向自身規范地址,並且與重定向的最终目标保持一致。
  4. 抽查内鏈、導航、分頁、站点地图和分享按钮生成的地址,是否都已经是規范形式。
  5. 確認 CMS、框架的自動补斜杠規則與服務器重寫規則不冲突,避免出現来回跳轉。

几個容易踩的坑

canonical 和重定向互相打架

如果 /a 已经 301 到 /b,但 /a 頁面里的 canonical 仍然寫着 /a,蜘蛛會收到互相矛盾的信号。改動後要同步更新,而不是只改一半。

用前端脚本做跳轉

JS 跳轉對蜘蛛的指引不如服務端 301 明确,抓取预算仍然花在了舊地址上。能用服務端處理的,就放在服務端。

只處理首頁,不管内层頁

列表頁、标簽頁、分頁往往才是重复地址的重灾区。規范化要從首頁一路查到最深的栏目頁。

規范化的目标不是消灭所有地址變体,而是让每個變体都用最明确的方式告诉蜘蛛:真正的地址只有一個。

把它變成日常习惯

一次整理完不等于永久有效。新栏目上线、模板調整、CDN 或跳轉規則改動之後,重复地址都可能重新冒出来。建议把 URL 規范化寫進上线检查清單,季度性地抽样一轮日誌,观察是否有新的變体開始被大量抓取。發現問题就补 301 或修正 canonical,让站点的地址体系長期保持干净。