網站收錄

预發布域名、CDN 域名被收錄:索引里多出来的那套站点怎么收敛

同一套内容出現在预發布域名、源站直连域名或歷史域名上,會让索引里多出一整套重复頁面。本文說明怎么確認副本来源、先决定保留哪個版本,以及從切断訪問、noindex、301 到统一入口的處理顺序與自查清單。

網站收錄

预發布域名、CDN 域名被收錄:索引里多出来的那套站点怎么收敛

排查收錄問题时,多數人關注的是“少了什么”,但另一種情况同样常见:索引里的頁面數量比站点實际頁面還多。点進去看,内容一模一样,域名却不對,比如 staging.example.com、直接绑定的源站域名、CDN 提供的临时域名,甚至是几年前換掉的老域名。這不是搜尋引擎抓错了,而是這些地址本来就能被公開訪問、能返回 200、内容與主站一致。爬虫没有义務替站長判断哪個才是正主。

先確認多出来的是哪一套

動手處理之前,先把“多出来的那套”定位清楚,否則很容易改错地方。用站点查询、外鏈工具和服務器訪問日誌交叉核對,通常能看出重复来自下面几類差异:

  • 域名差异:预發布域名、源站直连域名、CDN 預設域名、歷史域名。
  • 协议差异:http 與 https 同时可訪問。
  • 主机名差异:带 www 與不带 www 各自返回 200。
  • 路径差异:測試目錄、舊版目錄、多語言目錄的镜像。

常见来源與處理成本

来源不同,處理难度差別很大,可以按下面的顺序逐一核對:

  • 预發布或測試环境:最常被忽略。為了给同事看效果,把 staging 放到了公網,robots.txt 也没改。
  • 源站直连域名:绕過 CDN 直接暴露,往往没有任何跳轉。
  • 歷史域名:換域名时只在主站做了 301,老域名仍然解析並返回内容。
  • 协议與 www 變体:服務端没做统一跳轉,两個版本都能正常打開。

先决定留下哪一個

收敛的前提是有一個明确的“正主”。判断依據通常是:外鏈最多、品牌一致、能長期维護、配置最容易统一的那一個。其余全部按副本處理,而不是“先都留着,看哪個表現好”——两套站点各自积累信号,最後往往是谁都不突出。

處理顺序:從切断訪問開始

  1. 能關就關。预發布环境加一层 HTTP 認證、限制来源 IP,或直接不對公網開放。返回 401 比任何标簽都干净,因為頁面根本不會被讀到。
  2. 必须可訪問时用 noindex。如果评审需要公開訪問,就在副本頁面加 noindex,並且不要把它放進 robots.txt 的 Disallow——被禁止抓取的頁面,爬虫讀不到 noindex,反而可能因為外鏈被索引成一個没有描述的條目。
  3. 長期方案是 301。確認副本不再需要獨立存在後,整站 301 到主域名,而不是逐頁慢慢改。
  4. canonical 只当补充。它是提示而非指令,也不能替代 301。它能帮助合並信号,但阻止不了副本被繼續抓取。
  5. 统一入口。站点地图、站内連結、對外投放的連結,全部只寫主域名,避免自己又制造新入口。
  6. 检查配置层。CDN、负载均衡、容器預設域名、對象存储的静態托管地址,都可能生成一個可訪問的副本,而且不在代碼仓库里,很容易漏。

noindex 與 robots.txt 的作用点不同

robots.txt 管的是“能不能抓”,noindex 管的是“抓到之後要不要進索引”。想让它從索引里消失,就需要让爬虫能抓到那個带 noindex 的頁面。反過来,如果只是不想浪費抓取预算,比如參數頁、無限翻頁,用 robots.txt 更合适。判断标准很简單:你希望它從索引里消失,還是只希望它少被抓。

改完之後為什么還能看到

索引更新有延迟。已经進入索引的 URL,需要爬虫重新訪問、讀到 301 或 noindex,再经過一轮處理才會掉出去。這段時間里它繼續出現在结果中属于正常現象,不需要反复改配置。更值得做的是看服務器日誌:副本域名上是否還有抓取請求,返回的是 301、401 還是 200。如果一直是 200,說明某處配置仍在放行。

自查清單

  • 副本域名是否還有公網解析,指向哪台服務器。
  • 该服務器上是否還有獨立的站点配置,跳轉規則是否覆盖全站。
  • 副本是否設定了 noindex,並且没有被 robots.txt 挡住。
  • 站点地图、内鏈、外鏈里是否残留副本地址。
  • CDN 與對象存储的預設域名是否可公開訪問。
處理這類問题的核心,是让“哪個是正主”變成服務端配置上的事實,而不是指望搜尋引擎通過内容比對猜出来。配置改對之後,剩下的交给重抓周期即可,不必因為几天内没變化就推倒重来。