網站收錄

同一頁面出現多個 URL 變体:大小寫、协议與尾斜杠的收錄归一化顺序

同一份内容能通過大小寫、协议、www、尾斜杠等多個 URL 訪問时,抓取和索引里就容易留下多條记錄。本文给出一套可执行的核對顺序:先定首選版本,再列變体清單,然後做重定向、统一站内出口、复核 sitemap,最後观察索引合並,並列出几種常见的處理誤区。

網站收錄

同一頁面出現多個 URL 變体:大小寫、协议與尾斜杠的收錄归一化顺序

核對收錄时经常會遇到一種情况:明明只有一個頁面,site 查询里却出現好几條结果,点開内容几乎一样,只是地址略有差別。多數时候這不是搜尋引擎收错了,而是同一份内容可以通過多個 URL 變体訪問,這些變体被抓取後各自留下了索引记錄。

變体 URL 通常從哪来

  • 大小寫混用:/About 和 /about 在某些服務器上指向同一頁面,在另一些服務器上則被当作两個地址。
  • 协议不统一:http 與 https 同时可訪問,或者 https 頁面里仍残留 http 的内鏈。
  • 主机名不统一:带 www 與不带 www 都能正常打開。
  • 尾斜杠差异:/list 與 /list/ 都返回 200。
  • 預設文件名:/news 與 /news/index.html 同时可訪問。
  • 參數顺序或冗余參數:/p?id=1&from=list 與 /p?from=list&id=1 被视為不同地址。

這些地址在服務器层面都是活的,蜘蛛抓到的每一個都可能被獨立评估。問题不在于产生過一次,而在于内鏈、外鏈、sitemap、分享連結各指向不同版本,時間一長就分散成了多條索引记錄。

先做一份變体清單,再谈處理

處理之前要先知道有哪些變体在流通。可以用站内連結抽取的方式把全站連結跑一遍,再加上服務器日誌里出現過的請求路径。清單至少记錄三列:變体地址、返回狀態碼、目前 canonical 指向。如果站点規模不大,用 site 查询配合几種寫法交叉看一遍也能大致摸清。清單的價值在于,它能把感觉上的重复變成具体是哪几個地址,後面每一步核對都要拿這份清單比對。

三種归一化手段,作用范围不同

301 重定向

最彻底的做法。把非首選版本在服務端重定向到首選版本,蜘蛛抓到时得到的是跳轉信号,通常會逐步把索引记錄合並到目标地址。注意重定向鏈不要超過一跳,A 到 B 再到 C 這種鏈條會稀释信号,也容易在核對时看不清最终落点。

canonical 声明

适合無法做重定向的场景,比如參數頁、打印頁、排序頁。canonical 寫在頁面头部,声明首選地址。需要提醒的是,它属于建议性信号,搜尋引擎可以采纳也可以忽略。

把 canonical 指向一個 404 頁面、被 robots.txt 屏蔽的地址,或者几個變体互相指来指去,都會让這條信号失去意义。核對时優先確認 canonical 是否自指或指向正确目标。

從源头统一出口

内鏈、sitemap、RSS、分享按钮、结构化資料里的 URL,都统一成首選版本。這一條最容易被忽略,也最影响長期效果:只要站内還在不断产生舊版本的連結,新的變体就會持續被發現。

推荐的核對顺序

  1. 確認首選版本:定下协议、主机名、路径寫法,全站以它為准。
  2. 列出變体清單:從内鏈、日誌、外鏈三個来源匯總。
  3. 逐個驗證狀態碼:非首選版本返回 301,不要返回 200。
  4. 检查 canonical:每個變体頁面的 canonical 是否指向首選版本,且目标可正常訪問。
  5. 排查站内出口:模板、導航、文章正文里的連結是否還残留舊版本。
  6. 复核 sitemap:只提交首選版本,避免把變体也一並寫進去。
  7. 观察索引變化:這一步最需要耐心,索引记錄的合並通常以周為單位,不必每天反复查询。

几個常见誤区

  • 只改 canonical,不改内鏈,站内仍然在制造新變体。
  • 301 指向的地址本身也能通過舊變体訪問,等于绕了一圈又回到原点。
  • http 與 https 同时保留可訪問狀態,只在頁面上寫一句請使用 https。
  • 把參數頁和静態頁混在一起處理,實际這两類頁面的取舍逻辑並不相同。

小结

URL 變体造成的重复收錄,本质是出口不统一的問题。與其在收錄结果出来後反复清理,不如先把站内的連結出口收敛到唯一版本,再用重定向和 canonical 處理歷史遗留。顺序上建议是:先定首選、再列清單、然後重定向、统一出口、最後看索引,每一步都基于上一步的清單,减少凭印象判断。