# AI爬蟲 robots.txt 配置:允許搜尋,拒絕訓練 > 在做GEO,即生成式引擎優化時,網站常會遇到一個基礎問題:哪些AI爬蟲可以訪問公開頁面,哪些不可以。AI爬蟲是平台自動訪問網頁的程序; 來源:https://www.starbox.work/zh-hant/insights/geo-guide/geo123/(星盒AI 知識中心,更新於 2026-10-08) 在做GEO,即生成式引擎優化時,網站常會遇到一個基礎問題:哪些AI爬蟲可以訪問公開頁面,哪些不可以。AI爬蟲是平台自動訪問網頁的程序;`robots.txt`則是放在網站主機根目錄的一份公開規則文件,用來告訴願意遵守規則的爬蟲,哪些路徑允許抓取,哪些路徑不允許抓取。 配置的難點不在於是否允許AI訪問,而在於區分訪問目的。目前常見的AI訪問至少有三類:為了發現和記錄網頁而進行的搜尋抓取、可能用於模型訓練的抓取,以及用戶提問後臨時發起的頁面訪問。 這些用途通常對應不同的`User-agent`。`User-agent`是爬蟲在訪問網站時聲明的身份名稱。網站可以允許公開內容進入AI搜尋,同時拒絕可能用於模型訓練的抓取,不必把兩類訪問一併允許或一併拒絕。 如果沒有區分用途,通常會出現三類問題:不希望開放的訓練抓取被允許;原本需要保留的搜尋抓取被誤攔;`robots.txt`已經允許訪問,請求卻仍被CDN或WAF攔截。CDN是內容分發網絡,負責在不同節點分發網站內容;WAF是網站應用防火牆,會在請求到達網頁之前進行安全檢查和攔截。 ## 一、先分清三類AI訪問 下面列出幾個常見平台的相關標識及其官方用途。 | 平台 | User-agent | 當前官方用途 | 配置時需要注意 | |---|---|---|---| | OpenAI | OAI-SearchBot | 用於發現可能出現在ChatGPT搜尋結果中的頁面,並支持摘要和引用 | 與GPTBot相互獨立 | | OpenAI | GPTBot | 抓取可能用於基礎模型訓練的內容 | 可以單獨拒絕,不影響OAI-SearchBot | | OpenAI | ChatGPT-User | 用戶或自定義GPT主動請求網頁時使用 | OpenAI説明,`robots.txt`規則可能不適用 | | Anthropic | Claude-SearchBot | 用於改善搜尋結果質量 | 可以與訓練爬蟲分開配置 | | Anthropic | ClaudeBot | 收集可能用於模型訓練的網頁內容 | 可以單獨拒絕 | | Anthropic | Claude-User | 用戶提問時訪問網頁 | Anthropic稱其機器人遵守`robots.txt` | | Perplexity | PerplexityBot | 建立搜尋索引,並在結果中展示網頁連結 | 官方説明不用於基礎模型訓練抓取 | | Perplexity | Perplexity-User | 用戶提問後觸發的頁面訪問 | 官方説明通常忽略`robots.txt` | | Google | Googlebot | 抓取網頁並建立Google Search索引 | 決定Google搜尋能否抓取相關內容 | | Google | Google-Extended | 控制Gemini訓練及部分為回答獲取依據的用途 | 它是寫在`robots.txt`中的控制名稱,不是獨立發起請求的User-agent;不會影響Google Search收錄 | 這張表説明,搜尋抓取和訓練抓取需要分別配置。 例如,一家企業希望公開內容有機會進入ChatGPT搜尋結果,但不希望這些內容被GPTBot用於潛在的模型訓練,就可以允許`OAI-SearchBot`,同時拒絕`GPTBot`。OpenAI官方説明,這兩項設置相互獨立。 Google的兩項設置也需要分開處理。允許`Googlebot`,不代表必須允許`Google-Extended`。Google官方説明,限制`Google-Extended`不會影響網站進入Google Search,也不會成為Google Search的排名信號。 ![AI爬蟲 robots.txt 配置:允許搜尋,拒絕訓練](/static/img/insights/geo-guide/geo123-2.jpg) ## 二、適合多數公開網站的基礎模板 下面這份模板對應一種常見需求:允許傳統搜尋和AI搜尋發現公開頁面,同時拒絕已經明確用於模型訓練的抓取。 模板中的`Allow`表示沒有在`robots.txt`這一層拒絕抓取;`Disallow`表示要求願意遵守規則的爬蟲不要抓取相應路徑。 這份模板不能直接覆蓋線上文件。部署前必須先修改域名,再與網站現有的後台、賬戶、參數頁、測試目錄和隱私路徑規則合併。 ```txt # 先保留併合併網站現有規則,不要直接覆蓋舊文件 # 傳統搜尋 User-agent: Googlebot Allow: / User-agent: bingbot Allow: / # OpenAI:允許搜尋,拒絕潛在訓練 User-agent: OAI-SearchBot Allow: / User-agent: GPTBot Disallow: / # ChatGPT-User屬於用戶觸發訪問,robots.txt可能不適用 User-agent: ChatGPT-User Allow: / # Anthropic:允許搜尋和用戶訪問,拒絕潛在訓練 User-agent: Claude-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: ClaudeBot Disallow: / # Perplexity:允許搜尋索引 User-agent: PerplexityBot Allow: / # Perplexity-User通常忽略robots.txt,此處只表達站點意圖 User-agent: Perplexity-User Allow: / # Google-Extended與Google Search分開控制 User-agent: Google-Extended Disallow: / # 只有使用ChatGPT廣告時,才根據業務需要加入廣告落地頁規則 # User-agent: OAI-AdsBot # Allow: / Sitemap: https://www.example.com/sitemap.xml ``` 在沒有衝突規則的情況下,`Allow: /`通常不是必寫項。模板將它明確列出,是為了讓內容、技術、法務和安全團隊直接看出每類爬蟲採用了什麼規則。 模板只展示了公開路徑的基礎設置。網站原有的`/admin/`、`/account/`、站內搜尋參數頁、測試目錄和隱私路徑限制仍需保留。 這裏還涉及SEO,即搜尋引擎優化。直接覆蓋舊文件,可能使網站原有的搜尋抓取設置和路徑限制失效。 ![AI爬蟲 robots.txt 配置:允許搜尋,拒絕訓練](/static/img/insights/geo-guide/geo123-3.jpg) ## 三、已有 robots.txt,怎樣合併新規則 ### 第一步:備份每個主機的現有文件 先訪問: ```txt https://你的域名/robots.txt ``` 保存當前版本,再開始修改。 `robots.txt`按照主機分別生效。主域名、`www`域名、博客子域和幫助中心子域都需要單獨檢查。主域名已經配置,不代表其他子域會自動使用相同規則。 ### 第二步:列出原本就需要限制的路徑 至少核對以下內容: - 後台和賬戶頁面 - 購物車和結算頁面 - 站內搜尋結果 - 測試環境和測試目錄 - 帶有大量參數的重複頁面 - 不應公開的文件和路徑 需要特別區分“限制抓取”和“保護數據”。`Disallow`只能向願意遵守`robots.txt`的爬蟲表達抓取要求,不能真正保護敏感資訊。 會員內容、客戶數據、報價後台、未發佈資料和個人資訊,必須通過登錄權限、伺服器身份驗證、訪問控制和必要的WAF規則進行保護,不能只寫進`robots.txt`。 ### 第三步:按User-agent分別添加規則 將`OAI-SearchBot`、`GPTBot`、Claude的三類機器人、`PerplexityBot`和`Google-Extended`分別配置,不要把所有規則都寫進`User-agent: *`。 只有分別設置,網站才能清楚表達“允許進入搜尋,但拒絕用於潛在訓練”這一選擇。 `Google-Extended`需要單獨説明:它是`robots.txt`中的控制名稱,不是會以這個名稱訪問網站的獨立程序。將它寫成單獨一組,是為了設置相應規則,不代表伺服器日誌中會出現名為`Google-Extended`的訪問記錄。 ### 第四步:保留並檢查Sitemap Sitemap就是站點地圖,用於列出網站希望搜尋系統發現的規範網址。它不是爬蟲放行指令,但有助於搜尋系統發現網站中的有效頁面。 Sitemap地址應使用完整網址,並確認訪問時返回HTTP 200狀態。HTTP狀態碼是網站伺服器返回的處理結果,其中200表示請求成功。 ## 四、如果公司允許訓練抓取 如果公司已經明確同意公開內容可以用於模型訓練,可以調整以下三個控制項: ```txt User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: Google-Extended Allow: / ``` 這不只是一次技術配置變更,還可能涉及內容授權、合同承諾、付費內容和隱私政策,不應由技術部門單獨決定。內容、法務、安全和業務負責人需要共同確認允許範圍。 即使公司同意開放訓練抓取,也不代表所有內容都應公開。會員內容、客戶資訊、內部報價、未發佈資料和個人資訊,仍然需要通過登錄、身份驗證、伺服器權限和訪問控制進行保護。 `robots.txt`不是安全防護工具。它只能約束願意遵守規則的爬蟲,而且訪問請求中的`User-agent`名稱可以被偽造。 ## 五、為什麼不建議照抄“30個AI爬蟲全部放行” 名單長不等於配置準確。把用途不同、來源不同的爬蟲全部允許,會使網站無法針對不同訪問目的設置規則。 ### 1. 爬蟲名稱和用途會變化 平台可能增加新的爬蟲、調整現有爬蟲的用途,或者更新官方IP地址範圍。IP地址是設備或伺服器在網絡中的地址。網上流傳的舊清單還可能包含已經停用、來源不明,甚至根本不遵守`robots.txt`的名稱。 配置時應以平台當前的官方説明為準,不應長期照搬未經更新的轉載名單。 ### 2. 搜尋抓取和訓練抓取用途不同 搜尋抓取用於發現、記錄和展示頁面;訓練抓取則可能把網頁內容用於模型訓練。把兩類爬蟲放在同一條規則下,網站就無法分別表達是否允許這些用途。 ### 3. robots.txt不能代替訪問控制 即使`robots.txt`允許訪問,CDN、WAF、驗證碼、地區限制、登錄要求和訪問頻率限制,仍可能讓請求返回403或429。403通常表示伺服器拒絕訪問;429通常表示短時間內請求過多。 反過來,即使`robots.txt`拒絕訪問,也無法阻止不遵守規則的訪問者。 ### 4. 只看User-agent不能確認真實身份 OpenAI和Perplexity都公佈了官方IP地址範圍。配置WAF允許規則或分析伺服器日誌時,應同時核對`User-agent`和官方IP來源,不能只憑請求中聲明的名稱判斷訪問者身份。 ## 六、上線後必須完成的8項實測 `robots.txt`成功保存,只能證明文件已經寫入,不能證明整套配置已經生效。上線後至少要完成以下檢查: | 檢查項 | 通過標準 | |---|---| | 文件位置 | 每個主機的根目錄都能訪問`/robots.txt` | | HTTP狀態 | 返回200,不是登錄頁、反覆跳轉或驗證碼頁面 | | 內容類型 | 返回純文本,中文註釋和規則沒有亂碼 | | 規則合併 | 原有後台、參數頁和站內搜尋限制仍然存在 | | 搜尋與訓練 | `OAI-SearchBot`與`GPTBot`、`Claude-SearchBot`與`ClaudeBot`已經分開配置 | | WAF/CDN | 合法爬蟲沒有被403、429或要求運行JavaScript的驗證頁面攔截。JavaScript是網頁中常用的腳本語言,普通爬蟲未必能完成這類驗證 | | 身份核驗 | `User-agent`與官方IP地址範圍或官方驗證方法同時匹配 | | 日誌觀察 | 發佈後持續檢查抓取路徑、狀態碼和訪問頻率 | 如果修改`robots.txt`後仍然看不到抓取,應先檢查伺服器日誌。常見原因包括WAF誤攔、網站伺服器超時、DNS錯誤、重定向過多、頁面要求登錄,或者主要內容必須等網頁腳本運行後才能顯示。DNS負責把域名轉換為網絡訪問所需的地址。 OpenAI和Perplexity都提示,`robots.txt`的調整可能需要一段時間才能反映到系統中。文件剛保存時,不能只根據一次搜尋結果判斷配置是否成功。 ## 七、最容易誤判的三個問題 ### 1. 已經寫了Allow,為什麼仍然沒有被引用? `Allow`只表示`robots.txt`沒有拒絕抓取,不代表平台一定會訪問、記錄、展示或引用這個頁面。 頁面還需要能夠正常打開,內容也要與用戶提出的問題相關。因此,允許抓取和獲得引用是兩件事。 ### 2. 已經寫了Disallow,為什麼日誌裏還有訪問? 先核對訪問者是否為官方爬蟲,再判斷這次訪問是否由用戶主動請求觸發。 OpenAI説明,`ChatGPT-User`的`robots.txt`規則可能不適用;Perplexity説明,`Perplexity-User`通常會忽略`robots.txt`。 如果網站必須強制阻止某類訪問,應使用登錄驗證、伺服器訪問控制或WAF規則,不能把`robots.txt`當作安全防護措施。 ### 3. 屏蔽Google-Extended會影響Google搜尋排名嗎? 按照Google官方説明,不會影響網站進入Google Search,也不會成為Google Search的排名信號。 `Google-Extended`和`Googlebot`是兩個不同的控制項,而且`Google-Extended`不是獨立發起網站請求的User-agent。 ## 八、配置時最終要確認什麼 一份可用的`robots.txt`,需要清楚回答三件事: - 哪些公開內容允許進入傳統搜尋和AI搜尋; - 哪些內容不希望被用於潛在的模型訓練; - 哪些路徑原本就不應公開。 具體執行時,應先確認每個`User-agent`的官方用途,再編寫對應規則;先備份併合並舊文件,再部署上線;上線後查看真實日誌,再判斷配置是否生效。 平台更新`User-agent`、用途説明或官方IP地址範圍後,還需要重新核對官方文檔。`robots.txt`不是配置一次就可以長期不管的文件,也不應一直沿用未經複核的舊清單。 ## 常見問題 ### robots.txt應該放在哪裏? 放在每個主機的根目錄,例如: ```txt https://www.example.com/robots.txt ``` 不同子域需要分別配置。 ### 可以只允許搜尋、不允許訓練嗎? 可以。按照平台官方説明,將搜尋使用的`User-agent`和訓練使用的`User-agent`分別設置。 ### ChatGPT-User和Perplexity-User能通過robots.txt完全控制嗎? 不能這樣保證。兩家官方都説明,用戶觸發的訪問可能或通常不適用`robots.txt`。 ### robots.txt能保護隱私數據嗎? 不能。隱私和敏感數據必須依靠登錄、身份驗證、伺服器權限、訪問控制和WAF保護。 ### 怎樣確認來訪者沒有偽造User-agent? 結合平台公佈的IP地址範圍或官方驗證方法進行核對,不能只看請求中聲明的名稱。 ## 官方資料 - [OpenAI Crawlers](https://developers.openai.com/api/docs/bots) - [Anthropic機器人説明](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) - [Perplexity Crawlers](https://docs.perplexity.ai/docs/resources/perplexity-crawlers) - [Google常見爬蟲與Google-Extended](https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers)