AI 爬蟲 Robots.txt 檢查器永遠不會去抓取你的正式網站——它只會讀取你貼上的 robots.txt 文字,以及你輸入的 URL 路徑,然後完全在你的瀏覽器分頁裡,針對 32 個 AI 與 AI 相關的產品代號,逐一回報允許或封鎖的結果。因為這個檢查器不會連上你的伺服器、不會查詢 DNS,也不會去問任何爬蟲營運商,所以它只能確認你貼上的規則寫了什麼,無法確認實際上線的內容是什麼。這個邊界,是任何瀏覽器內 robots.txt 檢視工具最重要的一件事:它告訴你的,是你眼前這份檔案的行為,而不是爬蟲最終會從你的網域下載到的那份檔案的行為。如果你想在部署之前做一次合理性檢查,又不想暴露你的測試環境或正式環境網址,這種只在本機運作的設計,正是它的特點,而不是它的限制。
當人們搜尋一個 robots.txt 工具是否會「檢查我的正式網站」時,他們通常是想釐清三個實際的問題:我的網址會不會出現在別人的日誌裡、我能不能在私有的測試環境上使用它,以及結果是否可以信任、真的符合我伺服器實際回應的內容。這三個問題的簡短答案是:貼上文字與輸入路徑,就是全部的輸入介面。沒有任何東西會被抓取、沒有任何東西會被上傳,也沒有任何東西會外洩,所以標題這個問題的答案,就是不會。

這個檢查器實際上會對你的 robots.txt 檔案做什麼
AI 爬蟲 Robots.txt 檢查器遵循的,是 RFC 9309(Robots 排除協定)所標準化的比對邏輯。當你貼上不超過 500 KiB 限制的 robots.txt 文字後,解析器會依照 User-agent 產品代號,把指令分組,合併大小寫不同但內容重複的群組,只有在沒有任何特定群組相符時,才會退回使用萬用字元群組。當你輸入一個區分大小寫、以斜線開頭的 URL 路徑時,檢查器會從路徑的開頭開始,比對 Allow 與 Disallow 規則,其中 * 可以比對任意字元序列,結尾的 $ 則會鎖定比對到字串結尾。比對到最長的規則會勝出,如果特異度相同,則 Allow 規則會勝過 Disallow 規則。規則在被解讀之前,會先移除註解,而值為空的 Disallow 行,不會封鎖任何內容。如果完全沒有任何適用的規則與這個路徑相符,結果就會回報為允許。
接著,同一個路徑,會針對一份固定的、包含 32 個 robots.txt 產品代號的表格,逐一獨立評估。這份表格包含 AI 爬蟲、AI 助理、像 Google-Extended 與 Applebot-Extended 這類模型訓練控制項所使用的代號,以及 AI 相關的搜尋爬蟲。每一列都會標示營運商,以及來源狀態,讓你一眼就能看出哪些項目來自營運商的第一手文件,哪些來自像 Cloudflare Radar 爬蟲目錄這樣的補充目錄。
檢查器看不到你正式網站上的哪些事
因為處理過程完全留在你的瀏覽器裡,這個工具也絕不會代替你發出任何網路請求,所以有一長串與部署有關的實際情況,是它看不到的。下表整理了一個本機檢查器,對於正式環境的 robots.txt,能告訴你什麼,又不能告訴你什麼。
| 情境 | 本機檢查器能否偵測到 | 是否需要正式環境驗證 |
|---|---|---|
| 路徑被貼上的 Disallow 規則封鎖 | 是 | 單就這條規則本身,不需要額外檢查 |
| 因為沒有規則相符而允許的路徑 | 是 | 對照目前的營運商文件,確認這是不是預期的結果 |
| CDN 或邊緣節點覆寫了 /robots.txt | 否 | 用確切的協定與主機名稱,抓取正式環境的網址 |
| robots.txt 網址存在重新導向鏈 | 否 | 檢查伺服器回應碼與最終導向位置 |
| 針對特定用戶端提供不同內容 | 否 | 用營運商的 User-Agent 字串進行測試 |
| 部署後的快取延遲 | 否 | 等待快取到期後重新抓取 |
| 主機範圍設定錯誤(虛擬主機設錯) | 否 | 在正式環境的主機名稱上,驗證實際提供的檔案 |
| /robots.txt 無法連線(4xx、5xx,或找不到檔案) | 否 | 用 curl 或瀏覽器造訪正式環境的網址 |
這代表的意義很直接:把這個檢查器,當成是對你所提供文字所做的一次結果確定的檢視,而把部署後的 HTTP 檢查,當成是另外一個獨立、必要的步驟。Cloudflare 的 AI 爬蟲與代管 robots.txt 相關文件,都說明了邊緣層可以如何改寫爬蟲實際看到的內容,這也是為什麼純本機的分析,無法證明實際上線的內容是什麼。
如何在本機針對 AI 爬蟲檢查你的 robots.txt
把 AI 爬蟲 Robots.txt 檢查器,當成部署前的檢視工具,一次檢視一份 robots.txt 檔案,搭配一個 URL 路徑。
- 把你想要檢視的 robots.txt 文字,一字不差地貼進輸入區,並確保檔案大小不超過檢查器強制要求的 500 KiB 限制。
- 輸入一個區分大小寫、以斜線開頭的 URL 路徑——例如 /articles/private——只有在你想模擬的請求本身包含查詢字串時,才需要加上查詢字串。
- 執行檢查,並逐一閱讀 32 個產品代號各自比對到的每一條規則,特別留意萬用字元群組與特定群組之間的差異,以及在最長比對中,是 Allow 還是 Disallow 勝出。
- 針對幾個重要的路徑,重複這個檢查:可被索引的到達頁面、付費牆內的區塊、供 AI 訓練用的內容,以及任何你懷疑正被爬取的端點。
- 在你發布或更新這份檔案之前,針對每一個重要的產品代號,對照目前的營運商文件逐一確認。
內部的安全限制,把存取規則上限設在 5,000 條,總比對運算量上限設在 20,000,000 次運算,這代表即使一份檔案沒有超過位元組限制,只要它會凍結主執行緒,仍然可能被拒絕處理。Sitemap 與 Crawl-delay 這類行,不會影響存取結果的報告,因為它們並不屬於 RFC 9309 存取決策的範圍。
本機檢查器抓不到的部署落差
一份貼上去看起來完全正確的檔案,在正式環境中,仍然可能提供不一樣的內容。常見的原因包括:CMS 外掛程式附加了額外指令、邊緣規則注入了標頭、從 /robots.txt 重新導向到一個由 CMS 管理的路徑,以及快取層提供了過期的舊版本。有些主機服務商,也會代替你發布一份代管的 robots.txt,這可能會改變爬蟲實際下載到的檔案。Cloudflare 的代管 robots.txt 文件,正好涵蓋了這種情況,並說明了邊緣節點如何覆寫或補充你原始伺服器所提供的內容。
基於同樣的原因,這個檢查器也無法告訴你,某個特定路徑,是否已經透過其他方式被公開,例如 sitemap、內部連結,或第三方索引。一條把 GPTBot 擋在 /private 之外的規則,只有在這個路徑還沒被公開連結、還沒列在 sitemap 裡,也沒有被其他爬蟲已經索引的頁面引用時,才真正有意義。robots.txt 不是身分驗證,不是防火牆,也不是一套具有契約強制力的執行系統——爬蟲完全可以直接忽略它。
發布之後,如何確認正式環境的 /robots.txt
一旦本機檢視結果乾淨無誤,就從瀏覽器內的檢查器,切換到針對你正式環境主機發出的真實網路請求。用 curl 存取正式的網址,確認回應是 text/plain、狀態碼是 200,並把內容逐位元組地,與你貼進檢查器裡的那份檔案做比對。如果你的邊緣節點會依照用戶端身分提供不同內容,就用重要營運商的 User-Agent 字串,重複這次抓取。把回應標頭與內容本體一起保存下來,這樣你就能看出本機檢查器看不到的快取、內容編碼,或重新導向行為。
接下來,在你的伺服器日誌或分析工具中,監控實際的爬蟲流量,來驗證真實世界中的行為。檢查器上顯示的允許或封鎖結果,描述的是你貼上的規則寫了什麼;日誌描述的則是各家營運商實際上做了什麼。這兩者是互補的訊號,不能互相取代。
為什麼本機檢查器能維持私密、結果確定的檢視
「絕不抓取網站」這個設計決定,正是讓這個檢查器可重現的原因。給定同樣貼上的文字,以及同樣的路徑,不論在哪一台裝置上、不論執行幾次,你都會得到同一份表格。正是這種結果確定性,讓這個工具能夠明確地宣稱擁有精確的 32 代號表格、精確的 RFC 9309 比對語意,以及精確、毫不含糊的輸入限制。這也是為什麼本機檢查器,應該永遠放在部署流程之前,而不是取代部署流程。
如果你想更全面地了解,如何把這個檢查器,接入更完整的 robots.txt 工作流程,關於在瀏覽器中檢查 AI 爬蟲 robots.txt的指南,正好能與這篇以隱私優先的概觀互相搭配。至於接下來常見的執行力問題,robots.txt 封鎖是否能真正擋住 AI 爬蟲這篇討論,更深入地說明了自願遵循的侷限。
像Cloudflare AI 爬蟲參考文件與Cloudflare 代管 robots.txt 文件這樣的外部參考資料,值得加入書籤,因為營運商代號與邊緣節點代管的檔案,都會隨時間變動,而這個檢查器目前的 32 列表格,也是依據這些來源建立的。