- Access comes first: sites that opt out of OAI-SearchBot "will not be shown in ChatGPT search answers," and a CDN rule can block it while robots.txt says allow.
- In our study of 261 major websites, 21% blocked at least one AI search crawler, and Cloudflare began blocking AI crawlers by default for new customers on 1 July 2025.
- Google says AI Overviews and AI Mode need no special optimization: a page must be indexed and eligible for a snippet. Snippet controls like data-nosnippet are a common silent failure.
- The full checklist takes about 6 to 9 hours for a site with 20 money pages, and half of that is the prompt baseline.
- Off-site checks usually matter most for "best X" prompts: branded web mentions correlated with AI Overview visibility at 0.664 in Ahrefs' 75,000-brand study, against 0.218 for backlinks.
What is a GEO audit?
A GEO audit checks a website and its brand against what generative engine optimization needs: AI crawlers can fetch the pages, search indexes hold them, the pages contain passages a model can quote, and the wider web names the brand in the places AI engines read. The output is a list of failed checks, ranked by how much each one limits visibility.
Most "free GEO audit" tools score a single URL on content and schema. That's one of six areas. A page can score 90 in a content grader and still never be cited because a firewall rule returns 403 to OAI-SearchBot, or because the five pages ChatGPT reads for your category never mention you. The checklist below covers all six.
How is a GEO audit different from an SEO audit?
An SEO audit asks whether Google can crawl, index and rank your pages. A GEO audit asks the same of several engines with different indexes, then adds two questions SEO audits skip: would a model quote this passage, and do third parties name you? The overlap is real. Google's guidance for AI features says a supporting link must be indexed and eligible to show with a snippet, with no additional requirements4, so a healthy Google SEO setup covers the Google half.
| Area | SEO audit | GEO audit adds |
|---|---|---|
| Crawling | Googlebot, Bingbot | OAI-SearchBot, PerplexityBot, Claude-SearchBot, user-triggered fetchers; CDN bot rules |
| Indexing | Google index coverage | Bing index (feeds Copilot, used by ChatGPT), Brave for Claude, snippet eligibility |
| Content | Keywords, intent, depth | Answer-first passages, sourced numbers, self-contained sections |
| Authority | Backlinks | Brand mentions on the pages AI engines cite, consistent entity facts |
| Measurement | Rankings, clicks | Mention rate and citations on a fixed prompt set, AI referral traffic |
How to run the audit
Pick your 10 to 20 money pages first (pricing, product, top comparison and category pages, your most-linked guide). Every page-level check runs on that set, not the whole site. Record each check as pass, fail or n/a, with the evidence (a screenshot, a log line, a URL) so someone else can confirm it. Time estimates below assume one person and a 20-page set. The priority column says what to fix first: P1 blocks visibility outright, P2 limits it, P3 is housekeeping.
Section A: crawler access (8 checks, about 75 minutes)
Nothing else in this audit matters if the bots can't fetch the page. Check this section first and stop to fix any P1 failure.
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| A1 P1 | robots.txt allows AI search crawlers | OAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot and Bingbot are allowed on all money pages | 5 min | robots.txt AI checker |
| A2 P2 | Training crawlers set on purpose | GPTBot, ClaudeBot and Google-Extended rules match a written decision, not a copied template | 5 min | robots.txt AI checker |
| A3 P1 | No CDN or WAF block | Requests with the OAI-SearchBot, PerplexityBot and Claude-SearchBot user agents get 200, not 403 or a challenge page | 15 min | curl with a custom user agent; CDN bot settings |
| A4 P1 | Verified bot hits in logs | At least one hit per AI search bot in the last 30 days, with IPs matching the vendor's published ranges | 20 min | Server or CDN logs; OpenAI searchbot.json |
| A5 P1 | Content in the raw HTML | The main answer text of each money page appears in the HTML response before JavaScript runs | 10 min | curl, or View Source |
| A6 P2 | No accidental Googlebot block | No Disallow for Googlebot on docs, help or blog subdomains (Brave follows Googlebot rules, and Claude appears to use Brave18) | 5 min | robots.txt per subdomain |
| A7 P2 | Fast, stable responses | Money pages return 200 in under about 2 seconds with no redirect chains longer than one hop | 10 min | curl -w timing, or any crawler |
| A8 P3 | Sitemap current | XML sitemap lists every money page with an accurate lastmod | 5 min | Browser |
Why A3 and A4 matter so much. OpenAI is explicit that opting out of OAI-SearchBot keeps a site out of ChatGPT search answers1, and Anthropic says blocking Claude-SearchBot may reduce visibility in Claude's results3. Robots.txt is only half the gate. Cloudflare began blocking AI crawlers by default for new customers on 1 July 202511, and that block never shows in robots.txt. Perplexity's docs tell Cloudflare users to create an Allow rule for its published IP ranges2. In our study of 261 major websites, 21% blocked at least one AI search crawler in robots.txt alone.
Test A3 in one line. Run this per bot and per money page, and look for 200:
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; OAI-SearchBot; +https://openai.com/searchbot)" https://example.com/pricing
Most bot rules match on the "OAI-SearchBot" token; OpenAI's crawler docs list the full strings. A 200 from your own IP doesn't prove the real bot gets through, since some rules check IP ranges, which is why A4 checks the logs. Test A5 by searching the curl output for a sentence from your first paragraph. Vercel and MERJ found the major AI crawlers fetch JavaScript files but don't execute them9, so text that only appears after rendering is invisible to them.
Section B: indexing and snippet eligibility (6 checks, about 60 minutes)
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| B1 P1 | Indexed in Google | URL Inspection shows "URL is on Google" for every money page | 15 min | Google Search Console |
| B2 P1 | Indexed in Bing | Every money page is indexed in Bing Webmaster Tools | 15 min | Bing Webmaster Tools |
| B3 P1 | Snippet allowed | No nosnippet, max-snippet:0 or data-nosnippet on the main content of money pages | 10 min | View Source, search for "snippet" |
| B4 P2 | Bing chat controls off | No NOCACHE or NOARCHIVE robots values on pages you want in Copilot answers | 5 min | View Source |
| B5 P2 | IndexNow set up | New and updated URLs are pinged to IndexNow on publish | 10 min | CMS plugin or CDN setting |
| B6 P3 | Present in Brave | Your top pages appear for their head terms on search.brave.com | 5 min | Brave Search |
Google's AI features page sets the bar for B1 and B3: a page must be indexed and eligible to show with a snippet, and there are no additional technical requirements4. Google-Extended doesn't touch this; it governs Gemini training and grounding in the Gemini app, not Search5. For B4, Bing excludes NOARCHIVE content from chat answers and limits NOCACHE content to URLs, titles and snippets8. For B5, IndexNow lets you notify Bing and other participating engines the moment a URL changes7. B2 matters beyond Copilot, since Microsoft announced Bing as ChatGPT's default search provider in 202317.
Section C: page citability (7 checks, about 2 hours)
These checks decide whether a retrieved page contains a passage worth quoting. Run them on each money page.
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| C1 P2 | Answer first | The first sentence under each H2 answers the heading on its own, in under about 30 words | 30 min | Read the page |
| C2 P2 | Question-shaped headings | At least half of H2s match a question buyers ask (from People Also Ask, sales calls, prompts) | 15 min | Google PAA; your prompt set |
| C3 P2 | Sourced numbers | Every statistic has an inline link to its original source and a date or data period | 20 min | Read the page |
| C4 P2 | Self-contained sections | Each section makes sense read alone, with no "as mentioned above" dependencies | 15 min | Read the page |
| C5 P2 | Positioning stated | Product pages say who the product is for and what it costs (or a range) in the first 100 words or a visible table | 10 min | Read the page |
| C6 P3 | Comparisons in tables | Comparison and pricing content is in HTML tables, not images | 10 min | View Source |
| C7 P2 | Citability score | Each money page scores 70 or more out of 100 | 20 min | Citability grader |
The evidence base here is the original GEO paper, where adding statistics, quotations and cited sources raised visibility in generative answers by up to 40%14. The 70 threshold in C7 is our own cut-off, not an industry standard; once you've graded a few pages that do get cited in your category, set the bar from those. Here's what a C1 fix looks like:
FAIL ## How much does Ledgerly cost?
Pricing is one of the most common questions we hear from
finance teams evaluating expense tools, and the answer depends...
PASS ## How much does Ledgerly cost?
Ledgerly costs $8 per active user per month on the Growth plan,
with a 25-user minimum. Enterprise pricing is custom.
Section D: structured data (4 checks, about 40 minutes)
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| D1 P3 | Organization schema | One Organization block with name, url, logo and sameAs links to your main profiles | 10 min | Schema generator |
| D2 P3 | Article or Product schema | Articles carry Article with datePublished and dateModified; product pages carry Product or SoftwareApplication | 10 min | Schema generator |
| D3 P2 | Schema matches the page | Every value in the markup (price, rating, FAQ answer) appears in the visible text | 10 min | Rich Results Test |
| D4 P3 | Valid markup | Zero errors in Google's Rich Results Test or the Schema.org validator | 10 min | Rich Results Test |
We rate most of this section P3 on purpose. Google says no special schema is needed for its AI features and asks that structured data match the visible text4. FAQ rich results have been limited to well-known government and health sites since August 202310, and no AI engine has said it ranks sources by schema. D3 is the exception, because markup that contradicts the page is a real defect.
Section E: off-site and entity signals (4 checks, about 90 minutes)
This is the section most audits skip, and for category prompts it's often the one that matters most.
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| E1 P2 | Consistent entity facts | Category label, founding year, HQ and pricing model match across your site, LinkedIn, Crunchbase, G2 and Capterra | 20 min | Browser |
| E2 P2 | Named on cited pages | You're named on at least half of the 20 URLs AI engines cite most for your prompts (from Section F) | 40 min | Baseline log |
| E3 P2 | Review profiles current | Profiles on the review sites that appear in your cited URLs are complete and have reviews from the last 6 months | 15 min | Review sites |
| E4 P3 | Community presence | For each Reddit or forum thread in your cited URLs, someone from your team has posted a useful, disclosed answer where relevant | 15 min | Baseline log |
The case for E2: Ahrefs found branded web mentions correlated with AI Overview visibility at 0.664 across 75,000 brands, against 0.218 for backlinks15. Correlation across that many brands mixes in size, but the practical reading is clear enough. On the ChatGPT side, Wikipedia was 47.9% of its top 10 cited domains and Reddit 46.7% of Perplexity's in Profound's analysis of 680 million citations16, which is why E3 and E4 look at review sites and forums.
Section F: visibility baseline and measurement (3 checks, about 3 hours)
| # | Check | Pass if | Time | Tool |
|---|---|---|---|---|
| F1 P1 | Prompt baseline exists | 30+ buyer prompts run 3 times each in ChatGPT, Perplexity and Google AI Overviews, logged with mentions, positions and cited URLs | 2.5 hrs | Spreadsheet, or a tracker |
| F2 P2 | AI referrals tracked | GA4 has a channel or exploration that isolates chatgpt.com, perplexity.ai, gemini.google.com, claude.ai and copilot.microsoft.com sessions | 20 min | GA4 |
| F3 P3 | First-party AI reports checked | Search Console's generative AI performance report and Bing's AI Performance report are reviewed monthly | 10 min | GSC, Bing Webmaster Tools |
F1 is P1 because without it you can't tell whether any fix worked. ChatGPT tags many referral links with utm_source=chatgpt.com12, which makes F2 straightforward; paste this regex into a GA4 session source filter:
chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|claude\.ai|copilot\.microsoft\.com
For F3, Bing's AI Performance report, in public preview since February 2026, lists which of your URLs Copilot cited and a sample of the grounding queries6, and Search Console's generative AI performance reports show impressions in Google's AI features13. Our guide to measuring AI visibility covers sample sizes and metrics. If you want a quick read before building a full baseline, the Arobis AI visibility checker shows whether ChatGPT names your brand for category questions.
A note on llms.txt. We left it out of the scored checks. No major AI search engine has said it uses the file to pick sources; our llms.txt explainer has the request data. If you publish one anyway, the llms.txt generator builds a valid file in a minute.
Copyable GEO audit template
Paste this into a spreadsheet (it's CSV), one row per check, and fill the last five columns as you go. For page-level checks, add a row per money page or a column per URL.
id,priority,section,check,pass_if,result,evidence,owner,fix,due
A1,P1,Access,robots.txt allows AI search crawlers,"OAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot, Bingbot allowed",,,,,
A2,P2,Access,Training crawlers set on purpose,"GPTBot, ClaudeBot, Google-Extended match a written decision",,,,,
A3,P1,Access,No CDN or WAF block,AI search bot user agents get HTTP 200,,,,,
A4,P1,Access,Verified bot hits in logs,1+ verified hit per AI search bot in 30 days,,,,,
A5,P1,Access,Content in raw HTML,Main answer text present before JavaScript,,,,,
A6,P2,Access,No accidental Googlebot block,No Googlebot Disallow on any subdomain,,,,,
A7,P2,Access,Fast stable responses,200 in under ~2s; max one redirect,,,,,
A8,P3,Access,Sitemap current,All money pages listed with accurate lastmod,,,,,
B1,P1,Indexing,Indexed in Google,URL is on Google,,,,,
B2,P1,Indexing,Indexed in Bing,Indexed in Bing Webmaster Tools,,,,,
B3,P1,Indexing,Snippet allowed,No nosnippet / max-snippet:0 / data-nosnippet on main content,,,,,
B4,P2,Indexing,Bing chat controls off,No NOCACHE or NOARCHIVE,,,,,
B5,P2,Indexing,IndexNow set up,URLs pinged on publish,,,,,
B6,P3,Indexing,Present in Brave,Top pages rank for head terms on Brave,,,,,
C1,P2,Citability,Answer first,First sentence under each H2 answers it,,,,,
C2,P2,Citability,Question-shaped headings,Half or more H2s match buyer questions,,,,,
C3,P2,Citability,Sourced numbers,Every stat linked and dated,,,,,
C4,P2,Citability,Self-contained sections,Each section stands alone,,,,,
C5,P2,Citability,Positioning stated,Audience + price in first 100 words or a table,,,,,
C6,P3,Citability,Comparisons in tables,HTML tables not images,,,,,
C7,P2,Citability,Citability score,70+ in the citability grader,,,,,
D1,P3,Schema,Organization schema,Name/url/logo/sameAs present,,,,,
D2,P3,Schema,Article or Product schema,Correct type with dates,,,,,
D3,P2,Schema,Schema matches page,All values visible on page,,,,,
D4,P3,Schema,Valid markup,Zero validator errors,,,,,
E1,P2,Entity,Consistent entity facts,Same facts on 5+ profiles,,,,,
E2,P2,Entity,Named on cited pages,Named on 10+ of top 20 cited URLs,,,,,
E3,P2,Entity,Review profiles current,Complete; reviews in last 6 months,,,,,
E4,P3,Entity,Community presence,Disclosed answers on cited threads,,,,,
F1,P1,Measurement,Prompt baseline exists,30+ prompts x 3 runs x 3 engines logged,,,,,
F2,P2,Measurement,AI referrals tracked,GA4 isolates AI assistant sessions,,,,,
F3,P3,Measurement,First-party AI reports checked,GSC + Bing AI reports reviewed monthly,,,,,
How long does a GEO audit take?
For one person and 20 money pages, plan on 6 to 9 hours: about 75 minutes on access, an hour on indexing, two hours on citability, 40 minutes on schema, 90 minutes on off-site signals and about three hours on the prompt baseline. The baseline is the biggest single block because 30 prompts x 3 runs x 3 engines is 270 answers to read. A tracker cuts that to setup time; see our comparisons of ChatGPT rank trackers, Perplexity rank trackers and AI Overview trackers.
Re-run Sections A and B monthly, since a CDN or plugin update can undo them overnight, and the full audit quarterly.
The failures we'd look for first
- A bot-protection product added last quarter. Security teams turn on "block AI bots" toggles without telling marketing. Check A3 before anything else.
- JavaScript-rendered pricing. Pricing tables loaded by a client-side app fail A5, which means AI crawlers that don't run JavaScript see an empty page exactly where buyers' questions land.
- data-nosnippet on a template. Added once for a cookie banner or review widget, then copied into the main layout. It fails B3 site-wide.
- A docs or help subdomain with its own robots.txt. Often older, often stricter, and often the best-cited content on the domain.
- Four different category labels. "Spend management" on the homepage, "expense software" on G2, "fintech" on LinkedIn, "AP automation" on Crunchbase. That's an E1 fail, and it shows up in how AI engines describe you.
If you want the audit done for you, Arobis AI runs AI visibility audits for B2B SaaS, and our roundup of AEO agencies covers other firms that do. For the reasoning behind each check by engine, read how AI engines choose sources, and for the ChatGPT-specific follow-up plan, how to rank in ChatGPT.
Frequently asked questions
What does a GEO audit check?
A GEO audit checks six things: whether AI crawlers such as OAI-SearchBot and PerplexityBot can fetch your pages, whether Google, Bing and Brave index them with snippets allowed, whether pages contain quotable answer-first passages with sources, whether structured data matches the page, whether third-party sites name your brand, and whether you measure AI mentions and referrals.
Is a GEO audit different from an SEO audit?
It overlaps but goes further. An SEO audit focuses on Google crawling, indexing and ranking. A GEO audit adds AI-specific crawlers and CDN rules, Bing and Brave indexing, passage-level citability, brand mentions on the pages AI engines cite, and prompt-based measurement. Google says its AI features need no special optimization, so good Google SEO covers part of it.
How long does a GEO audit take?
About 6 to 9 hours for one person auditing 20 money pages. Crawler access and indexing take about two hours, page citability two hours, schema 40 minutes and off-site signals about 90 minutes. The prompt baseline is the largest block at roughly three hours, because 30 prompts run three times on three engines means reading 270 answers.
Are free GEO audit tools enough?
They're a good start for page-level content and schema checks, but most score one URL at a time and can't see your firewall rules, server logs, Bing index coverage or third-party mentions. Use them for Section C of this checklist, and run the access, indexing, off-site and measurement checks yourself or with a tracker.
How often should you run a GEO audit?
Run the full checklist quarterly and the crawler access and indexing checks monthly. Access settings break without warning when a CDN, security plugin or robots.txt template changes, and a single blocked bot can remove you from an engine's answers. Re-run the prompt baseline monthly on the same prompts so changes are comparable.
Does llms.txt belong in a GEO audit?
Only as an optional note. No major AI search engine has said it uses llms.txt to choose sources, and request data shows very little AI crawler traffic to the file. It's cheap to publish, so add it if you like, but don't count a missing llms.txt as a failure or prioritize it over crawler access and indexing.
Sources
- OpenAI. "Overview of OpenAI crawlers."
- Perplexity. "Perplexity crawlers."
- Anthropic. "Does Anthropic crawl data from the web, and how can site owners block the crawler?"
- Google Search Central. "AI features and your website."
- Google Search Central. "Google's common crawlers" (Google-Extended).
- Bing Webmaster Blog. "Introducing AI Performance in Bing Webmaster Tools public preview." 10 February 2026.
- IndexNow. Protocol site and participating search engines.
- Bing Webmaster Blog. "New options for webmasters to control usage of their content in Bing Chat." September 2023.
- Vercel and MERJ. "The rise of the AI crawler." 17 December 2024.
- Google Search Central Blog. "Changes to HowTo and FAQ rich results." 8 August 2023.
- Cloudflare. "Cloudflare just changed how AI crawlers scrape the internet-at-large." 1 July 2025.
- OpenAI Help Center. "Publishers and developers FAQ."
- Google Search Central Blog. "Introducing Search generative AI performance reports in Search Console." June 2026.
- Aggarwal et al. "GEO: Generative Engine Optimization." KDD 2024.
- Ahrefs. "An analysis of AI Overview brand visibility factors (75K brands studied)." 26 May 2025.
- Profound. "AI platform citation patterns" (680 million citations, August 2024 to June 2025).
- CNBC. "Microsoft says Bing can be default search engine for ChatGPT users." 23 May 2023.
- Brave Search Help. "Brave Search crawler." See also Simon Willison, "Anthropic appears to be using Brave to power web search for Claude," 21 March 2025.
AI Ranked Editorial. "GEO audit checklist: 32 pass/fail checks for AI search visibility." AI Ranked, October 11, 2026. https://airanked.ai/guides/geo-audit-checklist