robots.txt 該放行哪些 AI 爬蟲?檢索型 vs 訓練型完整對照與實戰設定
想被 ChatGPT 和 Perplexity 引用、又不想免費餵養模型訓練?關鍵就藏在 robots.txt 那幾行裡。但很多人沒發現:你寫了「允許」,流量卻在到達網站前就被 Cloudflare 擋掉了。這篇帶你把每一隻 AI 爬蟲分清楚,再學會檢查那個最容易被忽略的隱形破口。
先搞懂:AI 爬蟲分三種,不是「全開」或「全關」
很多人把 AI 爬蟲當成一個整體,結果不是全部放行(連訓練資料都被拿走)、就是全部封鎖(連帶被 AI 搜尋結果踢出)。其實 2025 年起,OpenAI、Anthropic、Perplexity 都把爬蟲拆成三種角色,各自有獨立的 robots.txt 識別碼,可以分開控制。
這三種角色的目的完全不同:訓練型把你的內容拿去訓練模型、檢索型把你的內容建索引以便在 AI 回答時引用、使用者觸發型則是在真人發問當下即時抓取你的頁面。
搞懂這個三層架構,你才有辦法做出對自己有利的取捨——放行能帶來曝光的、封鎖只會被白拿的。先分清角色,再決定每一隻要不要放,是後面所有設定的基礎。
檢索型 vs 訓練型:一張對照表看懂該放誰
把主流爬蟲按角色分類後,設定邏輯就清楚了。對多數想做 GEO(生成式引擎優化)的台灣企業來說,最常見的策略是放行檢索型與使用者觸發型、對訓練型再依品牌策略決定。
- 訓練型(餵養模型,通常無直接曝光回報):GPTBot(OpenAI)、ClaudeBot(Anthropic)、Google-Extended(Google Gemini 訓練)、CCBot(Common Crawl,大量開源模型的訓練來源)
- 檢索型(建立索引,讓你被 AI 搜尋引用):OAI-SearchBot(ChatGPT 搜尋)、Claude-SearchBot(Claude 搜尋)、PerplexityBot(Perplexity 索引)
- 使用者觸發型(真人發問時即時抓取,通常建議放行):ChatGPT-User、Claude-User、Perplexity-User
- 重要區別:Google-Extended 只控制 Gemini 是否拿你的內容做訓練,它不影響 Google 一般搜尋排名(那是 Googlebot),兩者不要搞混
放行還是封鎖?三種典型取捨情境
沒有標準答案,取決於你的商業模式。下面三種情境涵蓋大多數台灣中小企業與內容方的選擇。
若你靠流量與品牌曝光獲利(多數官網、部落格、SaaS):放行所有檢索型與使用者觸發型,因為被 ChatGPT、Perplexity 引用等於免費的新曝光來源;訓練型則可視情況——介意被白拿就封鎖 GPTBot/ClaudeBot/CCBot,不介意換取更廣泛模型知名度就放行。
若你是付費牆或獨家內容(媒體、研究報告、課程):通常封鎖訓練型(不想內容被免費拿去訓練),但保留檢索型與使用者觸發型,讓 AI 至少能引用你的摘要並導流回站。若完全不想和 AI 沾邊(法遵敏感、純內部站):全部封鎖,但要有心理準備——你會逐漸從 AI 答案中消失。
robots.txt 怎麼寫:可直接套用的範本
robots.txt 放在網站根目錄(例如 https://你的網域/robots.txt),每個爬蟲用獨立的 User-agent 區塊控制。下面是「放行檢索、封鎖訓練」的常見寫法骨架,每個區塊都是一行 User-agent 加一行 Allow 或 Disallow。
規則是大小寫不敏感於指令、但 User-agent 名稱要精準照官方拼法(例如是 OAI-SearchBot 不是 OpenAI-SearchBot)。寫完務必到 https://你的網域/robots.txt 直接開來看,確認檔案真的存在且沒有被重導向。
- 放行檢索型:對 OAI-SearchBot、Claude-SearchBot、PerplexityBot 各自寫 User-agent 一行、Allow: / 一行
- 放行使用者觸發型:對 ChatGPT-User、Claude-User、Perplexity-User 各自 Allow: /
- 封鎖訓練型:對 GPTBot、ClaudeBot、CCBot 各自寫 User-agent 一行、Disallow: / 一行;要擋 Gemini 訓練再加 Google-Extended 的 Disallow: /
- 別誤用萬用:User-agent: * 的規則只是「其他未指名爬蟲」的預設值,已單獨指名的 AI 爬蟲會走自己的區塊,不受 * 影響
- robots.txt 是「請求遵守」而非技術強制:守規矩的大廠會遵守,但它擋不住不宣告身分的爬蟲(例如曾被點名換 IP/UA 規避的行為)
隱形破口:robots 寫了允許,卻被 Cloudflare/WAF 擋掉
這是最多人踩到、卻最難自己發現的陷阱。robots.txt 只是「禮貌性的偏好表」,真正決定請求能不能進到你網站的,是更前面的那一層——CDN 與 WAF(網站防火牆)。如果你用 Cloudflare,它的 Bot Fight Mode 預設在所有方案(含免費版)都會開啟,會把它判定為機器人的流量直接擋掉,包括合法的 AI 爬蟲。
結果就是:AI 爬蟲根本沒走到你的伺服器、也沒讀到你那份精心設定的 robots.txt,就在 Cloudflare 那一層被回了 403 或挑戰頁。Cloudflare 近年更內建了「封鎖 AI 機器人」的受管規則,這個規則的優先順序高於 robots.txt——也就是說,robots.txt 寫允許,根本壓不過 WAF 的封鎖。
規則評估有先後:自訂規則(Custom Rules)會在受管的「封鎖 AI 機器人」規則之前執行。所以正確解法是在 Cloudflare 後台建一條自訂 Allow/Skip 規則,比對 User-Agent 含 OAI-SearchBot、PerplexityBot 等你要放行的爬蟲,讓它們在被受管規則攔下之前先放行。WordPress、Webflow 這類掛在 Cloudflare 後面的站特別容易中招。
怎麼檢查:三步驗證爬蟲真的進得來
光改 robots.txt 不夠,你得實際驗證請求有沒有被前面那層擋掉。下面三步可以在幾分鐘內判斷你的設定到底有沒有生效。
- 第一步,直接看檔案:瀏覽器打開 https://你的網域/robots.txt,確認檔案存在、內容正確、沒有被重導向到登入頁或首頁
- 第二步,模擬爬蟲抓取:用指令帶上爬蟲的 User-Agent 抓自己首頁,例如 curl -A "OAI-SearchBot" -I https://你的網域/,看回傳是不是 200;若是 403 或被導到挑戰頁,就是 WAF/CDN 在擋
- 第三步,比對不同身分:同一個指令分別帶一般瀏覽器 UA 和爬蟲 UA,如果瀏覽器拿到 200、爬蟲拿到 403,幾乎可確定是 Bot 管理規則在作怪,去 Cloudflare 的 WAF/Bot 設定加放行規則
- 進階:查伺服器或 CDN 的存取日誌,看 OAI-SearchBot、PerplexityBot、Claude-SearchBot 等是否真的有成功的 200 紀錄,沒有就代表它們從沒進來過
- 想快速量出起點,也可以先用免費的 GEO 健檢工具掃一遍,看 AI 爬蟲能不能讀到你的頁面,再對照上面三步逐項排除
常見問題
Q. robots.txt 允許 GPTBot 了,為什麼 ChatGPT 還是讀不到我的網站?
最常見原因有兩個。一是你放錯爬蟲:GPTBot 是訓練型爬蟲,ChatGPT 搜尋與引用其實是靠 OAI-SearchBot 和 ChatGPT-User,要被引用應該放行這兩隻。二是被前面那層擋掉:就算 robots.txt 寫允許,Cloudflare 等 CDN/WAF 的 Bot 管理規則優先順序更高,會在請求到達你的伺服器前直接回 403。請用 curl 帶 OAI-SearchBot 的 User-Agent 抓自己首頁,若不是 200 就要去 WAF 加放行規則。
Q. 檢索型和訓練型 AI 爬蟲有什麼差別?我該放哪一種?
訓練型(GPTBot、ClaudeBot、Google-Extended、CCBot)會把你的內容拿去訓練模型,通常不會直接帶來曝光回報。檢索型(OAI-SearchBot、Claude-SearchBot、PerplexityBot)會把你的內容建索引,讓你在 AI 回答時被引用、帶來曝光與導流。多數想做 GEO 的網站建議放行檢索型與使用者觸發型(ChatGPT-User、Claude-User、Perplexity-User),訓練型再依品牌策略決定要不要封鎖。
Q. Google-Extended 是什麼?封鎖它會影響我的 Google 搜尋排名嗎?
不會。Google-Extended 只控制 Google 是否能用你的內容訓練 Gemini 等生成式 AI,把它寫成 Disallow 就是退出 AI 訓練。一般 Google 搜尋的索引與排名是由 Googlebot 負責,兩者完全獨立。所以你可以安心封鎖 Google-Extended 退出 AI 訓練,同時保留 Googlebot 維持原本的搜尋排名,互不影響。
Q. 我用 Cloudflare,明明 robots.txt 放行了 AI 爬蟲卻還是被擋,怎麼辦?
因為 Cloudflare 的 Bot Fight Mode 預設在所有方案都會開啟,且內建的「封鎖 AI 機器人」受管規則優先順序高於 robots.txt,請求會在到達你的伺服器前就被擋下。解法是到 Cloudflare 後台的 Security → WAF → Custom Rules,建一條比對 User-Agent 含你要放行的爬蟲(如 OAI-SearchBot、PerplexityBot)的自訂規則,動作設為 Allow 或 Skip;自訂規則會在受管封鎖規則之前執行,就能讓它們通過。
Q. robots.txt 寫了 Disallow,AI 公司就一定不會抓我的內容嗎?
不一定。robots.txt 是業界慣例、屬於「請求遵守」而非技術強制,守規矩的大廠(OpenAI、Anthropic)會遵守,但它無法在技術層面阻止存取。曾有爬蟲被點名以輪換 IP、User-Agent 規避 robots.txt 的情形。若要真正阻擋,需要在 WAF/CDN 層用防火牆規則封鎖,光靠 robots.txt 的 Disallow 不足以保證對方完全不抓。
Q. ChatGPT-User、Claude-User 這類使用者觸發型爬蟲要放行嗎?
多數情況建議放行。這類爬蟲不是大規模自動抓取,而是當真人在 ChatGPT 或 Claude 裡問問題、需要參考你的頁面時才即時抓取一次,並通常附上來源連結導流回你的網站。封鎖它們等於放棄了真人查詢當下被引用、被點進來的機會,對想經營 AI 曝光的網站來說通常得不償失。