站点运营

站点运营:测试环境与预览链接,别让蜘蛛抓走半成品

测试域名、预览链接、临时上传目录这些“半成品”页面,很容易被蜘蛛发现并抓走,带来重复内容、旧数据被索引、抓取预算被浪费等问题。本文梳理常见的泄露入口、环境隔离的几种做法,以及上线前后可以照着做的自查清单。

站点运营

站点运营:测试环境与预览链接,别让蜘蛛抓走半成品

很多站点的抓取问题,并不出在正式站上,而是出在那些“还没准备好”的页面上:测试域名、预览链接、临时上传目录、改版时留下的旧站。它们通常没有任何内链指向,但只要有一个人把链接发到公开的地方,或者服务器根本没做隔离,蜘蛛迟早会顺着找到。

常见的泄露入口

  • 测试域名或测试站:例如 test.example.com、dev 前缀目录,内容和正式站高度相似。
  • 预览链接:CMS 生成的 ?preview=xxx 之类地址,或者短时效的分享链接,被复制进聊天工具、文档、工单里。
  • 临时目录与上传残留:/tmp、按日期堆积的上传目录、编辑器导出的静态文件,没有任何访问保护。
  • 备份与数据文件:压缩包、SQL 导出、日志文件直接躺在网站根目录下。
  • 改版后的旧目录:新站上线了,旧目录还留在服务器上没删,也没做跳转。

被抓走之后会有什么麻烦

半成品页面本身可能没什么价值,但副作用不小:

  • 和正式页内容重复,让蜘蛛难以判断该保留哪个版本;
  • 旧价格、旧活动、旧联系方式被抓取后,可能在结果里长期存在,访客看到的是过期信息;
  • 抓取预算被这些页面消耗掉,核心栏目的更新反而排到后面;
  • 如果预览页或临时目录里带有后台入口、调试信息,还可能暴露不该公开的内容。
判断标准很简单:这个地址如果被陌生人看到,是否会造成误解或风险?答案是“会”,就不该让它处在可被公开访问的状态。

隔离的几种做法

访问层先挡住

测试环境优先用内网访问、HTTP 基本认证或 IP 白名单,而不是指望 robots.txt。robots.txt 约束的是遵守规则的抓取,挡不住别人手动打开,也挡不住已经抓走的快照。

再补一层索引指令

确实需要公开访问的预览环境,比如给客户看的版本,可以在响应头加 X-Robots-Tag: noindex,比只写在页面 meta 里更稳妥;同时确认它没有出现在站点地图、内链和站内搜索里。

预览链接做成一次性的

带 token 的预览地址最好设置有效期,用完整就失效;不要用可枚举的连续 ID,也不要把大量预览链接堆在同一个页面上。

上线时同步清理

旧目录、旧子域、备份文件在新站上线当天就该处理掉。需要保留的做 301,不需要的直接删除或返回 410,别让它们长期挂着。

上线前后的自查清单

  1. 站点地图和主要内链里,有没有混进测试域名或预览地址;
  2. 服务器根目录下是否还存在压缩包、SQL、日志之类的文件;
  3. 旧站目录是否已删除或做了跳转;
  4. CDN 缓存里是否还留着旧版本页面;
  5. 在服务器日志里搜一下测试域名、preview、tmp 等关键词,看有没有被抓取的记录。

已经被抓了怎么处理

先确认现状,看看这个地址是否真的出现在结果里。仍可访问的页面,先让它返回 404 或 410,或者在响应头加 noindex;确实需要保留内容的,做 301 指向正式页。如果页面里含敏感信息,处理优先级要提到最前面。做完这些,再观察一段时间的抓取日志,确认蜘蛛不再频繁回访。

这类问题大多不是技术难题,而是流程问题:发布流程里多问一句“这个地址能不能被公开访问”,就能省掉后面很多清理工作。