GEO 指南

GPTBot和ClaudeBot怎麼配?先分清三類訪問

王朋友 · 星盒AI 創始人發佈於 17 分鐘讀完
GPTBot和ClaudeBot怎麼配?先分清三類訪問

先説結論

很多網站開始配置 AI(人工智能)爬蟲時,首先想到的是:到底應該全部允許,還是全部拒絕?

很多網站開始配置 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爬蟲官方説明

三、是否允許AI根據用戶請求讀取網頁

用戶在 ChatGPT 或 Claude 中提出具體問題時,系統可能按需訪問某個網頁。這類訪問分別對應 ChatGPT-User 和 Claude-User。

Anthropic 説明,網站可以通過 robots.txt 管理 Claude-User。拒絕它,可能導致 Claude 無法根據用戶請求取回網頁內容。

OpenAI 對 ChatGPT-User 的説明不同:這類訪問由用戶操作觸發,不是自動遍歷全網的爬取,robots.txt 規則可能不適用。它也不負責決定頁面能否出現在 ChatGPT 搜尋結果中。要管理搜尋,應配置 OAI-SearchBot。Anthropic機器人官方説明

GPTBot和ClaudeBot怎麼配?先分清三類訪問

六個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怎麼配?先分清三類訪問

寫配置前,必須知道六條邊界

1. 三類訪問需要分別決定

訓練、搜尋和用戶觸發訪問是三項不同選擇。不要因為希望頁面進入 AI 搜尋,就預設允許訓練爬蟲;也不要因為拒絕訓練抓取,就連搜尋爬蟲一起拒絕。

2. Allow不等於保證收錄

Allow: / 的意思是允許該爬蟲訪問全部路徑。它只説明 robots.txt 沒有拒絕訪問,不代表平台一定會抓取、收錄、展示或引用頁面。

3. Disallow不是安全措施

Disallow: / 的意思是請求該爬蟲不要訪問任何路徑。它表達的是網站的抓取偏好,不是身份驗證,也不能阻止所有訪問者打開頁面。

RFC 9309 是 robots.txt 所依據的互聯網標準。該標準明確説明,robots 規則不能代替內容安全措施。敏感內容必須使用登錄驗證、訪問權限、網絡隔離等方式保護。RFC 9309

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 搜尋機會,同時謹慎處理訓練授權,可以從下面這套配置開始:

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、後台目錄、賬戶頁、購物車、站內搜尋頁、參數頁和測試目錄等規則,都要繼續保留。

方案二:搜尋和訓練都允許

如果公司已經確認,公開內容可以被兩家的訓練爬蟲訪問,可以採用以下配置:

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 是公開的抓取規則,不是保護敏感內容的工具。

方案三:只開放指定公開目錄

如果網站只准備向訓練爬蟲開放公開知識庫,可以按路徑配置:

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,可以參考以下配置:

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 調整。因此,不能在保存配置後立即根據一次問答結果判斷是否生效。

官方資料