網站收錄

URL 變体造成的重复收錄:從大小寫到預設文档逐項排查

同一份内容常常能被多個地址訪問:http 與 https、带 www 與不带、路径大小寫、结尾斜杠、預設文档,都會生成不同的 URL。本文說明如何判断這些變体是否真的都被收錄,以及按统一入口、统一站内連結、补充 canonical、清理 sitemap 的顺序逐步收敛,减少信号分散。

網站收錄

URL 變体造成的重复收錄:從大小寫到預設文档逐項排查

同一個頁面多個 URL,多半是配置和連結习惯造成的

服務器和 Web 框架通常對地址很宽容。同一份内容,用不同寫法訪問都能正常返回:协议可以是 http 或 https,主机名可以带 www 或不带,路径可以用大寫或小寫,结尾可以带斜杠或不带,目錄下還能用 index.html 直接打開。這些寫法在浏览器里看起来都對,但對搜尋引擎来说,它們是被记錄成几個不同的地址。

另一部分来自連結来源不统一。站点早期模板里寫死了一種寫法,改版後的新模板又用了另一種;外鏈、舊邮件、线下物料各自複製粘贴;用戶分享时随手截断或补上斜杠。時間久了,同一頁面就被多個地址指向。

四類最常见的 URL 變体

协议與主机名

http 與 https、带 www 與不带 www,是最容易同时可訪問的组合。如果服務器没有把其中一個 301 到另一個,四個版本可能都能打開,也都可能被單獨抓取。

路径大小寫

Linux 服務器上的路径通常区分大小寫,/About 和 /about 可能是两個不同资源;而 Windows 或部分框架不区分,訪問都會打開同一份内容。這一項要按實际服務器行為確認,不要凭印象判断。

结尾斜杠與預設文档

/news 與 /news/、/news/index.html 在很多配置下指向同一份内容。目錄頁尤其常见,因為預設文档机制本身就會让多個地址對應同一個文件。

追踪與排序參數

?utm_source=、?from=、?sort= 這類參數,只要服務器照常返回頁面,就會不断生成新的地址。參數部分建议單獨處理,這里只需確認它們是否已经通過 canonical 归並到主地址。

先判断是不是真的重复收錄

不要只凭地址數量多就下结论。逐個變体查询索引狀態,確認它們是否都進入了索引;再對比有没有各自的点击資料和外部連結。有些變体只是能被訪問,但從未被抓取,處理優先級就低得多。

  • 都進入索引,且内容完全一致:属于需要收敛的重复。
  • 只有一個進入索引,其他地址没有:優先做 301,把信号集中到主地址。
  • 變体各自有外鏈和流量:先评估迁移成本,再决定是否合並。

處理顺序:先统一入口,再收敛信号

  1. 定一個主地址。确定协议、主机名、是否带斜杠的寫法,寫成規范,並让服務器层面對其他寫法做 301。
  2. 检查重定向鏈。http 到 https、非 www 到 www 最好一次跳到位,避免 301 套 301,跳轉鏈過長會削弱效果。
  3. 统一站内連結。導航、面包屑、分頁、sitemap、RSS 里的地址都用同一種寫法,使用相對連結时注意基准路径。
  4. 用 canonical 补充說明。301 是較强的信号,canonical 适合處理那些不能或不便重定向的變体,两者不要指向不同地址。
  5. 清理 sitemap。只保留主地址,不要把變体一起提交,否則相当于主動告诉搜尋引擎這些地址都值得抓。

几個容易忽略的细节

  • 大小寫變体只靠 canonical 有时不够,能在服務器层面 301 會更干净。
  • 預設文档地址(如 /index.html)如果被外部大量引用,重定向後要观察原連結是否還能正常跳轉。
  • 改動主机名或协议後,舊地址的 301 不要急着撤,保留較長時間更稳妥。
  • 移動端與桌面端如果是两套地址,要確認是否属于有意分离,別当成變体誤合並。
規范化的目标是让搜尋引擎只認一個地址,而不是把所有地址都删掉。地址仍然可以訪問,只是對外统一指向同一個位置。

把它当成定期检查項

模板改版、域名迁移、CDN 調整之後,URL 變体問题容易重新出現。可以在每次改版後抽查一批典型頁面:用几種常见寫法分別訪問,看是否正确跳轉,再看索引狀態是否只保留主地址。這样比等收錄資料乱了再回头排查省事得多。