网站收录

测试站和预发布域名被收录了:先从入口堵起,再谈清索引

测试站和预发布域名被收录,多半是入口没管住:泛解析、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 是否互相冲突。
先把入口关掉,再慢慢等索引里的旧记录退场。顺序反了,往往会出现一边清理一边又被抓回来。