# GPTBot和ClaudeBot怎麼配?先分清三類訪問 > 很多網站開始配置 AI(人工智能)爬蟲時,首先想到的是:到底應該全部允許,還是全部拒絕? 來源:https://www.starbox.work/zh-hant/insights/geo-guide/geo124/(星盒AI 知識中心,更新於 2026-10-09) 很多網站開始配置 AI(人工智能)爬蟲時,首先想到的是:到底應該全部允許,還是全部拒絕? 這個問題不能統一回答。因為爬蟲——也就是自動訪問網站、讀取網頁內容的程序——來到網站,可能是為了三件完全不同的事:訓練模型、支持搜尋,或者響應某位用戶的具體請求。 網站通常通過 `robots.txt` 表達自己的抓取規則。它是放在網站根地址下的公開文本文件,例如 `https://www.example.com/robots.txt`,用於告訴願意遵守規則的爬蟲:哪些頁面可以訪問,哪些頁面不希望被訪問。 這也是做 GEO(生成式引擎優化,本文指圍繞網站內容在生成式 AI 搜尋中的可見性進行優化)時必須分清的一件事:允許 AI 搜尋爬蟲,不等於同時允許模型訓練爬蟲。 本文討論的是 OpenAI 和 Anthropic 與訓練、搜尋、用戶請求直接相關的六個 `User-agent`。`User-agent` 是爬蟲訪問網站時報告的身份名稱。只有先認清每個身份的用途,才能把規則寫對。 如果網站希望保留出現在 ChatGPT 和 Claude 搜尋結果中的機會,同時不希望公開內容被訓練爬蟲抓取,可以先採用以下選擇: - OpenAI:允許 `OAI-SearchBot`,拒絕 `GPTBot`; - Anthropic:允許 `Claude-SearchBot`,根據業務需要決定是否允許 `Claude-User`,拒絕 `ClaudeBot`; - `ChatGPT-User` 需要單獨看待:它由用戶操作觸發,OpenAI 明確説明,`robots.txt` 規則可能不適用於這類訪問。 ## 先回答三個授權問題 配置前,不要先複製代碼,先讓內容、法務、安全和業務負責人回答三個問題。 ### 一、是否允許公開內容用於模型訓練抓取 模型訓練,是指使用數據改進生成式 AI 模型的能力。 OpenAI 用 `GPTBot` 抓取可能用於訓練生成式 AI 基礎模型的內容;Anthropic 用 `ClaudeBot` 收集可能用於模型訓練的網頁內容。 如果網站不接受這類用途,就應分別拒絕這兩個爬蟲。拒絕訓練爬蟲,並不等於必須放棄 AI 搜尋可見性。 ### 二、是否希望內容進入AI搜尋系統 OpenAI 用 `OAI-SearchBot` 支持 ChatGPT 搜尋;Anthropic 用 `Claude-SearchBot` 改善 Claude 搜尋結果的相關性和準確性。 允許這兩個搜尋爬蟲,只表示網站沒有通過 `robots.txt` 拒絕它們,併為頁面進入相關搜尋系統保留機會。它不保證頁面一定會被抓取、收錄、展示或引用。 OpenAI 明確説明,`OAI-SearchBot` 與 `GPTBot` 的設置彼此獨立。網站可以允許前者,同時拒絕後者。[OpenAI爬蟲官方説明](https://developers.openai.com/api/docs/bots) ### 三、是否允許AI根據用戶請求讀取網頁 用戶在 ChatGPT 或 Claude 中提出具體問題時,系統可能按需訪問某個網頁。這類訪問分別對應 `ChatGPT-User` 和 `Claude-User`。 Anthropic 説明,網站可以通過 `robots.txt` 管理 `Claude-User`。拒絕它,可能導致 Claude 無法根據用戶請求取回網頁內容。 OpenAI 對 `ChatGPT-User` 的説明不同:這類訪問由用戶操作觸發,不是自動遍歷全網的爬取,`robots.txt` 規則可能不適用。它也不負責決定頁面能否出現在 ChatGPT 搜尋結果中。要管理搜尋,應配置 `OAI-SearchBot`。[Anthropic機器人官方説明](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) ![GPTBot和ClaudeBot怎麼配?先分清三類訪問](/static/img/insights/geo-guide/geo124-2.jpg) ## 六個User-agent分別負責什麼 | 平台 | User-agent | 官方用途 | 拒絕後的主要影響 | |---|---|---|---| | OpenAI | `GPTBot` | 抓取可能用於訓練生成式 AI 基礎模型的內容 | 表示網站內容不應被用於相應的訓練用途 | | OpenAI | `OAI-SearchBot` | 支持網站出現在 ChatGPT 搜尋結果中 | 網站不會出現在 ChatGPT 搜尋答案中,但仍可能以導航連結出現 | | OpenAI | `ChatGPT-User` | 在用戶或自定義 GPT 提出請求時訪問網頁 | `robots.txt` 規則可能不適用,不能把 `Disallow` 當成可靠的訪問攔截手段 | | Anthropic | `ClaudeBot` | 收集可能用於模型訓練的網頁內容 | 表示網站未來的材料應排除在相應的訓練數據抓取之外 | | Anthropic | `Claude-SearchBot` | 改善 Claude 搜尋結果的相關性和準確性 | 可能降低網站在 Claude 搜尋中的可見性及相關結果的準確性 | | Anthropic | `Claude-User` | 在用戶提問時按需訪問網頁 | 可能導致 Claude 無法根據相關用戶請求取回網頁內容 | 因此,放行 `GPTBot` 和 `ClaudeBot` 不是保留 AI 搜尋機會的必要條件。它們處理的是訓練抓取授權,不是搜尋展示授權。 ![GPTBot和ClaudeBot怎麼配?先分清三類訪問](/static/img/insights/geo-guide/geo124-3.jpg) ## 寫配置前,必須知道六條邊界 ### 1. 三類訪問需要分別決定 訓練、搜尋和用戶觸發訪問是三項不同選擇。不要因為希望頁面進入 AI 搜尋,就預設允許訓練爬蟲;也不要因為拒絕訓練抓取,就連搜尋爬蟲一起拒絕。 ### 2. Allow不等於保證收錄 `Allow: /` 的意思是允許該爬蟲訪問全部路徑。它只説明 `robots.txt` 沒有拒絕訪問,不代表平台一定會抓取、收錄、展示或引用頁面。 ### 3. Disallow不是安全措施 `Disallow: /` 的意思是請求該爬蟲不要訪問任何路徑。它表達的是網站的抓取偏好,不是身份驗證,也不能阻止所有訪問者打開頁面。 RFC 9309 是 `robots.txt` 所依據的互聯網標準。該標準明確説明,robots 規則不能代替內容安全措施。敏感內容必須使用登錄驗證、訪問權限、網絡隔離等方式保護。[RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) ### 4. robots.txt按主機分別生效 主機在這裏指一個具體的域名入口。`example.com`、`www.example.com` 和 `help.example.com` 即使屬於同一家公司,也需要分別檢查和配置自己的 `robots.txt`。 ### 5. Crawl-delay不是通用標準 `Crawl-delay` 的意思是設置抓取間隔。Anthropic 支持這項非標準指令,但它不屬於 RFC 9309。不能因為 Anthropic 支持,就認為 OpenAI 或其他爬蟲也會執行。 ### 6. ChatGPT-User需要單獨處理 在 `robots.txt` 中為 `ChatGPT-User` 寫入 `Allow` 或 `Disallow`,可以表達網站偏好,但不能據此認定用戶觸發訪問一定會被允許或阻止。OpenAI 的官方説明是:這類訪問由用戶發起,robots 規則可能不適用。 ## 方案一:允許搜尋,拒絕訓練 如果網站希望保留 AI 搜尋機會,同時謹慎處理訓練授權,可以從下面這套配置開始: ```txt User-agent: OAI-SearchBot Allow: / User-agent: GPTBot Disallow: / User-agent: ChatGPT-User Allow: / User-agent: Claude-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: ClaudeBot Disallow: / Sitemap: https://www.example.com/sitemap.xml ``` 這套示例允許兩家的搜尋爬蟲,拒絕兩家的訓練爬蟲,並表達了允許用戶觸發訪問的偏好。需要再次提醒:OpenAI 説明 `ChatGPT-User` 訪問可能不受 robots 規則約束。 `Sitemap` 是網站地圖文件,用於列出希望爬蟲發現的頁面。示例中的地址必須替換成網站自己的地址。 上線前,必須把這些內容與現有 `robots.txt` 合併,不能覆蓋線上原文件。原有的 Googlebot、bingbot、後台目錄、賬戶頁、購物車、站內搜尋頁、參數頁和測試目錄等規則,都要繼續保留。 ## 方案二:搜尋和訓練都允許 如果公司已經確認,公開內容可以被兩家的訓練爬蟲訪問,可以採用以下配置: ```txt User-agent: OAI-SearchBot Allow: / User-agent: GPTBot Allow: / User-agent: ChatGPT-User Allow: / User-agent: Claude-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: ClaudeBot Allow: / ``` 採用這套方案前,應由內容、法務、安全和業務共同確認授權範圍。 即使寫了 `Allow: /`,付費內容、客戶數據、合同資料、個人資訊和未發佈頁面也不能直接暴露在公網。`robots.txt` 是公開的抓取規則,不是保護敏感內容的工具。 ## 方案三:只開放指定公開目錄 如果網站只准備向訓練爬蟲開放公開知識庫,可以按路徑配置: ```txt User-agent: GPTBot Allow: /knowledge/ Disallow: / User-agent: ClaudeBot Allow: /knowledge/ Disallow: / ``` 這組規則表示:允許訪問 `/knowledge/` 目錄,其他路徑全部拒絕。 RFC 9309 規定,當多條規則都能匹配同一個訪問路徑時,應採用匹配內容更長、也就是更具體的那條規則。由於 `/knowledge/` 比 `/` 更具體,所以知識庫目錄會被允許,其他目錄仍然被拒絕。 這段代碼只演示訓練爬蟲的目錄控制。搜尋爬蟲和用戶觸發訪問是否也按目錄開放,仍要分別配置。 規則上線後,還要查看伺服器日誌並進行實際測試。伺服器日誌會記錄訪問者使用的身份名稱、訪問路徑、訪問時間和伺服器返回結果。只查看 `robots.txt` 的文字,不能證明爬蟲已經按預期訪問。 ## 已有robots.txt,應該怎樣合併 ### 第一步:保存線上原文件 先保存生產環境正在使用的 `robots.txt`,並記錄修改時間。不要用網上找到的模板直接覆蓋原文件。 ### 第二步:整理現有User-agent組 列出文件中的全部 `User-agent`。如果同一個 `User-agent` 分散在多個位置,儘量整理到同一組,減少後續檢查和維護中的混亂。 ### 第三步:保留原有業務限制 後台、賬戶、購物車、站內搜尋、參數頁、測試目錄和重複網址等現有規則,不能因為新增 AI 爬蟲配置而丟失。 ### 第四步:分別決定六類訪問 對 `GPTBot`、`OAI-SearchBot`、`ChatGPT-User`、`ClaudeBot`、`Claude-SearchBot` 和 `Claude-User` 逐項判斷。 不要只寫 `User-agent: *`。通配規則只能表達統一選擇,無法準確體現網站對訓練、搜尋和用戶訪問的不同態度。 ### 第五步:逐個主機部署 主域名、`www` 域名、幫助中心和其他子域的 `robots.txt` 互不替代。每個主機都要單獨檢查、部署和驗證。 ## Crawl-delay什麼時候使用 Anthropic 支持非標準擴展 `Crawl-delay`。如果伺服器承受的訪問壓力較大,但網站又不希望完全拒絕 `ClaudeBot`,可以參考以下配置: ```txt User-agent: ClaudeBot Crawl-delay: 1 Allow: / ``` 這項指令只適用於明確表示支持它的爬蟲,不能當成通用配置。 如果伺服器持續出現高頻訪問、403、429 或超時,還要檢查 CDN、WAF、緩存和伺服器容量。 CDN 是內容分發網絡,用於把網站內容分發到不同節點;WAF 是網站應用防火牆,用於識別和攔截異常訪問。403 通常表示伺服器拒絕訪問,429 表示請求過於頻繁。`robots.txt` 不能代替伺服器限流和訪問控制。 ## 上線前後檢查這十項 HTTP 狀態碼是伺服器返回的訪問結果代碼。配置完成後,至少檢查以下內容: | 檢查項 | 通過標準 | |---|---| | 文件位置 | 每個主機都能通過根地址下的 `/robots.txt` 訪問規則文件 | | HTTP狀態 | 返回 200,即伺服器正常提供文件,而不是登錄頁或驗證碼頁面 | | 文件格式 | 使用 UTF-8 這種通用文本編碼,並以純文本顯示,沒有亂碼 | | GPTBot用途 | 團隊已經明確允許或拒絕潛在訓練抓取 | | ClaudeBot用途 | 團隊已經明確允許或拒絕潛在訓練抓取 | | 搜尋爬蟲 | `OAI-SearchBot`、`Claude-SearchBot` 已單獨配置 | | 用戶訪問 | `ChatGPT-User`、`Claude-User` 已分別評估,並理解兩家的規則差異 | | 原有規則 | 後台、賬戶、參數頁和 Sitemap 等原有規則仍然保留 | | WAF和CDN | 沒有把需要允許的官方請求全部攔截為 403 或 429 | | 日誌複核 | 可以按 User-agent、路徑、狀態碼和時間查看訪問記錄 | ## 三個常見誤區 ### 誤區一:放行GPTBot,就能進入ChatGPT搜尋 不對。 ChatGPT 搜尋對應的是 `OAI-SearchBot`,`GPTBot` 對應潛在訓練用途。兩項設置彼此獨立。 ### 誤區二:放行ClaudeBot,就等於放行Claude搜尋 不對。 Anthropic 已經將 `ClaudeBot`、`Claude-SearchBot` 和 `Claude-User` 分開。要保留搜尋可見性,需要單獨配置 `Claude-SearchBot`。 ### 誤區三:robots.txt能保護敏感數據 不能。 `robots.txt` 是公開文件,任何訪問者都可以看到其中列出的路徑。敏感內容必須通過登錄驗證、訪問權限、網絡隔離和伺服器配置進行保護。 ## 最後應該怎麼選 如果只想保留 AI 搜尋機會,可以允許 `OAI-SearchBot` 和 `Claude-SearchBot`,先拒絕 `GPTBot` 和 `ClaudeBot`。 如果已經完成內容授權評估,再決定是否放行兩家的訓練爬蟲。 如果只准備開放部分知識內容,就按目錄編寫規則,並通過伺服器日誌確認實際訪問結果。 不要把六個 `User-agent` 統一設置為 `Allow`,也不要統一設置為 `Disallow`。訓練、搜尋和用戶請求是三個不同的業務選擇,應該分別決定、分別配置、分別驗證。 ## 常見問題 ### 1. GPTBot和OAI-SearchBot有什麼區別? `GPTBot` 用於抓取可能進入生成式 AI 基礎模型訓練流程的內容;`OAI-SearchBot` 用於支持 ChatGPT 搜尋。兩項 robots 設置彼此獨立。 ### 2. ClaudeBot和Claude-SearchBot有什麼區別? `ClaudeBot` 收集可能用於模型訓練的網頁內容;`Claude-SearchBot` 用於改善 Claude 搜尋結果的相關性和準確性。 ### 3. 不放行GPTBot,會影響ChatGPT搜尋嗎? 按照 OpenAI 當前説明,`GPTBot` 和 `OAI-SearchBot` 可以獨立配置。要保留搜尋機會,應重點確認 `OAI-SearchBot` 沒有被 `robots.txt`、WAF 或伺服器拒絕。 ### 4. 不放行ClaudeBot,還能出現在Claude搜尋中嗎? Anthropic 將 `ClaudeBot` 和 `Claude-SearchBot` 分開。網站可以拒絕 `ClaudeBot`,同時允許 `Claude-SearchBot`,但頁面最終是否被展示或引用仍不能保證。 ### 5. Crawl-delay是通用標準嗎? 不是。它不屬於 RFC 9309 的標準指令。Anthropic明確表示支持該擴展,其他爬蟲是否支持,需要查看各自的官方文檔。 ### 6. 修改後多久生效? 不同平台的處理週期不同。OpenAI 説明,其搜尋系統可能需要約 24 小時才能根據更新後的 `robots.txt` 調整。因此,不能在保存配置後立即根據一次問答結果判斷是否生效。 ## 官方資料 - [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) - [RFC 9309:Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html)