在 AI 機器人 robots.txt 檢查工具 中的 32 個條目,是 robots.txt 的產品權杖(product token),而非爬蟲在每次擷取時所發送的實際 HTTP User-Agent 標頭值。產品權杖是 robots.txt 中 User-agent: 行上所顯示、不分大小寫的名稱;它用於識別解析器應套用至該命名爬蟲的一組規則。相比之下,HTTP User-Agent 標頭則是用戶端選擇宣告的任何字串,許多爬蟲與助理所發送的版本會包含版本號碼、聯絡網址或平台識別資訊,而這些並非用於比對的權杖部分。將這兩個概念視為相同會導致規則設定錯誤,並讓團隊感到意外,因為表格中的每一列可能代表擷取爬蟲,也可能代表專屬的退出控制權杖,比對時是針對權杖本身,而非標頭字串。正因如此,兩個不同的爬蟲產品可能共用幾乎相同的標頭字串,但其 robots.txt 權杖在行為上會被視為不同的群組;而單一營運商可以發布一個用於擷取的權杖,以及另一個用於退出訓練的權杖,檢查工具會針對同一份貼入的檔案評估這兩者。
部分營運商會另外發布一個專門用於訓練控制目的的產品,其名稱類似 Google-Extended 與 Applebot-Extended,這些會與擷取爬蟲並列出現在同一個主機上。其他營運商則會公開單一的擷取產品權杖,由同一個用戶端進行識別,也有少數會同時發布兩者。AI 機器人 robots.txt 檢查工具會以一份貼入的 robots.txt 對完整的集合進行評估,因此無論是擷取路徑或訓練控制路徑,「允許」或「封鎖」的結果都能一次涵蓋。當您開啟檢查工具時,每一列都會標示清楚,讓您能判斷該權杖對應的是擷取爬蟲、助理、模型訓練控制,或 AI 相關的搜尋爬蟲,並了解該列資料是來自營運商的主要文件、維護中的交叉參考,或補充型目錄。

產品權杖與 HTTP User-Agent 標頭的差異
robots.txt 檔案並不知道 HTTP User-Agent 標頭會長成什麼樣子。它只知道如何將出現在 "User-agent:" 之後的值,與連線進來的爬蟲之產品權杖進行比對。RFC 9309 中定義的協定刻意將 User-agent 值視為不分大小寫的產品權杖,如此一來,無論 "GPTBot" 採用何種大小寫,都會解析為同一個群組。爬蟲實際送出的標頭則由該爬蟲自行決定;有些只送出原始的權杖,有些會附加斜線與版本號,有些則會完全輪換識別資訊。由於這段落差,您無法僅透過在 DevTools 中輸入爬蟲所宣告的實際字串來可靠地封鎖它。
實際影響有二。首先,當您想封鎖擷取爬蟲時,請指定產品權杖(例如 GPTBot 或 ClaudeBot),而不是營運商在其公開的標頭範例中所顯示的字串。其次,當營運商另外發布訓練控制權杖(例如 Google-Extended 或 Applebot-Extended)時,封鎖擷取爬蟲並不會一併封鎖其訓練用途;唯有封鎖該控制權杖才能達成。兩者在同一個檔案中屬於獨立的退出機制,而檢查工具會同時顯示兩者,以免遺漏。
32 列各自代表的意義
這 32 列的編排方式讓您一眼就能讀出三項資訊:哪個營運商發布了該權杖、它服務於哪個用途類別,以及該條目的來源為何。用途類別涵蓋 AI 爬蟲、AI 助理、模型訓練控制,以及 AI 相關的搜尋爬蟲。來源狀態則涵蓋營運商的主要文件(OpenAI 與 Anthropic 產品如有提供便會採用)、維護中的交叉參考(例如 Cloudflare 的 AI 機器人與爬蟲流量參考),以及來自 Cloudflare Radar Bots Directory 的補充型目錄條目,後者會被標示說明,而非視為第一方驗證資料。
| 用途類別 | 權杖角色 | 典型命名模式 |
|---|---|---|
| AI 爬蟲 | 用於將頁面擷取進模型或功能管線的擷取產品 | 營運商名稱,通常帶有 "Bot" 後綴 |
| AI 助理 | 與對話式或產品內助理綁定的擷取產品 | 營運商範圍內的助理識別名稱 |
| 模型訓練控制 | 與擷取爬蟲分開的專屬退出權杖 | 營運商範圍內的名稱,通常帶有 "Extended" 後綴 |
| AI 相關搜尋 | 搜尋引擎爬蟲或 AI 搜尋產品 | 傳統搜尋機器人名稱或品牌的 AI 搜尋產品 |
這些標籤正是核心問題的安全防線。被標示為模型訓練控制的列,根據設計而言,並不是爬蟲會放在 HTTP 標頭中的字串;它是發布者用來退出訓練的規則群組。被標示為搜尋爬蟲的列,則是搜尋引擎的擷取器在 robots.txt 中以產品名稱形式呈現的權杖。兩列皆採用相同的 RFC 9309 比對邏輯進行評估,但「允許」或「封鎖」對每一列所代表的意義會因其類別而有所不同,這也是為何需要顯示該欄位。
對您的 robots.txt 檔案執行檢查工具
此檢查工具接受三項輸入,並為表格中的每個權杖回傳一個判斷結果。
- 將您要檢閱的 robots.txt 原始文字貼入輸入區,並維持在 500 KiB 的限制以內。請使用正式環境的規則,而非經過淨化的草稿,因為群組合併與規則合併會在解析過程中進行,唯有實際的檔案才能浮現您真正在意的落差。
- 輸入一條以斜線開頭、區分大小寫的 URL 路徑,然後執行檢查。當該路徑屬於您要模擬的爬蟲請求的一部分時,可包含查詢字串;而與路徑的比對是區分大小寫的,因此 /Private 與 /private 可能產生不同的結果。
- 檢視報告中每一條相符的規則。請優先關注控制訓練用途的權杖,以及您想管理的營運商擷取產品,再將結果與營運商最新的文件進行比對,然後再部署。
您可以針對數條重要路徑重複執行檢查。請將每次結果視為部署前的一個檢核步驟,而非保證;同一份貼入的檔案與同一條路徑將永遠產生相同的輸出,這使得報告易於重現、分享,以及與營運商文件進行差異比對。
32 列背後的 RFC 9309 比對邏輯
在底層,檢查工具會將最多 512,000 位元組的 UTF-8 內容解析為 RFC 9309 的 user-agent 群組,合併重複且不分大小寫的產品權杖群組,並僅在沒有特定群組符合時才退回到萬用字元群組。在適用的群組內,Allow 與 Disallow 樣式會從路徑的開頭開始進行比對,最具體的相符樣式勝出。當同樣具體的 Allow 與 Disallow 規則皆相符時,由 Allow 勝出。星號可符合任何字元序列,樣式結尾的美元符號則會將樣式錨定至路徑末端。註解會在規則解讀之前先行移除,因此註解行永遠不會改變結果。
這些規則對 32 個權杖中的每一個皆完全相同地適用,這也是為何單一貼入的檔案能在一次處理中,同時針對擷取爬蟲、助理產品、訓練控制權杖與搜尋爬蟲進行評估。空白的 Disallow 值不會封鎖任何內容。若沒有適用的 Allow 或 Disallow 規則相符,則會回報為允許存取,這代表結果偏向保守:「允許」一列僅代表沒有規則封鎖該路徑,並不代表營運商一定會擷取它。
限制、安全上限,以及本工具無法做到的事
本檢查工具最多接受 500 KiB 的 UTF-8 輸入,以及 5,000 條非空白的存取規則。RFC 9309 已要求解析器至少需能處理 500 KiB,而本工具另外加上一層總計 20,000,000 次操作的比對工作上限,以防止惡意的超長路徑搭配大量規則集凍結主執行緒。因此,即使檔案在位元組限制之內,仍可能因安全上限而在比對開始前就被拒絕;此時報告會直接說明,而不會無限期執行。非 User-agent、Allow 或 Disallow 指令的行不會影響結果,因此 Sitemap 與 Crawl-delay 等行得以保留在檔案中,供讀取它們的爬蟲使用,但不會納入存取決策表。
本檢查工具不會擷取您的網站、不會上傳檔案,也不會聯絡任何爬蟲營運商。所有處理皆在瀏覽器內完成。這使得報告具備確定性且可重現,但也代表本工具無法偵測重新導向、CDN 覆寫、僅對特定用戶端提供的語法、不正確的主機範圍、快取延遲,或是無法連線的檔案。它同樣無法確認目前部署的內容。發布後,您仍須從完全相同的 scheme 與主機擷取實際的 /robots.txt,確認回應為純文字且成功回傳,並在營運商工具或伺服器記錄中驗證實際行為。
對關鍵權杖核對營運商文件
爬蟲產品會隨時間變化,檢查工具建立時準確的某一列,在您發布時可能已過時。營運商會淘汰權杖、重新命名產品,並新增新的權杖。請將表格視為一個快照,並在您推上線前,針對任何您所依賴的政策與營運商最新文件進行核對。OpenAI 與 Anthropic 產品如有提供,主要文件會被採用;Cloudflare 維護的 AI 爬蟲參考與其管理的 robots.txt 文件(包括 Cloudflare AI 機器人與爬蟲流量參考)提供了主要產品的最新交叉參考;而來自 Cloudflare Radar Bots Directory 的補充型條目則會被標示說明,而非以營運商第一方驗證資料的形式呈現。
對於高風險路徑,請將檢查工具與實際驗證結合使用。先執行報告、部署檔案,再從完全相同的 scheme 與主機擷取實際的 /robots.txt,並確認位元組與您貼入的內容一致。在接下來的數天內,於伺服器記錄中檢查 32 個產品權杖中的任何一個,並確認被允許的權杖確實有在擷取,被封鎖的權杖確實未再靠近。robots.txt 是自願性的,它既不是身分驗證、授權、防火牆,也不能證明內容不會進入模型;請使用伺服器端的存取控制來保護機密或付費內容,並另外監控實際流量。
如需深入了解,請參閱 在無需爬取的情況下從網站產生 llms.txt。
如需深入了解,請參閱 如何製作 Meta Robot 標籤(SEO 中的「金屬機器人」)。