robots.txt 規則測試器
測試爬蟲路徑,查看命中的規則
規則內容
貼上 robots.txt 的內容或開啟本機 TXT 檔。全程在瀏覽器內比對,不會連到任何網站抓規則,也不會把你貼的內容送出去。
快捷範例
測試條件
robots.txt 只管自己那一組 scheme、主機與連接埠。測試路徑填完整網址時,來源不同的會標成「不適用」,不會拿這份規則去判別的網站。
scheme + 主機 + 連接埠,例如 https://example.com 或 https://example.com:8443。
每行一筆:完整網址,或以 / 開頭的路徑。網址的 query 會納入比對,fragment(# 之後)不會。
條件已變更,請重新測試
測試結果
篩選
| 路徑 | 判定 | 命中規則 |
|---|
這個篩選條件下沒有結果。
採用最長匹配的規則;長度相同時 Allow 優先。展開一列可以看到其他命中的規則,以及它們為什麼沒有勝出。
使用說明 6
這支工具怎麼判、以及它刻意不替你決定的事
robots.txt 不是存取權限控制,而是提供搜尋引擎爬蟲的指引。仍應透過伺服器端的存取控制來保護敏感內容。
最長的規則取勝,不是第一行命中
RFC 9309 的規則是:所有匹配的規則裡,路徑最長的那一條贏;長度一樣時 Allow 優先。所以 `Disallow: /private/` 與 `Allow: /private/public/` 同時存在時,`/private/public/a` 是允許的 —— 從上往下讀「第一個命中就算」會得到相反的答案。
路徑分大小寫,爬蟲名稱不分
`/File` 與 `/file` 是兩個不同的路徑,規則不會互通。但 User-agent 的比對不分大小寫,`ExampleBot` 與 `examplebot` 是同一個。兩件事的規則不一樣,混在一起就會判錯。
`%2F` 不等於 `/`
比對是在標準要求的路徑 octet 表示上做的,不是先把百分比編碼解開再比。把 `%2F` 解成 `/` 會讓原本不該命中的規則命中 —— 這裡不做那個轉換。
空的 `Disallow:` 不是封鎖全部
空值代表「沒有禁止任何東西」,正好相反。同樣地,沒有任何規則命中時預設是**允許**。這兩點反過來理解的話,整份 robots.txt 的判讀都會相反。
找得到專屬群組就不看 `*`
有 `User-agent: ExampleBot` 的群組時,`*` 那一組完全不參與 —— 不是兩組合併。相同名稱的多個群組才會合併。這一頁會告訴你用的是哪一組。
不連線,也不保證收錄
這一頁不會去抓你的網站,也不會替搜尋引擎決定收不收錄。robots.txt 是給爬蟲的指引,**不是存取權限控制** —— 敏感內容要靠伺服器端的存取控制保護。