AI Ranked
Reference

GEO audit checklist: 32 pass/fail checks for AI search visibility

A GEO audit tells you why AI engines do or don't cite and recommend you. This checklist gives every check a pass/fail rule, a time estimate and a tool, so two people auditing the same site reach the same answer.

Short answerA GEO audit is a structured check of whether AI engines like ChatGPT, Perplexity and Google AI Overviews can reach your pages, would quote them, and see your brand named by third parties. It covers six areas: crawler access, indexing, page citability, structured data, off-site entity signals and visibility measurement. Each check below passes or fails on a stated rule.
Key takeaways
  • 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.

AreaSEO auditGEO audit adds
CrawlingGooglebot, BingbotOAI-SearchBot, PerplexityBot, Claude-SearchBot, user-triggered fetchers; CDN bot rules
IndexingGoogle index coverageBing index (feeds Copilot, used by ChatGPT), Brave for Claude, snippet eligibility
ContentKeywords, intent, depthAnswer-first passages, sourced numbers, self-contained sections
AuthorityBacklinksBrand mentions on the pages AI engines cite, consistent entity facts
MeasurementRankings, clicksMention 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.

#CheckPass ifTimeTool
A1 P1robots.txt allows AI search crawlersOAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot and Bingbot are allowed on all money pages5 minrobots.txt AI checker
A2 P2Training crawlers set on purposeGPTBot, ClaudeBot and Google-Extended rules match a written decision, not a copied template5 minrobots.txt AI checker
A3 P1No CDN or WAF blockRequests with the OAI-SearchBot, PerplexityBot and Claude-SearchBot user agents get 200, not 403 or a challenge page15 mincurl with a custom user agent; CDN bot settings
A4 P1Verified bot hits in logsAt least one hit per AI search bot in the last 30 days, with IPs matching the vendor's published ranges20 minServer or CDN logs; OpenAI searchbot.json
A5 P1Content in the raw HTMLThe main answer text of each money page appears in the HTML response before JavaScript runs10 mincurl, or View Source
A6 P2No accidental Googlebot blockNo Disallow for Googlebot on docs, help or blog subdomains (Brave follows Googlebot rules, and Claude appears to use Brave18)5 minrobots.txt per subdomain
A7 P2Fast, stable responsesMoney pages return 200 in under about 2 seconds with no redirect chains longer than one hop10 mincurl -w timing, or any crawler
A8 P3Sitemap currentXML sitemap lists every money page with an accurate lastmod5 minBrowser

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)

#CheckPass ifTimeTool
B1 P1Indexed in GoogleURL Inspection shows "URL is on Google" for every money page15 minGoogle Search Console
B2 P1Indexed in BingEvery money page is indexed in Bing Webmaster Tools15 minBing Webmaster Tools
B3 P1Snippet allowedNo nosnippet, max-snippet:0 or data-nosnippet on the main content of money pages10 minView Source, search for "snippet"
B4 P2Bing chat controls offNo NOCACHE or NOARCHIVE robots values on pages you want in Copilot answers5 minView Source
B5 P2IndexNow set upNew and updated URLs are pinged to IndexNow on publish10 minCMS plugin or CDN setting
B6 P3Present in BraveYour top pages appear for their head terms on search.brave.com5 minBrave 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.

#CheckPass ifTimeTool
C1 P2Answer firstThe first sentence under each H2 answers the heading on its own, in under about 30 words30 minRead the page
C2 P2Question-shaped headingsAt least half of H2s match a question buyers ask (from People Also Ask, sales calls, prompts)15 minGoogle PAA; your prompt set
C3 P2Sourced numbersEvery statistic has an inline link to its original source and a date or data period20 minRead the page
C4 P2Self-contained sectionsEach section makes sense read alone, with no "as mentioned above" dependencies15 minRead the page
C5 P2Positioning statedProduct pages say who the product is for and what it costs (or a range) in the first 100 words or a visible table10 minRead the page
C6 P3Comparisons in tablesComparison and pricing content is in HTML tables, not images10 minView Source
C7 P2Citability scoreEach money page scores 70 or more out of 10020 minCitability 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)

#CheckPass ifTimeTool
D1 P3Organization schemaOne Organization block with name, url, logo and sameAs links to your main profiles10 minSchema generator
D2 P3Article or Product schemaArticles carry Article with datePublished and dateModified; product pages carry Product or SoftwareApplication10 minSchema generator
D3 P2Schema matches the pageEvery value in the markup (price, rating, FAQ answer) appears in the visible text10 minRich Results Test
D4 P3Valid markupZero errors in Google's Rich Results Test or the Schema.org validator10 minRich 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.

#CheckPass ifTimeTool
E1 P2Consistent entity factsCategory label, founding year, HQ and pricing model match across your site, LinkedIn, Crunchbase, G2 and Capterra20 minBrowser
E2 P2Named on cited pagesYou're named on at least half of the 20 URLs AI engines cite most for your prompts (from Section F)40 minBaseline log
E3 P2Review profiles currentProfiles on the review sites that appear in your cited URLs are complete and have reviews from the last 6 months15 minReview sites
E4 P3Community presenceFor each Reddit or forum thread in your cited URLs, someone from your team has posted a useful, disclosed answer where relevant15 minBaseline 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)

#CheckPass ifTimeTool
F1 P1Prompt baseline exists30+ buyer prompts run 3 times each in ChatGPT, Perplexity and Google AI Overviews, logged with mentions, positions and cited URLs2.5 hrsSpreadsheet, or a tracker
F2 P2AI referrals trackedGA4 has a channel or exploration that isolates chatgpt.com, perplexity.ai, gemini.google.com, claude.ai and copilot.microsoft.com sessions20 minGA4
F3 P3First-party AI reports checkedSearch Console's generative AI performance report and Bing's AI Performance report are reviewed monthly10 minGSC, 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.

Our takeScore the audit by priority, not by pass count. A site that passes 29 of 32 checks but fails A3 has a worse AI search problem than a site that fails ten P3 checks, because a blocked bot means zero citations from that engine regardless of content. Fix every P1 the same week, then spend most of your time on E2 and the C checks. That's where the visible gains come from once access is clean.

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

Cite this page 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