站点运营

站点运营:測試环境與预發布站点自查,別让草稿站被蜘蛛抓走

測試站、预發布站往往是正式站的複製品,一旦被搜尋引擎抓取,草稿内容會被索引,正式站還要承担重复内容的風險。本文梳理草稿站常见的暴露路径,對比網絡隔离、訪問認證、robots.txt 與 noindex 几種手段的强弱,並给出一份可以照着执行的自查清單和事後清理步骤。

站点运营

站点运营:測試环境與预發布站点自查,別让草稿站被蜘蛛抓走

很多站点都有一個影子版本:測試站、预發布站、内部演示站。它們通常是把正式站的資料複製一份,域名可能只是把 www 換成 test 或 dev,目錄也可能是 /beta/。這些地址一旦被搜尋引擎發現,就會带来两個麻烦:草稿内容被索引,以及同一批内容出現重复版本,把正式站该拿的權重分掉一部分。

草稿站是怎么被發現的

  • 同事把測試連結發到群里、工單里,甚至贴到了公開頁面
  • 測試站的 robots.txt 直接從正式站複製,預設允许全站抓取
  • 測試域名與正式域名共用服務器和解析记錄,顺着關联就能找到
  • 站点地图文件里混入了測試域名的地址
  • 小程序、APP 或第三方對接时,把測試接口地址寫進了线上代碼

這些路径大多不是技術漏洞,而是流程疏漏。所以處理办法也不只是改配置,還要把检查動作固定下来。

三種隔离手段,效果從强到弱

網絡层隔离

把预發布环境放在内網或 VPN 之後,只允许公司出口 IP 訪問。外網解析不到,也就不存在被抓的問题。如果必须公網可訪問,用 IP 白名單,不要只靠一個弱口令挡着。

整站加一层訪問認證

Nginx 的 Basic Auth 或统一登入是成本最低的做法。带認證的頁面返回 401,蜘蛛通常不會收錄,這比 robots.txt 更可靠:robots.txt 只约束守規矩的爬虫,而認證是服務端直接拒绝,谁来了都進不去。

robots.txt 加 noindex,作為补充

不少人以為寫了 Disallow 就萬事大吉。實际上 Disallow 只是別抓,已经進入索引的地址仍可能出現在结果里,只是没有摘要。如果确實想让頁面彻底登出索引,需要頁面上带 noindex,而 noindex 又要求蜘蛛能抓到頁面——两者组合才有效:先允许抓取、返回 noindex,等索引消失後再改成 Disallow。

提示:robots.txt 是公開文件,寫在里面的測試路径等于把地址告诉所有人。敏感目錄不要靠它隐藏。

一份可以照着做的自查清單

  1. 列出所有非正式环境的域名和路径:test、dev、beta、staging、demo、uat
  2. 逐個检查這些站点的 robots.txt,確認不是從正式站直接複製来的
  3. 確認预發布站是否返回 X-Robots-Tag: noindex 响應头
  4. 检查正式站的站点地图與站内連結,確認没有指向測試域名
  5. 用 site: 加測試域名查一次,看是否存在残留索引
  6. 翻一遍服務器訪問日誌,看有没有来自搜尋引擎的抓取记錄
  7. 梳理公開 DNS、證书透明度日誌和第三方监控服務中暴露的測試域名

已经被抓到了怎么办

如果發現草稿内容已经收錄,處理顺序是:先把測試站關停或加上認證,切断繼續被抓的入口;然後對残留頁面返回 410,或者 301 到正式站的對應頁面;最後在站長平台提交移除請求。不要只是把服務器上的文件删掉,那样地址會變成 404,清理速度反而更慢。

把它變成例行動作

新項目上线时,把环境隔离寫進上线清單;每次新建预發布环境,顺手確認三件事:能不能匿名訪問、robots.txt 寫了什么、响應头里有没有 noindex。這三步花不了十分钟,但能省掉後面几個月的清理工作。