The GEO audit: every check explained
The GEO audit checks how ready a site is to be read, understood and quoted by AI engines. It reads your site the way most AI crawlers do, without running JavaScript, runs 26 checks in five groups, and gives every failed check a concrete fix.
What does the audit read?
- Your home page, as your server sends it, with no JavaScript run.
/robots.txt, your XML sitemap (from robots.txt or/sitemap.xml) and/llms.txt.- Up to eight more pages, picked from your links and sitemap: your pricing page, your about page, comparison pages and articles.
- Your home page again, requested with the user agents of AI crawlers, to see whether your firewall treats them differently.
That's about 20 requests, made to public addresses only. The audit reads nothing behind a login.
How is the score calculated?
Each check has a weight. A pass earns its full weight, a warning half, a failure nothing. Checks marked "Info" and checks that didn't apply (for example, author names on a site with no articles) aren't scored. The score is the share of available weight your site earned, from 0 to 100, and each group gets its own score the same way.
The score always counts every check, whichever plan you're on, so it's the same number for everyone. What a plan adds is the detail and the fix.
Which checks can I see?
| Free check | Free account | Paid plans | |
|---|---|---|---|
| Checks with results and fixes | 11 | 22 | 26 |
Results above your level are reduced to counts on our server ("6 more recommendations with a free account"), so the details never reach the browser.
What does each check look at?
Access: can AI engines reach your site?
If a crawler is blocked by robots.txt, a firewall or a noindex tag, nothing else matters: the engine can't read the page, so it can't quote or cite it.
| Check | What it looks at | Weight | Shown on |
|---|---|---|---|
| AI search crawlers allowed in robots.txt | robots.txt lets the crawlers behind AI answers read your pages: Googlebot, Bingbot, OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User, Applebot and DuckAssistBot. A blocked crawler means that engine cannot read or cite you. | 10 | Free check |
| No noindex or nosnippet on key pages | No noindex, nosnippet, max-snippet:0 or none in the robots meta tag or X-Robots-Tag header. Google uses nosnippet to keep a page out of AI Overviews and AI Mode. | 10 | Free check |
| Firewall lets AI crawlers through | We request your home page with the AI crawlers' user agents and compare the result with a browser's. A refusal or a bot challenge means some engines get a wall instead of your page. | 8 | Free check |
| XML sitemap with dates | An XML sitemap, listed in robots.txt or at /sitemap.xml, where at least half the URLs have a lastmod date. Engines use the dates to decide what to read again. | 4 | Free check |
| Valid robots.txt | robots.txt answers with plain text, not an HTML page or a server error. Google treats a server error there as "crawl nothing". | 2 | Free check |
| HTTPS everywhere | Pages are served over HTTPS and http:// redirects to https://. | 2 | Free account |
| llms.txt | A Markdown summary of the site at /llms.txt. Cheap to add, but no major engine has confirmed reading it, so it carries little weight. | 1 | Free check |
| AI training crawlers | Whether GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, meta-externalagent and Bytespider may read the site. Information only: blocking training is a legitimate choice and does not affect AI search answers. | Info | Free check |
Readability: can they read it without JavaScript?
Most AI crawlers fetch the HTML and don't run JavaScript. A page built in the browser is close to empty for them.
| Check | What it looks at | Weight | Shown on |
|---|---|---|---|
| Content readable without JavaScript | The words in the HTML your server sends, before any JavaScript runs. A home page with under 80 words and several scripts fails; under 200 words is a warning. | 10 | Free check |
| Fast HTML response | How long the home page HTML takes to arrive, and how big it is. Over one second is a warning, over 2.5 seconds fails. Crawlers fetching for a waiting user give up on slow pages. | 3 | Free account |
| Language declared | The page declares its language in , and hreflang links if there are several languages, so engines answer in the right market with the right page. | 2 | Free account |
Identity: do they know who you are?
Engines connect a brand name to a website through structured data, profiles elsewhere and an about page. Without them, they guess.
| Check | What it looks at | Weight | Shown on |
|---|---|---|---|
| Organization structured data | Organization JSON-LD with your name, URL and logo. It is how engines tie your brand name to your site. | 6 | Free check |
| Clear title and description | The home page has a title of 10 to 70 characters and a meta description of 50 to 170 that say what you are and who it is for. | 3 | Free check |
| Profiles linked with sameAs | The Organization data lists at least three profiles elsewhere (LinkedIn, GitHub, X, review sites, Wikipedia) in sameAs, so engines can confirm that what they read about you elsewhere is you. | 3 | Free account |
| About page with company facts | The home page links to an about or company page with the facts engines repeat: what you do, for whom, where, who is behind it. | 3 | Free account |
| Open Graph tags | og:title, og:description and og:image are set. Assistants and link previews use them when they show your page. | 1 | Free account |
Content: is it easy to quote?
Engines lift short, self-contained passages: direct answers, lists, tables, dated facts. Pages written that way get quoted.
| Check | What it looks at | Weight | Shown on |
|---|---|---|---|
| Crawlable pricing page | A pricing page linked from the home page or the sitemap, with prices in its HTML. Engines get "X pricing" questions all the time; without your page they quote old reviews. | 6 | Free check |
| Product, FAQ and article markup | At least two kinds of useful structured data across the pages we read: Product or SoftwareApplication with offers, FAQPage, Article, BreadcrumbList and similar. | 4 | Free account |
| Pages open with a direct answer | The first paragraph after the H1 is 8 to 60 words: an answer that could stand alone. At least 60% of the pages we read should open that way. | 4 | Free account |
| Pages show recent dates | Pages carry publish or update dates in structured data, | 4 | Free account |
| Comparison and alternatives pages | At least two "you vs competitor" or "alternatives" pages. They answer some of the most asked buyer questions. | 4 | Free account |
| Question headings and FAQ | At least three H2 or H3 headings phrased as questions, and an FAQ section, so each question has its answer right underneath. | 3 | Free account |
| Lists and tables | At least half of the content pages use lists, and there are tables. Engines reuse structured content almost verbatim. | 2 | Paid plans |
| One H1, clear sections | The home page has exactly one H1 and at least two H2 sections. | 2 | Paid plans |
| Articles name their author | Every article names its author in its Article structured data. | 2 | Paid plans |
Presence: are you known elsewhere?
Knowledge graphs such as Wikidata help engines identify a brand and its official website.
| Check | What it looks at | Weight | Shown on |
|---|---|---|---|
| Brand on Wikidata | A Wikidata item for your brand that lists your domain as its official website (property P856). | 3 | Paid plans |
What if my site blocks the audit?
If your home page answers with a bot challenge or a refusal (Cloudflare's managed challenge is common), the audit can't read your pages. It reports a partial result: the page-level checks are skipped, and the firewall check fails with what we got back instead of your page. For many sites that's the most important finding: AI fetchers that your firewall doesn't recognise get the same wall.
How do I run it?
- On this site with the free check, no account needed.
- In the dashboard, on each project's audit page, at your plan's level. You can re-run it once an hour per project.
For the reasoning behind the checks, read What is GEO, and how do you check your site for AI engines?