网站收录

预览环境和测试域名混进索引:从抓取入口到清场的处理顺序

预发布环境、测试域名、CDN 回源域名这类 URL,内容往往和正式站一致,一旦被抓走就成了重复内容的来源。本文按“先挡抓取、再挡索引、最后清场”的顺序,梳理常见的暴露入口、容易漏掉的配置,以及已经进索引后的退场方式。

网站收录

预览环境和测试域名混进索引:从抓取入口到清场的处理顺序

给客户看的预览链接、能直接访问的测试域名、没有下线的旧站、CDN 回源域名——这些 URL 上的内容往往和正式站一模一样。它们一旦被抓走,就会成为重复内容的一个来源,也可能让用户搜到不该看到的版本。处理这类问题,重点其实不在“怎么删”,而在“一开始就别让它能被抓”。

这些 URL 通常从哪来

先搞清楚入口,才谈得上封堵。常见的来源有这么几类:

  • 外链泄露:预览链接发给了客户、外包或合作方,又被贴到公开页面、工单系统或聊天记录里,爬虫顺着链接就进来了。
  • 域名本身可访问:测试域名解析到了公网,没有加任何访问限制;或者 CDN 的回源域名可以直接请求。
  • 旧站没退场:改版后旧域名既没跳转也没下线,内页仍然能打开。
  • 调试信息外露:页面上输出了内部路径、接口地址或环境变量。

这些 URL 的共同点是:它们不属于正式站点结构,却能被蜘蛛正常抓到,并且返回 200。

处理顺序:抓取 → 索引 → 清场

很多站点只做了一步就以为解决了,结果过一阵发现索引里还是有。这三层是递进关系:

  1. 阻止抓取:robots.txt 的 Disallow、IP 白名单、HTTP 基础认证,成本最低。
  2. 阻止索引:页面 head 里的 noindex,作用在能返回页面的那条路径上。
  3. 清场:已经进索引的 URL,只能等重新抓取后按 404、410 或 noindex 退出。

要注意一个顺序上的坑:robots.txt 全站 Disallow 之后,蜘蛛看不到页面,也就读不到 noindex。如果你既想挡抓取又想挡索引,得先确认蜘蛛到底能不能访问到那个页面。

第一层:让蜘蛛进不来

  • 预发布环境整体加 HTTP 基础认证或 IP 白名单,这是最彻底的方式,蜘蛛和普通用户都进不去。
  • 如果必须对外可访问,用独立的 robots.txt 挡住整站,并确认这个文件本身能被匿名请求到。
  • 测试域名要单独放一份 robots.txt,不要默认主站规则会自动生效——它们通常是两套部署。

第二层:被访问到也别进索引

  • 在页面里加 noindex,但前提是这条路径没有被 robots 完全挡死,否则标签形同虚设。
  • 返回正确的状态码,不要用一个 200 的“无权访问”页面来伪装。
  • 测试域名不要随手配 canonical 指回主站。这种写法在测试环境里容易被复制到正式站,导致正式页面的收录归属混乱。

已经进索引了怎么退场

  • 能下线就下线,返回 404 或 410,让页面自然退出索引。
  • 不能下线就先加 noindex,然后等蜘蛛重新抓取,这中间有时间差。
  • 清理之前先确认没有正式页面依赖这些 URL,避免误伤正常入口。
  • 图片、PDF、接口返回的 JSON 也可能被索引,不只是 HTML 页面。

容易漏掉的几个点

  • 旧域名只做了首页跳转,内页还能直接访问。
  • CDN 回源域名可以被直接请求,且没有被认证或 robots 覆盖。
  • 预览环境沿用了主站的 robots.txt,没有单独配置。
  • sitemap 里误把测试域名下的 URL 一起提交了。
预发布环境的问题,最好在部署阶段就解决:访问控制放在最外层,比事后一个个提交删除省事得多。已经进索引的也不用慌,按抓取、索引、退场的顺序走一遍,通常能慢慢收干净。