站点运营

站点运营:測試站與预發布环境治理,別让 staging 域名被蜘蛛抓進索引

改版和迁移时常用的測試域名、预發布环境,上线後常常忘了關。只要域名還在解析、頁面還能打開,蜘蛛就可能把它当成第二份站点抓走並索引。本文给出一套從排查到處理的清單:怎么找出還在响應的測試站、用什么方式挡住抓取、已经進索引的頁面怎么登出去,以及怎样把這一步固化進上线流程。

站点运营

站点运营:測試站與预發布环境治理,別让 staging 域名被蜘蛛抓進索引

做改版、迁移或新功能上线时,很多团队會先在一個測試域名或预發布环境里跑一版。功能驗證完、正式站上线之後,這些环境常常就没人管了:域名還在解析,服務器還在响應,頁面结构和正式站几乎一模一样。蜘蛛一旦拿到這個地址,就可能把它当成第二份内容抓走,甚至索引出来,和正式站形成重复。

測試环境通常從哪些路径泄露出去

  • 正式站的 HTML 里残留測試域名:图片、CSS、JS 用了測試站的绝對地址。
  • sitemap 或 RSS 里混進了測試域名下的 URL。
  • 測試站的 robots.txt 没有整体屏蔽,等于對蜘蛛敞開。
  • 内部同事把測試連結分享到公開渠道,或寫進了文档、邮件。
  • CDN 缓存了測試站的内容,正式域名下也能命中。
  • 域名解析记錄没清理,子域名一直可訪問。

按顺序走一遍自查

  1. 列出所有域名與子域名,包括 test、dev、staging、beta、new、old 這類命名,用 DNS 查询工具確認哪些還在解析、還指向服務器。
  2. 逐個訪問首頁和内頁,看返回狀態碼、看頁面内容是否與正式站重复、看响應头里有没有意外的缓存策略。
  3. 检查測試站的 robots.txt,是否用 Disallow: / 整体屏蔽;確認文件真的能訪問到,而不是返回 404 让規則失效。
  4. 检查訪問保護:是否加了 Basic Auth、IP 白名單或必须连 VPN 才能打開。
  5. 在正式站源碼里搜測試域名,重点看图片、样式表、脚本、canonical、hreflang 這几處。
  6. 检查 sitemap,確認里面只有正式域名的 URL,没有參數頁和測試地址混入。
  7. 用站内搜尋指令查一下測試域名,確認是否已经被索引。

發現已经被抓取甚至被索引,怎么處理

先分清两個工具的区別:robots.txt 说的是“別抓”,noindex 说的是“別索引”。如果頁面已经被索引,只加 robots.txt 屏蔽反而會让蜘蛛讀不到 noindex,頁面可能長期留在索引里出不来。

  1. 首頁面先保持可抓取,在响應头或 meta 里加上 noindex。
  2. 如果測試站内容與正式站重复,做 301 跳到正式站對應頁面;不再使用的可以直接返回 410。
  3. 等索引里看不到這些地址之後,再考虑用 robots.txt 整体屏蔽,或者直接關停解析。
  4. 检查 CDN 缓存,把測試站相關的缓存清掉,避免正式域名命中舊内容。
  5. 如果時間紧,可以用搜尋後台的移除工具做临时處理,但根本解决還是要靠上面的步骤。
關掉一個測試站,比事後清理几十條被索引的重复頁面要省事得多。把“上线後處理预發布环境”寫進發布清單,是最划算的一步。

把治理動作固化下来

  • 上线清單里固定一條:關閉測試域名解析,或改為帳號保護 + 整站屏蔽。
  • 子域名命名和 DNS 记錄做登记,谁開的、什么时候到期,寫清楚。
  • 每月巡检一次,重点看新出現的子域名和還在响應的測試地址。
  • 改版本、換域名的操作记進變更日誌,方便下次排查。

這些動作本身不复杂,难的是每次都记得做。把它当成上线流程里和“备份、回滚”同級的一步,測試环境泄露這類問题基本就不會再出現。