Robots.txt 規則測試
用本地 robots 規則批量測試 URL,查看命中行、適用分組和無法判定的結果。
測試已保存的規則
粘貼規則或打開 UTF-8 robots.txt,填寫它的根目錄 URL,以及 ExampleBot 這類爬蟲產品標識,不要填寫完整瀏覽器 User-Agent。每行填寫一個完整 HTTP/HTTPS URL 或根相對路徑。工具不會訪問 robots URL 或目標網站。
每條結果顯示允許、禁止或無法判定,並列出獲勝規則行和命中規則。不同來源站點不受這份文件約束,因此顯示無法判定;無效 URL 也保留為結果行,不會直接從批次中消失。
分組與優先級
使用嚴格 RFC 9309 風格產品標識:忽略大小寫、完整匹配,合併所有命中的具體分組;沒有具體匹配時使用通配分組,兩者不合並。連續 user-agent 行共享分組,直到開始 allow/disallow 部分。空行、註釋、sitemap 和不支持的字段不會拆分分組。
路徑區分大小寫,從開頭比較,包含查詢字符串,不含片段。規範化編碼後模式最長者獲勝,長度包括通配符與結束標記;同優先級時 Allow 優先。精確的根目錄 /robots.txt URI 隱式允許訪問。
編碼與通配規則
* 匹配任意序列,末尾 $ 要求路徑與查詢字符串在此結束。UTF-8 規則轉為百分號編碼,十六進制大小寫統一,已編碼的非保留 ASCII 字符在比較時還原;編碼後的保留斜槓不會當成目錄分隔符。希望表示字面符號時使用 %2A、%24。
無效和不支持的行會列入診斷,空 allow/disallow 不阻止路徑;不執行 crawl-delay 和非標準索引指令。嚴格解析不復現各搜索引擎對錯誤 user-agent 和拼錯指令的全部容錯行為,也不是 Google 解析器的直接副本。
判定能說明什麼
允許只表示這份粘貼規則許可訪問,不代表頁面已收錄。Robots 是抓取約定,不是訪問控制。本測試不處理線上狀態碼、重定向、緩存策略、認證或實際部署。
規則最多 500 KiB UTF-8、10,000 行、5,000 條有效規則;目標最多 500 個,每個 URL 編碼後最多 8,192 個字符。匹配複雜度超限時停止,不猜測結果。每個 URL 最多展示 100 條命中規則,但判定仍考慮全部適用規則;診斷展示前 200 條並保留總數。CSV 使用 CRLF,並保護可能作為公式執行的單元格。
常見問題
Allow 表示頁面已收錄嗎?
不是,只代表所提供文本中的抓取規則判定,不是索引或線上訪問檢查。
為什麼完整 User-Agent 會報錯?
該字段只接收由字母、連字符和下劃線組成的爬蟲產品標識,嚴格校驗可避免靜默匹配到另一種爬蟲。
為什麼 URL 無法判定?
可能 URL 格式錯誤,或屬於其他來源站點;應核對協議、主機名和端口。
其他語言
參考資料
我們如何確保結果正確
我們使用以下自動化測試驗證此工具。下方保留測試案例的原始名稱,方便查看實際斷言及重現。
- 驗證方法
- 檢查最長路徑優先、同優先級 Allow、產品 token 分組和通配組行為,並顯示匹配源行。
- 對比依據
- 固定 robots.txt 與 URL 的預期匹配結果。
- 驗證範圍
- 不保證所有爬蟲遵循相同實現或實際遵守規則。
測試原始碼與案例(點選檔名檢視)
-
robots-tools.test.js
- Robots matches the most specific path, exposes source line numbers and allows on equal priority
- Robots exact product-token groups merge case-insensitively and do not inherit wildcard rules
這些測試涵蓋列出的樣本和邊界,不代表所有輸入都已證明正確。往返測試和使用同一依賴套件的檢查,不屬於獨立交叉驗證。