Free AEO Checker: Test If ChatGPT, Perplexity & Claude Can Quote Your Page

Free AEO checker that tests whether ChatGPT, Perplexity and Claude can reach and quote your page. Includes curl commands to verify every result by hand.

Short answer

An AEO checker is a tool that tests whether AI assistants like ChatGPT, Perplexity and Claude can reach, read and quote a page. You can run ours free by pasting a URL.

Test your own siteSee which AI crawlers your site lets in and what else stops them quoting you.
Or see what a report looks like first: example AI readiness reports for well-known sites, re-checked daily.

The checks that matter are concrete: robots.txt rules for each AI crawler, whether the server or firewall blocks those crawlers, whether the content is in the HTML without JavaScript, and whether the page states its answer near the top. Surfacepath's free AI readiness check automates the robots.txt, raw HTML, indexing and structured data checks on any URL, and you do the server response and answer checks by hand.

Here's the moment that usually sends someone looking for an AEO checker. You ask ChatGPT or Perplexity a question your page answers better than anyone else's. The reply cites a competitor, a forum thread and a site you've never heard of. Your page isn't there, and you want to know why.

Most of the time the reason is boring and fixable. The crawler was blocked. Or it arrived and found an empty shell of a page. Or it read the page and couldn't pull a clean sentence out of it. A good AEO checker tells you which of those happened. A bad one gives you a score out of 100 and a list of vague tips. I'd judge any tool, ours included, by one rule: every result it shows should be something you can verify by hand.

What should an AEO checker test?#

AEO, or answer engine optimization, is the work of getting chosen as the source for an AI answer. Before any assistant can choose you, a chain of things has to go right, and they happen in order.

From a question to a citation

A break early in the chain makes everything after it irrelevant. So a checker that skips the first three steps and grades your headings is grading the part that matters least.

Can the AI crawlers get in?#

Start with robots.txt, because each AI company runs more than one bot and they do different jobs. OpenAI uses GPTBot to collect training data and OAI-SearchBot to find pages for ChatGPT search. Anthropic splits ClaudeBot (training) from Claude-SearchBot (search), as its support page describes. Perplexity crawls with PerplexityBot, which its docs say is meant to surface sites in Perplexity's search results. Google is the odd one out. AI Overviews and AI Mode use ordinary Googlebot, and the Google-Extended token is a separate control for Gemini, not the thing that decides whether you appear in Search.

Training crawlers vs search crawlers

The mistake I see most is a robots.txt that blocks everything AI-shaped in one go, usually written when "AI crawler" meant training. It blocks the search bots too, which means ChatGPT search and Claude can't cite you. If you want to stay out of training but stay in the answers, that's a separate rule for each bot, and I've written up how to block AI training but keep AI search. The full list of names is in our AI crawlers list.

The second mistake is subtler. Under the robots.txt standard (RFC 9309), a crawler follows the one user-agent group that matches it most specifically. Add a group for GPTBot and it ignores everything under User-agent: *, so rules you thought applied to every bot no longer apply to that one. A checker should read your file the way each bot would, group by group, instead of just searching for the word Disallow.

Then there's a layer robots.txt can't see. CDNs and firewalls can reject AI user agents before the file is ever read (Cloudflare, for example, offers settings for blocking AI bots). Your robots.txt can say Allow and the bot still gets a 403. So check the response, not just the file.

Can they read the page without JavaScript?#

Many AI crawlers fetch the HTML and may not run JavaScript. If your article body, product details or pricing table is rendered in the browser, the crawler sees a header, a footer and nothing in between. Google renders JavaScript for Search, which is how a page can rank well on Google and still be invisible to some assistants. There's more on this in can AI crawlers see JavaScript content?, and if you build with Next.js, server rendering or static generation fixes it.

You can test all of this from a terminal in a minute:

# What does robots.txt say?
curl -s https://example.com/robots.txt

# Does the server let an AI user agent in? You want 200, not 403.
curl -s -o /dev/null -w "%{http_code}\n" -A "GPTBot" https://example.com/your-page

# Is your key sentence in the raw HTML? 0 means the crawler can't see it.
curl -s -A "GPTBot" https://example.com/your-page | grep -c "a sentence from your page"

Treat a 403 from the second command as a lead, not proof. Real crawlers send a longer user agent string and some firewalls verify bots by IP address, so a rule might block your fake GPTBot and still let the real one through. It's still the fastest way to find out whether something is in the way.

Is there an answer worth quoting?#

Once a crawler can read the page, the question becomes whether there's a sentence worth lifting. Assistants tend to quote passages that stand on their own: a direct answer near the top, a definition that doesn't lean on the paragraph before it, a number with its source. A page that opens with three paragraphs of background makes the assistant do the work, and it usually picks a page that didn't. I go through the pattern in writing pages AI assistants can quote.

This is where checkers overreach. A tool can tell you the page has one H1, a short first paragraph and FAQ markup. It can't tell you whether your answer is the best one on the web. So I treat content scores as a prompt to reread the page, not as a verdict.

Structured data and llms.txt#

Structured data tells machines what a page is (an article, a product, a set of questions and answers). It's cheap to add and a checker should validate it, though I wouldn't expect it to win citations on its own. For Next.js sites there's a walkthrough in structured data for AI answers in Next.js.

llms.txt is a proposed file that lists your key pages for language models. It costs little to add. I haven't seen the major assistants commit to reading it, so I treat it as optional and would never let a checker mark a site as failing because it's missing.

A passing check is not a citation#

A structural check tells you that you can be cited. It can't tell you that you are. Tools that test robots.txt, rendering and markup are structure checkers, and they answer whether the door is open. Citation trackers answer a different question, which is whether assistants actually name your domain when a buyer asks. The two get confused because both are sold as an AEO checker.

You can run a small citation test by hand with no tool at all. Write five questions a buyer would ask before choosing what you sell, phrased the way a person would type them and without your brand name in them. Ask each one in ChatGPT, Perplexity and Gemini, which gives you fifteen answers. For each answer, note the domains that appear as sources or links, and whether yours is one of them.

Answers change between runs, so treat one miss as a hint and repeat the test a week later. If you pass the structural check but never appear, the problem is usually the content, and the competitors who do appear show you what a quotable answer looks like.

What to look for in an AEO checker tool#

Every result should map to something you can confirm yourself. These are the checks I'd want, and how to verify each one without any tool. The Surfacepath report automates robots.txt per bot, raw HTML, indexing directives and structured data. Server response for AI user agents and answer near the top are by-hand checks:

Check What a failure looks like How to confirm by hand
robots.txt per bot OAI-SearchBot or Claude-SearchBot disallowed Read the group that matches each bot
Server response 403 or a challenge page for AI user agents curl -A and check the status code
Raw HTML Body text missing without JavaScript curl the page and grep for a sentence
Indexing directives noindex or nosnippet on the page Check the meta robots tag and X-Robots-Tag header
Answer near the top First paragraph is background, not an answer Read the first 100 words
Structured data Missing or invalid JSON-LD Run the URL through Google's Rich Results Test

The nosnippet row catches people out. It keeps your text out of Google's AI Overviews as well as regular snippets, so a directive added years ago for a different reason can quietly remove you from AI answers. If a tool can't show you which row failed and why, I'd keep looking.

Running the Surfacepath check#

Paste a URL into the free report on our homepage and it runs nine weighted checks. The heaviest cover whether AI crawlers can reach the page (robots.txt per bot), whether the content is readable without JavaScript, whether the page can be indexed and quoted, whether structured data says what the page is, and whether the headings match the questions people ask. The other four cover visible dates and an author, the title, description and canonical, a sitemap, and llms.txt. The methodology page lists all nine with their weights, so you can redo any of them by hand.

Two limits are worth knowing. The report makes one request with its own user agent, and if that gets a 401, 403, 429 or 503 it shows an 'Automated visitors get through' failure and scores only robots.txt, the sitemap and llms.txt. It doesn't send an AI user agent, so use the curl -A test above for that. It also doesn't score answer quality, so reread your first 100 words yourself.

You can see real reports before trying your own: here are the ones for nextjs.org, vercel.com and wikipedia.org.

If a report gets something wrong about your site, tell us and we'll fix it.

Looking for the EU customs AEO check?#

AEO also stands for Authorised Economic Operator, an EU customs status for trusted traders. If that's what you meant by "aeo checker eu", look on the European Commission's taxation and customs website, which covers the AEO programme. This page is about answer engines.

Questions

Is there a free AEO checker?

Yes. Surfacepath's AI readiness check is free and runs on any public URL. You can also run the core checks yourself with curl: fetch robots.txt, request the page with an AI user agent, and search the raw HTML for your key sentence.

Is AEO the same as GEO?

They overlap almost completely. GEO (generative engine optimization) and AEO both describe getting content used and cited in AI-generated answers, and the technical checks are the same for both.

Does blocking GPTBot remove me from ChatGPT search?

No. GPTBot collects training data, while OAI-SearchBot finds pages for ChatGPT search. You can block one and allow the other with separate robots.txt groups.

Does blocking AI crawlers hurt my Google rankings?

Blocking Google-Extended doesn't affect Google Search or AI Overviews, because those use Googlebot. Google-Extended is a separate token for Gemini, not the one that decides whether you appear in Search.

Related guides