AI Bot & LLM Crawler Access Checker
How to use the AI bot access checker
Back to the toolOne page goes in; every AI crawler we track is measured against it twice, in two independent ways.
- 01
Enter the page you want AI crawlers to reach
One page per run: the comparison here is between bots, not between URLs. Pick the exact page you care about, because robots.txt rules are matched against its path. A rule that blocks /blog/ will not show up if you test the homepage, and a CDN rule keyed on a path behaves the same way.
- 02
Run the check across all 22 bots
There is no bot picker on purpose. The Content column measures each bot against the other 21 in the same run, so a partial run would take away the yardstick that makes the column mean anything. Every bot is fetched in turn, so a row that never got its turn can be retried on its own.
- 03
Read both verdicts side by side
robots.txt is what you declared; HTTP status is what your server actually did. Rows where the two agree are routine. The rows worth your attention are the ones where they disagree, and those carry a warning icon: allowed by the file but refused by the server, or blocked by the file yet served in full.
How to read the AI crawler access report
A row reads left to right: which bot, what robots.txt says about it, and what the server actually did. Every request is ours, sent with that bot’s User-Agent string; the vendor’s own crawler may still behave differently.
Result table columns
- Resolved URL
- Above the table, not in it. This is the address we measured, fetched once with our own identifying User-Agent: the control group every bot row is compared against.
- Vendor
- Who runs the crawler. Rows are grouped by vendor, so one company reads as one block.
- Bot
- The token you would write after User-agent: in robots.txt. A bot marked unverified UA has no published User-Agent string at all; one marked token as UA has only this token, which is what we send.
- Purpose
- What the crawler collects for: training a model, building a search index, fetching a page a person just asked about, or checking an ad landing page.
- robots.txt
- Layer one, computed from your file: does your robots.txt allow this token on this path? Hover the verdict to see which rule matched. The column disappears when the site has no robots.txt, and the line above the table says so.
- HTTP status
- Layer two, measured for real: what your server returned to a request carrying that bot User-Agent. This is the layer robots.txt cannot tell you about.
- Content
- How many visible characters that bot received. The yardstick is the other bots in the same run, so a number well under the rest means a stripped page, not a language difference.
- Result
- Whether the measurement itself finished. It is a badge, not a button: the retry for a failed row lives in the next column.
- Actions
- One button per row that needs one: a bot that timed out, or never got its turn, gets a retry that re-measures only that row. Rows that finished cleanly have nothing here.
Warning icon reference
- Allowed, but a 4xx or 5xx
- Your robots.txt invites the bot in and something in front of your server turns it away, usually a CDN or WAF bot rule you did not write. This is the finding the tool exists for.
- Blocked, but a 2xx
- The opposite gap: robots.txt says no and the page is served anyway. Nothing enforces robots.txt, so any crawler that ignores it walks off with the full page.
- Far less content
- The status looks healthy but the body is a fraction of what other bots got. That is usually a challenge page or a stripped variant, and a status column alone never shows it.
- unverified UA
- The vendor publishes no User-Agent string, so ours comes from access logs and may be out of date. Read that row with less confidence than the rest.
- token as UA
- The vendor publishes the robots.txt token but no User-Agent header, so the request we send carries the token itself. Real traffic from that crawler may look different, so read the row as indicative rather than exact.
Status code reference
- 200 OK
- The bot got the page. Compare the Content column before calling it a win.
- 403 Forbidden
- Refused. Almost always a bot rule rather than a broken page: the same URL usually opens fine in your browser.
- 404 Not Found
- Nothing at that address for this visitor. If other bots got 200 for the same URL, the difference is being made on purpose.
- 429 Too Many Requests
- Rate limited. Your site is throttling, not blocking: retry that row rather than reading it as a policy.