不少站点在上线之前都会先搭一套测试环境:换个二级域名、绑个临时 IP,或者把老域名继续保留着做备份。这些环境对内部协作是便利,对搜索引擎蜘蛛却可能是个陷阱——它们往往和正式站内容几乎一样,一旦被抓取和收录,同一份内容就多了一个出口。
副本为什么会被蜘蛛发现
蜘蛛找到 URL 的途径比多数人想象的多:外链、历史记录、被抓过的 Sitemap,甚至页面上一个忘了删掉的绝对地址。而测试站通常没有做访问限制,任何知道域名的人都能打开,蜘蛛自然也能。
- 测试环境沿用了正式站的站内链接结构,页面之间彼此可达;
- 旧域名没有做 301,解析仍然生效;
- IP 直连可以访问到与正式站相同的页面;
- 预发布环境生成过 Sitemap,并且被提交或被抓取过。
三类容易被忽略的影子站点
预发布与测试域名
这类环境为了调试方便,常常不设鉴权,内容也和正式站同步更新。它对蜘蛛是完全开放的,如果没有明确的抓取规则,收录只是时间问题。
旧域名与历史解析
站点换过域名或改过栏目结构后,如果旧地址仍能返回完整页面,就相当于把同一份内容又发布了一次。特别是旧域名还带着一批外链时,蜘蛛会更频繁地回访。
IP 直连与回源地址
正式站绑定了域名,但服务器 IP 本身往往也能直接打开站点。CDN 的回源域名如果可被外部访问,同样会暴露一份完整副本。这两类地址平时不容易被注意到,却经常在日志里出现蜘蛛的访问记录。
一份可以照着做的自查清单
- 列出所有能返回正文的环境地址:主域名、二级域名、旧域名、服务器 IP、回源域名。
- 逐个访问,确认返回的内容是否与正式站一致。
- 检查这些地址的状态码与 robots 规则,看是否存在明确声明。
- 翻抓取日志或站内搜索结果,确认副本是否已被抓取或收录。
- 回到正式站页面,确认没有指向测试环境的链接或引用地址。
处理办法
先从访问入口封堵
最省事的方式是让测试环境根本不能被外部访问:加基础鉴权、设置 IP 白名单,或者干脆放在内网与 VPN 里。访问不到,后面所有收录问题都不会发生。
用规则兜底
如果确实需要公网可访问,比如给客户演示,至少给它一份独立的 robots.txt,写入禁止抓取的规则,并在响应头里声明不索引。需要注意的是,robots.txt 只约束抓取行为,并不等于阻止收录,所以规则声明往往需要叠加使用才稳妥。
旧域名的正确收尾
换域名后,旧域名应当整体跳转到新域名的对应页面,而不是长期保留一份完整副本。若旧域名确定不再使用,也可以停止解析,但在此之前要确认没有大量外链仍指向它,避免访客落到打不开的地址。
已经收录的副本怎么办
如果副本已经进了索引,先确认抓取规则已经生效,再通过站长平台的移除或更新入口处理。只提交申请却保留可访问的副本,通常不会有好结果。
把它变成常规动作
建议在几个固定节点上跑一遍上面的清单:开通新环境、切换域名、调整 CDN 配置、大版本改版之后。也可以在发布流程里加一条检查项——任何对外可访问的地址,都要明确标注它是否允许被抓取。
副本本身不是问题,问题是副本能被蜘蛛访问,却和正式站长得一模一样。管好入口,比事后清理省力得多。