做站点运营时,正式站和测试站往往共用同一台服务器、同一套代码。上线前预览一下、备份站顺手放到公网、临时目录忘了删,都可能让蜘蛛先一步爬到还没定稿的页面。这些地址一旦被抓取,轻则浪费抓取预算,重则出现内容重复、旧价格或旧政策被展示的问题。
蜘蛛是怎么找到测试站的
蜘蛛并不神秘,它主要顺着链接走。测试站被发现的常见路径有:
- 正式站某个页面上的测试链接没删干净
- 预览地址被发在公开可访问的页面或社区
- 同一 IP 下的其他域名被解析,蜘蛛顺着主机关系摸过去
- 站点地图或历史外链里残留了旧域名
- 服务器目录列表未关闭,路径可以直接被枚举
上线前可以做的自查清单
- 列出所有解析到同一台服务器的域名,确认哪些需要对外。
- 检查测试域名下是否存在 robots.txt,并确认规则是否覆盖整站。
- 翻一翻正式站的访问日志,看 Host 字段里有没有非正式域名被请求。
- 检查 sitemap 中是否混入了测试地址或内网地址。
- 确认预览链接是否有有效期,过期后是否真的失效。
- 检查备份文件、压缩包、日志目录是否能被公开访问。
几种可用的隔离做法
网络层隔离
最省心的方式是让测试环境根本不具备公网入口,只在内网或通过 VPN 访问。前端联调、客户预览都可以走这条路,从源头上就没有被抓取的可能。
认证与临时口令
如果必须公网访问,给整站或整个目录加一层访问认证或一次性口令。多数搜索引擎不会带凭据去抓取页面,内容自然不容易被索引。注意口令不要写在公开页面的链接里,也不要使用可以猜到的固定字符。
域名与目录层面
把测试内容放在单独的域名或子域名下,避免使用正式域名下的临时目录。同时确认正式站的任何页面都不会出现指向测试域的链接,包括返回到主站的链接和图片地址。
robots.txt 只对遵守规则的爬虫有效,真正的隔离应该靠访问控制,而不是靠一句声明。
如果已经被抓到了怎么办
先判断严重程度。如果只是少量页面被抓、没有被索引,通常不需要过度反应,把测试环境关闭或加上访问认证即可。如果已经出现在搜索结果里,可以按下面的顺序处理:
- 把测试地址指向对应的正式页面,让权重回到正式内容上
- 找不到对应正式页的地址,直接返回 404
- 给测试域加上访问认证并保留一段时间,避免被反复抓取
- 回头检查正式站页面,找出仍然指向测试域名的链接并修掉
把它变成日常习惯
与其事后补救,不如在发布流程里加一步检查:发布前扫一遍页面里的外链、图片地址和跳转目标,确认没有指向内网、测试域或临时目录。服务器侧定期巡检站点根目录、备份目录和日志目录的权限,发现不该出现在公网的路径就及时处理。测试环境本身不是问题,长期敞开且无人留意才是。