You should check your AI bot robots.txt whenever your content policy, training preferences, or crawler exposure changes, and the AI Bot Robots.txt Checker evaluates one pasted file against 32 documented AI and AI-adjacent product tokens using RFC 9309 matching — entirely in your browser, with no upload and no live fetch. The decision to run a check is not the same as the decision to block or allow; it is a pre-deployment review step that turns an opaque file into a per-token report you can compare against each operator's documentation. A check matters whenever a single typo, a case mismatch, or a missing group could expose a path you intended to hide, or block a crawler you wanted to allow. It also matters when the underlying product set has shifted — operators add and rename tokens, and a ruleset written for last year's crawlers may be silently misaligned with today's roster. Because the tool runs locally in your browser, the review is deterministic and reproducible from the same pasted text and the same path, which makes it a clean fit for editorial sign-off and change logs.
The remainder of this guide gives you a decision framework for when the check is worth running, walks through the three operating steps, explains the RFC 9309 matching rules the checker applies, and finishes with the post-check verification work that turns a report into a deployed policy you can trust.

When an AI Bot Robots.txt Check Actually Matters
Not every site needs a weekly AI bot robots.txt audit. The check earns its keep when one of the following is true, and skipping it is reasonable only when none of them apply to your current situation.
- You publish original content that AI assistants could cite or train on. If you care whether GPTBot, ClaudeBot, CCBot, or a similar crawler is allowed in, a per-token review tells you exactly what your file currently requests.
- You have changed your training-data or attribution policy. Adding, removing, or tightening a block is exactly the moment a typo or a stray wildcard can undo the change.
- Your site structure changed. New sections, renamed directories, or moved sitemates often leave stale Allow or Disallow patterns behind.
- An operator renamed or added a product token. Crawler products change over time, and a ruleset written against last year's documentation may silently misbehave against today's products.
- You are about to deploy a new robots.txt for the first time, or you are inheriting one. A check is the fastest way to read the file as a protocol parser, rather than as prose.
If none of those apply — your site is static, your policy is fixed, and you have a recent verified report on file — running the check is overhead rather than value. The table below summarizes the triggers and the kind of output a check produces.
| Trigger | Why a check helps | What the report shows |
|---|---|---|
| New content policy or training preference | Catches a missing or mistyped group before deployment | Allowed or blocked per token for the chosen path |
| Site restructure or rename | Surfaces stale Disallow patterns aimed at the old URLs | Per-token verdict against the new path |
| Operator token renamed or added | Confirms whether existing groups still target the new product | Match status for each of the 32 tokens |
| First-time deployment or inherited file | Reads the file as a parser, not as prose | Full 32-row table with operator and source labels |
What the Checker Evaluates — and What It Deliberately Skips
The AI Bot Robots.txt Checker parses at most 512,000 UTF-8 bytes of pasted robots.txt into RFC 9309 user-agent groups, merges duplicate product-token groups case-insensitively, and then evaluates the same entered path against a fixed 32-entry table of AI crawlers, assistants, training-control tokens, and AI-adjacent search products. Each row in the result is labeled with the operator and a source status, so rows backed by operator documentation are visibly distinct from rows sourced from a supplemental directory. For cross-referencing major products, the tool draws on Cloudflare's maintained AI crawler reference, while supplemental directory tokens are labeled accordingly rather than presented as operator-first-party verified.
Sitemap and Crawl-delay lines do not affect the access-decision output, and the tool does not fetch a website, upload the file, or contact a crawler operator. Two safety caps are worth knowing before you paste a very large file. The input is limited to 500 KiB of UTF-8, which mirrors the minimum size RFC 9309 requires parsers to handle, and the checker additionally caps the number of non-empty access rules at 5,000 with an aggregate matching-work limit of 20,000,000 operations so an adversarial long path combined with a large rule set cannot freeze the main thread. A file within the byte limit can still be rejected by the work cap, which is documented behavior rather than a parsing bug.
Run the Check in Your Browser
Once you have decided the check is worth running, the operating steps are short and match the contract the checker is built against.
- Paste the exact robots.txt text you want to review and keep it under the 500 KiB UTF-8 limit. Paste the production file, not a paraphrase, so the report reflects what you actually plan to deploy.
- Enter a case-sensitive URL path beginning with a slash, then run the check. Include a query string only when that is part of the crawler request you want to model, since matching is case-sensitive and starts at the first character.
- Review every matched rule and verify critical product tokens against current operator documentation before deployment. Treat the report as a pre-publication sanity check, not as proof of enforcement.
How RFC 9309 Matching Decides Each Result
The checker applies the core rules standardized by RFC 9309, and understanding them is what turns a 32-row table into a defensible decision. The rules below are the protocol behavior the tool implements; every row in the report follows them.
| Rule | Behavior |
|---|---|
| User-agent product-token matching | Case-insensitive against the User-agent value |
| Specific group vs. wildcard group | A matching product-token group takes precedence; the wildcard group applies only when no specific group matches |
| Path pattern matching | Compared against the path from its beginning, with case sensitivity |
| Wildcard and end-anchor | * matches any sequence of characters; a trailing $ anchors the pattern to the end of the path |
| Tie-break between Allow and Disallow | The longest matching pattern wins; on equal length, Allow wins |
| Duplicate groups | When multiple groups target the same product token, their rules are combined |
| Empty Disallow value | Does not block anything |
| No matching rule | If no applicable Allow or Disallow rule matches, access is reported as allowed |
| Comments and non-directive lines | Removed before rules are interpreted; lines that are not User-agent, Allow, or Disallow do not affect the result |
The practical consequence is that a Disallow: /private rule will block /Private if the crawler requests that exact casing, because matching is case-sensitive for paths, so /Private and /private can produce different results. It also means a long, specific Allow pattern can rescue a path inside a broader Disallow — for example, Disallow: /docs/ together with Allow: /docs/public/ will leave /docs/public/index.html accessible, because the Allow pattern is longer. For more on what the result does and does not prove at runtime, the guide on whether a robots.txt block actually stops AI crawlers is a useful companion read.
Read the Report and Spot Common Pitfalls
An allowed result means only that the pasted rules do not request a block for the selected path under the implemented protocol logic. It does not prove that the operator will crawl, index, cite, train on, or display the page. A blocked result likewise does not prove enforcement or removal from any index. Search indexing, snippet controls, training preferences, and live network blocking are separate controls, and the table you are reading is a parser view of the file, not a guarantee about real-world behavior. Treat the report as one input into a deployment decision, not as the decision itself.
A few pitfalls are worth flagging while you read the rows:
- Empty Disallow does not block. A line that reads Disallow: with nothing after it is a no-op, which sometimes appears by accident after a delete.
- Query strings must be modeled intentionally. If the crawler request you care about includes a query string, paste the path with the query string in the checker; otherwise the match will be evaluated against the path only.
- Sitemap and Crawl-delay are out of scope for this report. They may matter to a particular crawler, but they are outside the access-decision table, so do not infer protection or exposure from their presence or absence here.
- Source status labels matter. The table labels each operator, purpose category, and source status, and supplemental directory-sourced rows are labeled rather than presented as operator-first-party verified.
After the Check: Verify and Monitor
The check is a pre-deployment review, and the steps that follow are what turn a report into a deployed policy. Once you are satisfied with the rules, publish the file at the canonical location, then fetch the live /robots.txt from the exact scheme and host to confirm the response is plain text and returns successfully. Because the checker does not fetch URLs, it cannot detect redirects, CDN overrides, syntax served only to certain clients, incorrect host scope, caching delays, or an unreachable file, so the live fetch is the only way to confirm what is actually deployed. From there, verify behavior in available operator tools or server logs, and remember that publicly listing a path can reveal it, so do not lean on robots.txt as proof that a sensitive URL is hidden. For sites that have not yet authored the file, the practical guide to creating a robots.txt file covers the writing side before you paste it into the checker.
Finally, schedule a re-check. Crawler products change over time, and a quarterly review is a reasonable cadence; if you publish at high volume or change policy often, shorten the interval. The goal is not to run the tool often for its own sake — it is to keep the report aligned with the policy you actually intend.