首頁 / 技術文章 / 用 robots.txt 允許 AI 搜尋、封鎖模型訓練的做法與限制

技術文章

用 robots.txt 允許 AI 搜尋、封鎖模型訓練的做法與限制

可以,但只在「爬蟲業者提供分離的 User-Agent,且遵守 robots.txt」時成立。以 OpenAI 為例,可允許 OAI-SearchBot,並禁止 GPTBot;這是在 robots.txt 層級表達網站存取偏好,不等於可強制所有 AI 系統不得訓練。

發布 2026-09-10更新 2026-09-10最後查核 2026-09-10topcc.me 編輯部

精簡答案

robots.txt 能做的是:依 User-Agent 對爬蟲宣告哪些路徑可抓、哪些不可抓。若 AI 服務商把「搜尋索引/答案引用」與「模型訓練資料蒐集」拆成不同爬蟲,網站就能用不同規則處理。

robots.txt 對 AI 搜尋與模型訓練的可控範圍
目標robots.txt 是否適合判斷
允許特定 AI 搜尋爬蟲存取公開頁面適合可用指定 User-AgentAllow 規則表達
禁止特定模型訓練爬蟲存取網站適合,但取決於對方是否遵守可用指定 User-AgentDisallow 規則表達
保證任何 AI 公司都不能拿內容訓練不適合robots.txt 不是身分驗證、授權合約或存取控制系統
阻止未宣告、偽裝或不遵守規則的抓取行為不適合需要伺服器端偵測、封鎖、授權與法律條款等其他機制

為什麼 robots.txt 可以分開處理不同 AI 爬蟲

RFC 9309 定義的 Robots Exclusion Protocol 允許網站在根目錄的 /robots.txt 中,針對不同 User-Agent 建立規則群組。每個群組可包含 AllowDisallow 規則,用來表示該爬蟲是否可存取特定路徑。

因此,關鍵不在於 robots.txt 是否有「AI training」這個通用欄位;它沒有。實務上可行的做法,是依各業者公開文件列出的爬蟲名稱分別設定。

OpenAI 的例子:允許 OAI-SearchBot,禁止 GPTBot

以 OpenAI 文件為例,GPTBotOAI-SearchBot 是不同的爬蟲。OpenAI 文件描述 GPTBot 可用於協助改善模型,並描述 OAI-SearchBot 與搜尋功能相關,且不是用來訓練 OpenAI 的生成式 AI foundation models。

OpenAI 文件中的相關 User-Agent
User-Agent文件描述的用途常見 robots.txt 策略
GPTBotOpenAI 的網頁爬蟲,文件說明其可用於協助改善模型若不希望內容被此爬蟲抓取,可設定 Disallow: /
OAI-SearchBot與 OpenAI 搜尋功能相關;OpenAI 文件說明它不是用來訓練生成式 AI foundation models若希望內容可出現在 AI 搜尋或相關搜尋功能中,可設定 Allow: /
ChatGPT-User代表 ChatGPT 使用者觸發的請求,而非一般自動化網頁爬取是否允許取決於網站是否要支援使用者透過 ChatGPT 存取頁面

robots.txt 範例

以下範例表達的政策是:允許 OpenAI 搜尋爬蟲存取全站、允許使用者觸發的 ChatGPT 存取、禁止 GPTBot 抓取全站。這是針對 OpenAI 文件中公開列出的 User-Agent 所寫,不是所有 AI 爬蟲的通用規則。

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: GPTBot
Disallow: /
若網站同時有一般搜尋引擎 SEO 需求,避免為了封鎖 AI 訓練而直接對 User-agent: * 設定 Disallow: /。該寫法可能同時影響其他遵守 robots.txt 的爬蟲。

規則如何被解讀

  1. 爬蟲會讀取網站根目錄的 /robots.txt
  2. 爬蟲依自己的 User-Agent 找到對應的規則群組。
  3. 群組中的 AllowDisallow 規則用路徑比對 URL。
  4. 若多條規則同時符合,依 RFC 9309 的規則選擇最明確的比對結果。

因此,網站管理者應把「允許搜尋」與「禁止訓練」寫成不同 User-Agent 的明確規則,而不是期待單一 Disallow 能表達所有 AI 使用情境。

適用範圍與限制

此做法的邊界
限制說明建議
依賴爬蟲自我識別robots.txt 是依 User-Agent 套用規則;若爬蟲未使用公開名稱,規則就無法精準套用搭配伺服器日誌檢查與異常流量偵測
依賴對方遵守 robots.txtrobots.txt 是爬蟲排除協定,不是登入、付費牆或檔案權限對非公開資料使用身分驗證或授權控管
不同業者命名不同沒有單一標準 User-Agent 可代表所有 AI 搜尋或所有模型訓練逐一查閱各業者官方文件
搜尋與訓練界線由業者文件定義網站端只能依對方公開說明設定規則,不能從 robots.txt 本身驗證資料用途保留政策紀錄,並定期檢查文件是否更新

常見誤解與陷阱

誤解一:Disallow: / 就等於禁止所有 AI 使用內容。實際上,它只會影響遵守 robots.txt 且符合該規則的爬蟲存取行為;內容授權、模型訓練用途與資料保存政策不是 robots.txt 能完整處理的範圍。
誤解二:允許 OAI-SearchBot 就等於允許 GPTBot。兩者是不同 User-Agent,應分開寫規則;不要只用泛用規則處理所有 OpenAI 相關流量。
誤解三:所有 AI 搜尋都使用同一個 User-Agent。不同服務商可能使用不同名稱,也可能同時有搜尋、訓練、使用者觸發請求等多種爬蟲。需要依官方文件逐一確認。

維運建議

沒有真實觀測資料時,不應把某個 robots.txt 設定寫成「已能阻止所有 AI 訓練」。較穩健的做法,是把 robots.txt 視為公開政策宣告,再搭配日誌分析、爬蟲目錄、使用條款與伺服器端控管。

本文的依據與限制

本文依據 RFC 9309 的 robots.txt 規格,以及 OpenAI 對 GPTBotOAI-SearchBotChatGPT-User 與模型資料來源的公開說明整理。未使用站內或伺服器日誌觀測資料。

常見問題

能不能只允許 AI 搜尋,但禁止模型訓練?

可以表達這個偏好,但前提是服務商把搜尋爬蟲與訓練爬蟲分成不同 User-Agent,且遵守 robots.txt。以 OpenAI 為例,可允許 OAI-SearchBot,並禁止 GPTBot

需要封鎖 ChatGPT-User 嗎?

ChatGPT-User 代表使用者在 ChatGPT 中觸發的請求,和一般自動化爬蟲不同。若網站希望使用者能透過 ChatGPT 開啟或查詢公開頁面,通常不會把它與訓練爬蟲混在同一條封鎖規則。

robots.txt 能保證內容不被拿去訓練模型嗎?

不能保證。robots.txt 是爬蟲排除協定,用來告知遵守規則的爬蟲哪些路徑可存取;它不是授權合約、身分驗證或技術性資料外洩防護。

其他 AI 服務也能用同樣寫法嗎?

原理相同,但 User-Agent 名稱不能直接套用。應查閱該服務的官方爬蟲文件,確認是否有分離搜尋、訓練或使用者觸發請求的爬蟲名稱。

資料來源