AEO Competitor Comparison: AI Visibility Side-by-Side
This example shows the AEO Checker in competitor comparison mode — your SaaS product page (78/100) versus a direct competitor (64/100). The report compares citation probability for each AI engine, identifies the specific schema types the competitor has that you are missing, and reveals 4 keywords they use that you do not.
| Engine | Your Site | Competitor | Gap |
|---|---|---|---|
| 🤖 ChatGPT (GPTBot) | 87% ✅ Confirmed 200 |
71% ✅ Confirmed 200 |
+16% you |
| 🔍 Perplexity | 82% ✅ Confirmed 200 |
88% ✅ Confirmed 200 |
+6% competitor |
| 🔎 Google AI Overviews | 91% ✅ Confirmed 200 |
74% ✅ Confirmed 200 |
+17% you |
| 💠 Microsoft Copilot | 84% ✅ Confirmed 200 |
81% ✅ Confirmed 200 |
+3% you |
| 🤖 Claude (Anthropic) | 47% 🚫 403 blocked |
79% ✅ Confirmed 200 |
+32% competitor |
| Signal | Your Site | Competitor |
|---|---|---|
| AEO Score | 78/100 ✓ | 64/100 |
| Schema Types | WebSite, Organization, HowTo ✓ | WebSite, Organization, FAQPage |
| llms.txt | ❌ Missing | ✅ Present + valid |
| FAQPage Schema | ❌ Missing | ✅ 7 Q&A pairs |
| Meta Description | 110 chars ⚠ | 158 chars ✓ |
| Sitemap Health | 94/100 ✓ | 71/100 |
| Schema Density | 14% | 22% |
These AI-detected topics appear prominently on the competitor page but are absent from yours. Adding FAQ answers covering these topics could shift citation probability in your favour.
"AI-powered task automation" — competitor mentions 8 times
Competitor dedicates a full section to AI automation features. Consider adding a "How does AI automation work in ExampleSaaS?" FAQ entry with a direct answer.
"project management API" — competitor mentions 6 times
API capabilities are featured prominently — likely catching developer queries. If you have an API, add a dedicated FAQ section and link to documentation.
"SOC 2 compliance" — competitor mentions 4 times
Security certifications are a strong trust signal for enterprise queries. If you have SOC 2 or similar certifications, add them explicitly to your features page.
"free forever plan" — competitor mentions 3 times
Competitor explicitly promotes a free tier. If you offer a free plan, make the term "free" more prominent — AI engines surface this for "free project management software" queries.
Every number in this report falls into one of two categories, and conflating them is the most common way teams misread an AEO audit. The first category is observable fact. Either ClaudeBot receives an HTTP 200 from your origin or it receives a 403. Either an llms.txt file exists at the root or it does not. Either the FAQ answers are present in the served HTML or they are assembled by JavaScript after load. These are binary, verifiable, and reproducible by anyone with curl.
The second category is inference. A "citation probability" of 87% for ChatGPT is a model built on the first category — it is a weighted expression of how many of the preconditions for retrieval your page satisfies relative to a comparison set. It is not a measurement of how often ChatGPT actually cites you, because no vendor has access to the retrieval logic inside any assistant, and none of the assistant operators publishes one. Nobody outside OpenAI, Anthropic, Google, Microsoft or Perplexity can tell you what determines a citation.
This distinction is what makes the comparison useful rather than decorative. A 14-point score gap is a summary. The ClaudeBot 403 is a fact, it is actionable this afternoon, and it is the single line in this report that would change reality if you fixed it. Read the facts first and the scores second.
A 403 to a named crawler is not a ranking problem or a content problem. It is an access problem, and it means one assistant's retrieval path to your page does not exist. The competitor returns 200 to the same request. Everything else in this report is a matter of degree; this one is a matter of presence or absence.
The cause is almost never deliberate. It is a WAF rule, a bot-management ruleset, or a rate-limiting policy that matches on a substring of the user-agent — commonly the literal token bot, or a vendor name such as anthropic — and drops or challenges the request before it ever reaches the application. Nobody decided to block Claude. Somebody enabled a managed bot-protection ruleset, and the default behaviour of that ruleset is to treat unfamiliar automated clients as hostile.
Diagnose it in the right order. Check robots.txt first, because a User-agent disallow is the one cause you can fix in thirty seconds. If robots.txt is clean, request the page as the crawler and observe what comes back — a 403 with a challenge page, a 429, or a connection reset all point at different layers. If the request never appears in your application access logs at all, the block is upstream of the origin, which means a CDN or WAF rule and not your web server config.
One caution about the word "reclaim". Restoring crawler access restores the possibility of retrieval. It does not restore a lost ranking, because there is no ranking to lose: assistants are not obliged to cite you and there is no queue you rejoin. What you get back is eligibility, which is a precondition and not a promise.
OpenAI, training corpus
GPTBot fetches content used in model training. Blocking it does not remove you from ChatGPT's answers, because ChatGPT's browsing and citation path uses different agents. Blocking it is a legitimate content-licensing decision; it is not an SEO decision, and it should not be framed as one.
OpenAI, search and citation
This is the agent associated with ChatGPT's search-and-cite behaviour. If you want to appear as a linked source in ChatGPT answers while still declining to be used for training, this is the one that must be allowed and GPTBot is the one you may choose to disallow. Conflating the two is the single most common error in AEO advice.
Anthropic
Anthropic's web crawler. Your origin currently answers it with a 403; the competitor answers with a 200. This is the gap that produced the 32-point spread on the Claude row above.
Perplexity
Perplexity's crawler, associated with its cited-answer product. Both sites currently allow it, and the competitor scores higher here — a difference driven by content and structure rather than access.
Gemini training only
Google-Extended is a control over whether your content is used to train Gemini. It has no effect on Google Search, on Googlebot's crawling, or on whether you appear in AI Overviews — those are governed by ordinary Googlebot access and ordinary Search eligibility. Disallowing Google-Extended costs you nothing in Search; believing otherwise is why some sites block it and then panic.
The lesson from this table is that "allow AI bots" and "block AI bots" are both incoherent instructions. The question is always which agent, for which purpose, and what you are trading away.
The signal table shows the competitor carrying FAQPage schema with seven question-and-answer pairs while your page carries none. It is worth being precise about what that difference does and does not do, because the usual framing is wrong.
It does not win them a rich result. Google restricted FAQ rich results to recognised government and health sites in 2023, and removed HowTo rich results entirely — which is also why the HowTo schema on your page, listed above as a strength, no longer produces anything in Search. It remains valid markup and it costs nothing to keep, but it is inert as a SERP enhancement and should not be counted as an advantage.
What FAQPage markup does buy is unambiguous machine-readable question-and-answer structure in the served HTML. An assistant summarising a features page has to work out which sentence answers which question. Explicit Question and acceptedAnswer nodes remove that guesswork. There is no verified evidence that assistants preferentially cite pages carrying more schema — the honest claim is narrower, that retrieval systems parse rather than render, so markup in the initial HTML response reaches them and disambiguates what they read.
The corollary matters more than the markup: the schema is worthless if the answers are not there. A page whose FAQ answers exist only inside JSON-LD, or only inside a collapsed accordion rendered client-side, has given a parser structure without substance. Write the answers as visible prose that a human would accept as complete, then mirror them into the schema. That order is not optional — structured data must describe what is on the page.
The four topics flagged above are absent from your page and prominent on the competitor's. The instinct is to add the words. That is keyword-density thinking, and density is not a ranking factor for Google and has no known role in assistant retrieval either. Mentioning "SOC 2 compliance" four times without holding SOC 2 certification produces a page that is both useless and untrue.
The correct reading is that each of these topics is a question a buyer asked somebody, and the competitor answered it on the page while you did not. "AI-powered task automation" is not a keyword, it is a capability a prospect wants to confirm before booking a demo. "Project management API" is a developer checking whether integration is possible at all. "Free forever plan" is a pricing objection being resolved before the pricing page is ever loaded.
So the action is: for each topic you can honestly claim, write a direct, self-contained answer in visible prose — the kind that stands alone if lifted out of the page — and mirror it into the FAQPage schema. For each topic you cannot honestly claim, do nothing. A gap that reflects reality is not a defect, and closing it with words rather than facts is how a features page stops being trustworthy.
Unblock ClaudeBot at the WAF
A binary fix to a binary problem, achievable today, and the only item on this list that changes whether an entire assistant can read the page at all.
Write seven real FAQ answers, then mark them up
Visible prose first, FAQPage schema second. Expect no rich result; expect a page that answers the questions a buyer actually has, in a form a parser can lift cleanly.
Publish an llms.txt file
Cheap, and it is a curated map of your most useful pages in plain Markdown. Adoption by assistant operators is not universal and its effect is unproven, so treat it as low-cost hygiene rather than a lever.
Extend the meta description past 110 characters
Worth doing for the snippet a human reads. Note that click-through rate is not a direct ranking signal, so do not expect the rewrite to move positions.
Leave the HowTo schema alone
It earns nothing now that HowTo rich results are gone, but it is valid, it is harmless, and removing it is work with no return. Just stop counting it as a win.
How does the AEO competitor comparison work?
Enter your URL and a competitor URL. The AEO Checker runs full independent audits on both pages — live bot access checks, schema analysis, page signals, llms.txt detection — then presents both results side by side with a head-to-head verdict. You can see exactly what the competitor is doing for AI visibility that you are not.
What is the "Steal Their Keywords" feature?
The Steal Their Keywords section shows AI-detected topics and keywords that appear prominently on the competitor page but not on yours. These are content gaps — topics where the competitor is likely to be cited by AI engines but you are not. Adding these topics to your page as FAQ answers or dedicated sections can improve your citation probability.
Does the competitor get notified when I run the comparison?
No. The AEO Checker makes standard HTTP requests identical to any normal visitor or crawler. The competitor site receives an anonymous request — no different from Googlebot visiting the page. They cannot identify that aiwebpageseo ran the audit.
Is a higher AEO score the same as being cited more often by AI engines?
No, and treating it that way will mislead you. The score is a composite of things that are directly observable — whether each named crawler receives an HTTP 200, whether structured data is present and parses, whether an llms.txt file exists, whether the page's substance is in the served HTML rather than assembled client-side. Those are preconditions for being retrievable. None of them is a published ranking or citation factor for any assistant, and no vendor has access to the retrieval logic of ChatGPT, Perplexity, Copilot or Google's AI Overviews. Read the score as a readiness checklist: a low score reliably tells you something is broken, but a high score does not entitle you to citations.
Does having denser structured data than a competitor make an AI engine prefer your page?
There is no verified evidence for that claim, and the schema density row in this report is descriptive rather than a target to beat. The defensible version is narrower: retrieval systems generally parse the HTML they are served rather than rendering it like a browser, so JSON-LD present in the initial response reaches them, and it disambiguates — it states unambiguously that a string is a price, a date or an author. That is a clarity benefit. It is not a volume game, and adding schema types the visible page does not support is a structured data policy violation, not an optimisation.
Should I copy the competitor's FAQPage schema to win a rich result?
You should add it, but not for that reason. Google restricted FAQ rich results to recognised government and health sites in 2023, so a SaaS features page will not get FAQ dropdowns in the SERP no matter how well the markup is written. The reason to add FAQPage anyway is different and still worth the effort: it makes the questions and answers on the page machine-readable, it forces you to answer the questions your buyers actually ask in plain, quotable prose, and that prose is what an assistant can lift when it summarises your page. The schema is the packaging; the answers are the product.
Why does blocking ClaudeBot matter if we still allow GPTBot?
Because different crawlers do different jobs, and blanket assumptions about them are usually wrong. Anthropic's ClaudeBot is the crawler used to fetch web content for Claude; OpenAI runs GPTBot for training and a separate OAI-SearchBot for the search-and-cite path, so allowing one does not imply allowing the other. Google-Extended governs Gemini training only and has no effect on Google Search or on how a page is treated by Googlebot. The practical consequence is that a WAF rule matching on the string "bot" or "anthropic" can quietly remove you from one assistant's retrievable corpus while leaving the others untouched, which is exactly the asymmetry this comparison exposes: the competitor is reachable by Anthropic's crawler and you are not.
Related Content Tool Demos
Run AEO Checker — Competitor Comparison on Your Own Site
Get your real report with live data, specific issues and actionable improvements.