Can GPTBot, OAI-SearchBot, PerplexityBot and the rest read your site? We read robots.txt the way Google documents it, name the line behind each block, and request your home page with each crawler's published User-Agent.
1User-agent: *2Disallow: /admin/34User-agent: GPTBot5User-agent: Google-Extended6Disallow: /78User-agent: OAI-SearchBot9Allow: /1011Sitemap: https://yourdomain.com/sitemap.xml
/robots.txtWe request your robots.txt once and your home page 11 times: once as a normal browser and once as each of the 10 crawlers that publish their User-Agent. It usually takes under 20 seconds.
Grouped the way their companies separate them. 10 publish a full User-Agent, so we also request your page as them.
For each crawler: every group that names it, combined; only if none does, the * group. The longest path wins; on a tie, Allow wins.
Once with a normal browser User-Agent, once with each company's documented one. We compare the HTTP status of each answer.
The X-Robots-Tag header and robots meta tags in the first 64 KB of the browser's answer, as written. A crawler that gets different rules is flagged.
We follow Google's robots.txt spec; other crawlers may read edge cases differently.
The labels the result table uses. Green lets the crawler in, red keeps it out, amber means one check can't tell.
robots.txt allows it and its User-Agent got a 2xx.
robots.txt allows it; we don't request as this crawler.
robots.txt unreadable, but its User-Agent got a 2xx.
The rules that apply ask it not to fetch the page. We show the deciding line.
robots.txt allows it and our browser got a 2xx, but its User-Agent got an error such as 403 or 429, a challenge page or over 3 redirects. Look at your firewall, CDN or app.
The same refusal, with no robots.txt to compare.
Our browser got no 2xx either, or the crawler's request got no answer. A dropped connection can be a firewall or the network.
No robots.txt to judge by, and not requested.
Give GPTBot its own group and the private paths under * stop applying to it. A crawler with no group of its own inherits everything there, Disallow: / included.
nosnippet keeps content from being "used as a direct input for AI Overviews and AI Mode"; none is noindex plus nofollow (source).GoogleA firewall that checks IPs can treat us differently: a 200 doesn't prove the real crawler gets through. Only your server or CDN logs show that.
A rule or firewall setting can treat other paths differently.
A robots meta tag added by a script or placed further down won't show.
User-agent: GPTBot then Disallow: /. That works for crawlers that follow robots.txt; to actually refuse requests you need a firewall or CDN rule. Our robots.txt generator writes the groups.User-agent: GPTBot / Disallow: / (source). Without it, it shows here as a mismatch or a challenge page; with it, also as "Blocked by robots.txt".AI Rankia runs your tracked prompts on up to 7 AI engines with live web search and shows whether they mention or cite you. Its LLM Readiness Audit also renders the page in a headless browser.
Read the three groups separately.OpenAI says each setting "is independent of the others" (source). A red row under training may be your choice; under search, it usually isn't.
A challenge page is a 403, 429 or 503 with Cloudflare's cf-mitigated header or text like "Just a moment".
noindex, none, nosnippet and max-snippet:0, which Google equates with nosnippet. Not max-image-preview:none.
User-agent: *Disallow: /private/ User-agent: GPTBotAllow: //private/Allowed/private/BlockedA challenge from another provider shows only as its HTTP status.
Being allowed to crawl a page doesn't mean an AI product will show or cite it.