网站收录

预览域名与测试环境被收录:从发现路径到收敛处理的顺序

测试站、预览域名和备用域名常因缺少访问控制而进入索引,造成同一内容多份 URL。本文按发现路径、收录程度判断、断源与收敛处理、上线前检查的顺序,梳理可执行的处理方式,并说明 robots 与 noindex 同时使用时容易踩的坑。

网站收录

预览域名与测试环境被收录:从发现路径到收敛处理的顺序

很多团队会在测试域名、预览地址或备用域名上部署一份与正式站几乎相同的站点,方便内部查看改动效果。这类地址往往没有严格的访问控制,只要有一条链接被分享出去,或者被第三方预览服务、协作工具抓取,就可能进入搜索引擎的抓取范围,进而出现在索引里。内容和正式站重复,于是变成同一内容对应多个 URL 的局面。

先确认它是怎么被发现和抓取的

处理之前先找到入口,否则关掉一处还会从别处冒出来。常见的发现路径包括:

  • 页面里的内部链接写死了测试域名,或者模板拼接时用了环境变量里的错误域名。
  • Sitemap、RSS、结构化数据中包含了测试地址。
  • 测试链接被贴进协作工具、论坛、社交平台,或者被第三方截图、预览服务抓取。
  • CDN、反向代理或抓取工具回源时命中了测试环境。
  • 域名解析到公网后,被各类扫描和服务被动发现。

分清是抓取还是已经进入索引

被蜘蛛抓过,不等于已经收录。可以先看抓取日志确认访问频率和来源,再用站内查询、外链工具或索引状态检查确认是否真的进入了索引。三种状态的处理方式不一样:只是被抓取,重点在断源;已经进入索引,需要让它退出;仍然在展现,则要同时处理正式站一侧的重复内容问题。

处理顺序:先断源,再收敛

第一步:阻止继续被抓

根据环境性质选择手段:整站 robots.txt 禁止抓取、加一层 HTTP 认证、限制 IP 白名单,或者直接取消公网解析。如果测试环境还需要保留公开访问,至少要保证它不会被大量链接指向,减少被发现的机会。

注意:robots.txt 一旦屏蔽整站,爬虫就进不来,也就读不到页面里的 noindex。想让页面退出索引,这两者需要分阶段使用,不能同时一把锁死。

第二步:处理已经进入索引的 URL

  • 确定要彻底下线的测试站,用 410 比 404 更明确,表示资源已永久移除。
  • 内容与正式站重复、且以后不再需要的地址,301 到正式站对应页面。要一一对应,不要把整站全部跳转到首页。
  • 需要保留访问但不想被索引的页面,用 noindex,同时确保 robots.txt 允许爬虫抓取,否则它看不到这个指令。

第三步:回到正式站做自检

确认 canonical、Sitemap、内链都指向正式域名;检查页面模板、图片、静态资源里是否残留测试域名的绝对地址;如果用了多个域名,明确哪一个是主域名,其余做收敛处理。

几个常见误区

  • 只加 noindex,同时在 robots.txt 里全站 Disallow,结果爬虫读不到指令,页面可能长期留在索引里。
  • 把测试域名整体 301 到首页,容易被当作无关跳转或软 404,收敛效果不理想。
  • 以为不提交 Sitemap 就不会被发现,外部链接同样能带来抓取。
  • 只处理主域名,忽略子域名、静态资源域名和备用域名。
  • 用长期挂着的 302 代替正式处理。

上线前的检查清单

  1. 测试环境与生产环境在域名、robots.txt、meta robots 上彻底隔离。
  2. 正式站的绝对 URL 由统一配置生成,避免手工拼接。
  3. Sitemap 只包含正式域名下的可索引地址。
  4. 对外分享链接前,确认链接指向的是正式地址。
  5. 定期检查索引中是否出现测试域名、预览域名和备用域名。

这些处理不会立刻改变索引状态,搜索引擎需要重新抓取并重算,给它留出时间,同时持续观察抓取日志和索引变化即可。