Free tool · no email

Does your site answer AI crawlers with a 200 or a 403?

Type a domain. I fetch it five times — once as a normal browser, then as GPTBot, OAI-SearchBot, PerplexityBot and ClaudeBot — and show you the status code each one sent back. Browser 200, GPTBot 403 is the case worth catching: that site cannot be cited by ChatGPT, and its robots.txt looks spotless the whole time.

  • Tests the four crawlers that feed ChatGPT, Perplexity and Claude answers.
  • Reads robots.txt and fetches live, then shows where the two disagree — the block hides in that gap.
  • Free, no signup, about ten seconds. The result URL is shareable and re-runs itself for whoever opens it.

Check any domain

How to read your result

200 or 301 means that crawler got the page. Nothing to fix for that one. 403 or 401 while the browser control gets 200 is the interesting failure: something at the edge is refusing a User-Agent, and no amount of editing robots.txt will change it. 429 or 503 means rate-limited or shed — the page was not served on that attempt, and nothing guarantees a retry. ERR means the request never finished: dead DNS, a TLS error, or slower than my eight-second timeout. Whichever you get, confirm it from your own network before you escalate: curl -s -D - -o /dev/null -A GPTBot https://yourdomain/ — same code from a different IP, and the problem is your edge, not my checker.

A clean robots.txt proves you asked for crawlers. It does not prove they get in. robots.txt is advisory, read by well-behaved bots after they reach your server. The CDN decides whether they reach it at all. In July 2026 I ran this across 72 SaaS domains: writer.com, whose entire product is AI writing, answers 403 to GPTBot, ClaudeBot and PerplexityBot while its robots.txt allows all three, and OAI-SearchBot walks straight in. Not a policy. A whitelist someone left half-finished. The defaults keep drifting the same way — from September 15, 2026 Cloudflare blocks Training and Agent crawlers by default on ad-monetized pages (Cloudflare blog, July 1, 2026). Your marketing site probably carries no ads, so that particular switch misses you. The direction is the point: somebody else picks the defaults for the layer that decides who reads your docs. Which makes this a quarterly check, not a one-off. Came back clean? Access is gate one of six, and the other five are in the free six-step checklist and the method articles.

Frequently asked questions

My robots.txt allows AI bots — why would they still be blocked?
Because robots.txt and your CDN are separate systems that never talk. robots.txt is a text file a well-behaved crawler reads after it reaches your server. Your WAF answers before your app sees the request at all. A rule written to stop scrapers in 2024 matches GPTBot in 2026, and nothing in robots.txt overrules it. writer.com is the textbook case: robots.txt says Allow, the edge says 403.
What exactly does this checker do?
Six requests. It GETs your homepage once with a normal Chrome User-Agent as the control, then once each as GPTBot, OAI-SearchBot, PerplexityBot and ClaudeBot, and pulls robots.txt to parse the rules for those four tokens. Status codes only — the response body is discarded unread, which is also what keeps this endpoint useless as a proxy. Eight-second timeout per request, eight checks a minute per IP.
Can the result be wrong?
Yes, in both directions, and you should know how. The fetch runs from a data-centre IP with a spoofed User-Agent. A WAF that verifies crawlers against OpenAI's published IP ranges, or fingerprints the TLS handshake, can hand my request a 403 while the real GPTBot sails through. It can also wave a spoofed User-Agent past a rule that would have caught the actual bot. So treat a block here as a strong lead rather than a verdict, and go read your CDN's bot rules. Treat a clean result as necessary, not sufficient.
What doesn't this check?
Plenty, on purpose. Four crawler tokens — a full audit fetches seven and reads robots rules for eighteen, including ChatGPT-User, Claude-SearchBot, Perplexity-User, Google-Extended, CCBot and Bytespider. One page: your homepage. If your CDN blocks /docs and passes /, this misses it. Status codes only, so a 200 that returns an empty JavaScript shell still counts as open here, even though a crawler that doesn't execute JS gets nothing from it. And the real gap: this tells you whether an engine can reach you. It never tells you whether it cites you, or which competitor it names instead. That answer takes a citation scan across the prompts your buyers actually type, which is the audit, not the tool.
Does this cost anything or take my email?
No and no. Results are free, ungated and land without a signup — that's why the tool sits above the copy instead of behind a form. If the check finds a block, an email field appears under the result: leave an address and I'll send the specific fix for your stack (which layer refuses which crawler, and the config change that opens it), then re-check weekly and write only when the status changes. No sequence, no newsletter.

Got a 403? That's the cheap problem.

A blocked crawler is a config change you can ship this week. The expensive question is the one this page cannot answer: when your buyer asks ChatGPT which tool to use, whose name comes back? That takes a citation scan across the buying-intent prompts in your category, plus the full access check — seven crawlers, every page, not just the homepage. From $1,500 fixed, or free for the 3 founding audits still open, paid for with a published case study.