網站收錄

測試站和预發布域名被收錄了:先從入口堵起,再谈清索引

測試站和预發布域名被收錄,多半是入口没管住:泛解析、sitemap 混入非生产地址、robots 配置照抄生产、模板内鏈指向混乱。本文梳理常见的几個漏口,說明先分清抓取與已進索引的区別,再按訪問控制、noindex、移除請求的顺序處理,並给出一份上线前的自查清單。

網站收錄

測試站和预發布域名被收錄了:先從入口堵起,再谈清索引

先说结论:堵口子比清索引重要

測試站、预發布域名、舊版站点被搜尋引擎收錄,通常不是蜘蛛主動找麻烦,而是這些地址在某個环节被公開了:外鏈、内部連結、站点地图、提交工具,或者域名压根没做訪問限制。清理已有的索引记錄是慢活,把入口堵上才是根本。

常见的几個漏口

  • 域名可以公開訪問。用泛解析把 *.example.com 都指向同一台机器,test.example.com 自然能打開,也能被抓。
  • 頁面模板里带着指向生产站的内鏈,或者反過来。測試站頁面上有大量指向正式站的連結,容易被当成正常站点的一部分;反過来,正式站里混進測試地址,就等于自己把入口交了出去。
  • 站点地图或提交工具把測試地址一起交了出去。生成脚本没有区分环境,一次提交就把一批不该出現的 URL 送進了抓取队列。
  • robots.txt 各环境共用一份。生产站的 robots 通常允许抓取,測試站照抄一份,等于放行。
  • 只做了密碼保護,但漏了静態资源目錄。主站挡住了,图片、附件目錄還能直接訪問,蜘蛛顺着摸到路径。

先分清是抓取了,還是已经進索引

這两件事的處理方式不一样。用 site 查询或者搜尋引擎的 URL 检查工具看一遍:如果只是抓取记錄里有,說明還有時間窗口;如果已经出現在结果里,需要走移除流程。很多时候頁面被訪問過很多次,但一直没進索引,這種情况下先堵口子就够,不必急着提移除。

處理顺序

1. 訪問控制放第一位

给測試环境加密碼、加 IP 白名單,让服務器返回 401 或 403。這比 robots.txt 和 noindex 都彻底,因為它從源头上让頁面不可訪問。注意別用返回 200 的假登入頁,那對搜尋引擎来说就是一個正常頁面。

2. noindex 要用對地方

頁面要能被抓取到,noindex 才會生效。如果同时又用 robots.txt 拦住抓取,蜘蛛讀不到 noindex 标簽,已经收錄的记錄可能長期留在那里。两者同时上通常是最差组合,除非頁面内容本身已经删掉或者彻底關停。

3. robots.txt 只做兜底

robots.txt 阻止的是抓取,不是索引。它拦不住已经被收錄的頁面,也拦不住別人通過外鏈把地址传播出去。可以在抓取层面少浪費一些請求,但別指望它解决收錄問题。

4. 已经進索引的地址怎么退场

  • 能加 noindex 的,先让它能被抓到,再加标簽,等索引更新。
  • 頁面可以彻底關停的,直接返回 404 或 410,比留着返回 200 的空頁面干净。
  • 外鏈来源能联系的,尽量让對方删掉或改指向正式站。

上线流程上能做的预防

  • 關閉泛解析,測試域名單獨用一套不公開的解析。
  • 站点地图只在生产环境生成,生成脚本里寫死环境判断。
  • 模板中的 canonical、内鏈、站点地图地址都用带环境的變量,不要複製粘贴生产配置。
  • 把 robots.txt、noindex 响應头、訪問控制加入上线检查項,尤其是新搭的环境。

一份简單的自查清單

  1. 測試域名能否匿名訪問,返回的是什么狀態碼。
  2. site 查询里有没有出現測試环境或舊版地址。
  3. 站点地图里是否混入了非生产地址。
  4. 模板里的 canonical 和站内連結指向哪個域名。
  5. robots.txt 與 noindex 是否互相冲突。
先把入口關掉,再慢慢等索引里的舊记錄退场。顺序反了,往往會出現一邊清理一邊又被抓回来。