網站收錄

预览环境和測試域名混進索引:從抓取入口到清场的處理顺序

预發布环境、測試域名、CDN 回源域名這類 URL,内容往往和正式站一致,一旦被抓走就成了重复内容的来源。本文按“先挡抓取、再挡索引、最後清场”的顺序,梳理常见的暴露入口、容易漏掉的配置,以及已经進索引後的退场方式。

網站收錄

预览环境和測試域名混進索引:從抓取入口到清场的處理顺序

给客戶看的预览連結、能直接訪問的測試域名、没有下线的舊站、CDN 回源域名——這些 URL 上的内容往往和正式站一模一样。它們一旦被抓走,就會成為重复内容的一個来源,也可能让用戶搜到不该看到的版本。處理這類問题,重点其實不在“怎么删”,而在“一開始就別让它能被抓”。

這些 URL 通常從哪来

先搞清楚入口,才谈得上封堵。常见的来源有這么几類:

  • 外鏈泄露:预览連結發给了客戶、外包或合作方,又被贴到公開頁面、工單系統或聊天记錄里,爬虫顺着連結就進来了。
  • 域名本身可訪問:測試域名解析到了公網,没有加任何訪問限制;或者 CDN 的回源域名可以直接請求。
  • 舊站没退场:改版後舊域名既没跳轉也没下线,内頁仍然能打開。
  • 調试信息外露:頁面上輸出了内部路径、接口地址或环境變量。

這些 URL 的共同点是:它們不属于正式站点结构,却能被蜘蛛正常抓到,並且返回 200。

處理顺序:抓取 → 索引 → 清场

很多站点只做了一步就以為解决了,结果過一阵發現索引里還是有。這三层是递進關系:

  1. 阻止抓取:robots.txt 的 Disallow、IP 白名單、HTTP 基础認證,成本最低。
  2. 阻止索引:頁面 head 里的 noindex,作用在能返回頁面的那條路径上。
  3. 清场:已经進索引的 URL,只能等重新抓取後按 404、410 或 noindex 登出。

要注意一個顺序上的坑:robots.txt 全站 Disallow 之後,蜘蛛看不到頁面,也就讀不到 noindex。如果你既想挡抓取又想挡索引,得先確認蜘蛛到底能不能訪問到那個頁面。

第一层:让蜘蛛進不来

  • 预發布环境整体加 HTTP 基础認證或 IP 白名單,這是最彻底的方式,蜘蛛和普通用戶都進不去。
  • 如果必须對外可訪問,用獨立的 robots.txt 挡住整站,並確認這個文件本身能被匿名請求到。
  • 測試域名要單獨放一份 robots.txt,不要預設主站規則會自動生效——它們通常是两套部署。

第二层:被訪問到也別進索引

  • 在頁面里加 noindex,但前提是這條路径没有被 robots 完全挡死,否則标簽形同虚设。
  • 返回正确的狀態碼,不要用一個 200 的“無權訪問”頁面来伪装。
  • 測試域名不要随手配 canonical 指回主站。這種寫法在測試环境里容易被複製到正式站,導致正式頁面的收錄归属混乱。

已经進索引了怎么退场

  • 能下线就下线,返回 404 或 410,让頁面自然登出索引。
  • 不能下线就先加 noindex,然後等蜘蛛重新抓取,這中間有時間差。
  • 清理之前先確認没有正式頁面依赖這些 URL,避免誤伤正常入口。
  • 图片、PDF、接口返回的 JSON 也可能被索引,不只是 HTML 頁面。

容易漏掉的几個点

  • 舊域名只做了首頁跳轉,内頁還能直接訪問。
  • CDN 回源域名可以被直接請求,且没有被認證或 robots 覆盖。
  • 预览环境沿用了主站的 robots.txt,没有單獨配置。
  • sitemap 里誤把測試域名下的 URL 一起提交了。
预發布环境的問题,最好在部署阶段就解决:訪問控制放在最外层,比事後一個個提交刪除省事得多。已经進索引的也不用慌,按抓取、索引、退场的顺序走一遍,通常能慢慢收干净。