AI-SEO & GEO

GEO Audit Checklist: How to Audit Your Website for AI Search (With a Free Template)

· · 19 min read · Updated 1 October 2026

A GEO audit checklist is a fixed list of checks that tells you whether AI search systems (ChatGPT, Perplexity, Google AI Overviews and AI Mode, Claude, Copilot) can reach your pages, understand them and cite them. It covers six areas: crawler access, content structure, structured data, entity signals, prompt gaps and measurement.

This guide walks through each step of the GEO audit in order, with the test to run and the pass condition for every check. It ends with a downloadable GEO audit template (a spreadsheet of 27 checks plus a prompt tracker), a way to prioritise what you find, and how often to repeat the audit. For how this layer sits inside a full engagement, see the 12-phase SEO and GEO audit framework.

Key takeaways

  • A GEO audit tests citation eligibility, not rankings. It shares crawlability and schema with an SEO audit but adds AI crawler access, prompt testing and citation tracking.
  • Start with access. If OAI-SearchBot, PerplexityBot or Googlebot cannot fetch a page, nothing else in the audit matters for that page.
  • Google says there is no special markup, file or “chunking” required for its AI features, so a GEO audit that recommends llms.txt or rewrites for AI alone is auditing the wrong things for Google.
  • Prompt testing is the only check that shows what AI systems actually say about you. Freeze a set of 10 to 15 prompts and re-run it monthly.
  • Use the free GEO audit template below: one row per check, a pass condition for each, and a tier column that turns findings into a work queue.

GEO audit checklist: the quick version

If you only have an afternoon, run these checks in this order. Each one maps to a row in the GEO audit template.

StepCheckPass condition
1. Crawler accessOAI-SearchBot, PerplexityBot and Googlebot allowedNo Disallow rule or firewall block on priority URLs
1. Crawler accessMain content in the initial HTMLAnswer text visible in view-source, without JavaScript
2. Content structureDirect answer in the first 100 wordsThe opening sentence answers the question behind the H1
2. Content structureEach H2 opens with a standalone sentenceIt still makes sense quoted on its own
3. Structured dataArticle and Person markup validNo errors; headline matches the H1; sameAs present
4. Entity signalsNamed author, consistent everywhereSame name and role on byline, schema, author page and LinkedIn
5. Prompt gaps10 to 15 prompts run on each platformDated result logged for every prompt and platform
6. MeasurementAI referral channel in GA4 and Search Console baselineAI sources grouped; Generative AI report exported

The rest of this article explains each step, the reasoning behind the pass condition, and what a failure usually means.

What is a GEO audit, and how is it different from an SEO audit?

A GEO audit is a structured review of whether AI search systems can find, extract and attribute your content. A traditional SEO audit asks whether Google can crawl, index and rank your pages. The two overlap on crawlability and structured data, and diverge on what they measure: a ranking position against a citation in a generated answer.

The divergence is measurable. Ahrefs found in August 2025 that around 12% of URLs cited by ChatGPT, Gemini and Copilot also appear in Google’s top 10: Perplexity was highest at 28.6%, and for the other assistants the figure hovers around 8% (Ahrefs, AI search overlap study). The study used long-tail prompts only, and it measured standalone assistants rather than AI Overviews; Ahrefs’ separate AI Overview research put the overlap at 76% of cited URLs coming from top 10 pages.

Share of AI-cited URLs that rank in Google's top 10 (long-tail prompts)
ChatGPT (in-text)
8%
Average across assistants
12%
Perplexity
28.6%
Source: Ahrefs, August 2025, 15,000 long-tail prompts

So the audits inform each other but cannot substitute for each other. For Google’s own AI features the gap narrows: Google’s guide to optimising for generative AI features says that from its perspective “optimizing for generative AI search is optimizing for the search experience, and thus still SEO.” A useful GEO audit therefore does two jobs: it confirms the SEO foundations Google’s AI features rely on, and it adds the checks that standalone assistants need.

If you are new to the discipline itself, start with what generative engine optimization is, then come back to the audit.

Step 1: Check AI crawler access

A page an AI crawler cannot fetch cannot be cited from a fresh retrieval. This is the first step of the GEO audit because every later check assumes it passes.

Know which crawler does what

Each AI platform documents separate user agents for search and for training, and they are controlled independently:

  • OpenAI. OpenAI’s crawler documentation says OAI-SearchBot is used “to surface websites in search results in ChatGPT’s search features”, and that sites opted out of it “will not be shown in ChatGPT search answers”. GPTBot is the training crawler, and ChatGPT-User makes fetches a user triggers, for which “robots.txt rules may not apply.”
  • Perplexity. Perplexity’s crawler documentation says PerplexityBot “is designed to surface and link websites in search results on Perplexity” and “is not used to crawl content for AI foundation models.” Perplexity-User handles user-requested fetches.
  • Google. For AI Overviews and AI Mode, Google’s AI features documentation says robots.txt directives for Googlebot are the control, and that Google-Extended limits training and grounding “in some of Google’s other systems”. Blocking Google-Extended does not remove you from AI Overviews; blocking Googlebot removes you from Search.

The audit question is not “are all AI bots allowed?” It is “did someone decide, per crawler, and does robots.txt reflect that decision?” Allowing the search crawlers while blocking the training crawlers is a legitimate position; an accidental block is not.

A robots.txt that allows search crawlers and opts out of OpenAI’s model training looks like this:

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap-index.xml

Remember that a crawler obeys the most specific group that names it. If you add a User-agent: OAI-SearchBot group, the rules under * no longer apply to it, so repeat any paths you want kept private. The robots.txt guide for developers covers the precedence rules in full.

Check the firewall, not just robots.txt

A robots.txt allow means nothing if a web application firewall (WAF) or CDN bot rule returns a 403 first. Both OpenAI and Perplexity publish IP ranges for their crawlers, and Perplexity’s documentation includes step-by-step allow rules for Cloudflare and AWS WAF that combine the user agent with the published IP list.

Two tests catch most problems:

  1. Logs. Filter your access logs for the AI user agents, then confirm the source IPs against the published ranges. Anyone can fake a user agent string, so an unverified hit proves nothing.
  2. Status codes. For each verified crawler, check which status codes your priority URLs returned. A run of 403s or 429s from a verified PerplexityBot IP is a firewall problem.

A first pass over a standard combined log format file:

grep -oE "OAI-SearchBot|GPTBot|ChatGPT-User|PerplexityBot|Perplexity-User|Googlebot" access.log \
  | sort | uniq -c | sort -rn

The full verification workflow, including IP matching, is in AI crawler log analysis.

Confirm the content is in the HTML

Treat JavaScript rendering as a separate check. Google renders JavaScript; do not assume every AI crawler does. Open view-source (not the browser’s rendered DOM) on each priority URL and confirm the answer text and headings are in the server response. If they only appear after hydration, see JavaScript SEO for the rendering fixes.

Check Google’s AI eligibility in Search Console

Google’s AI optimisation guide adds two conditions for its AI features: a page must be indexed and eligible to show with a snippet, and the site must be included in Search generative AI features in Search Console. Check both. A nosnippet or max-snippet:0 directive left over from an old experiment will quietly remove a page from AI Overviews.

Step 2: Audit content structure for extraction

AI systems quote passages, not whole pages. This step of the GEO audit checks whether your priority pages contain passages worth quoting.

For each priority page, score three signals:

  • A direct answer in the first 100 words. Does the page open with a declarative sentence that answers the question behind the H1? If the answer sits in paragraph three after a preamble, the opening a system reads first is the preamble.
  • Standalone section openings. Does each H2 open with a sentence that still makes sense when lifted out and quoted without the heading above it?
  • Sourced claims. Does every statistic, price and product claim link to the page it came from? An unattributed figure is harder for a reader, human or machine, to trust.

Score each page out of 3. Pages scoring 0 or 1 are candidates for a rewrite; 2 needs targeted edits; 3 needs only schema or entity work. The AEO Article Analyzer automates a version of this triage: it scores an article from 0 to 100 against 10 criteria and returns the three highest-impact fixes.

Two things this step should not recommend, because Google has said they do not help in its AI features. Its AI optimisation guide lists “chunking” content into tiny pieces and “rewriting content just for AI systems” under things you can ignore, and it warns that creating separate pages for every fan-out query variation “primarily to manipulate rankings or generative AI responses” violates the scaled content abuse policy.

What the same guide does ask for is “non-commodity content”: a unique point of view, first-hand experience, or original data. Add a fourth, harder check for your most important pages: can an editor point to the section that says something the ranking pages do not? If not, structure fixes will not be enough.

Step 3: Validate structured data

Structured data does not make a page citable on its own. Google is explicit that “there’s no special schema.org markup you need to add” for AI features. It still matters for the audit, because broken or contradictory markup is a signal worth fixing and because Article and Person markup give every system an unambiguous statement of who wrote what, and when.

Check three types on your priority pages:

  • Article or BlogPosting, with headline matching the H1, an author that references a Person, and datePublished and dateModified. Check that dateModified only moves when the content changes. The Article schema guide lists the properties Google supports.
  • Person, with name, url, jobTitle and sameAs links to the author’s real profiles. The sameAs array is what connects the byline to the same person elsewhere on the web.
  • Organization on the home page, with the same name, logo and profiles you use everywhere else. See Organization schema.

A minimal Person block for an author page:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Jane Example",
  "url": "https://example.com/about/",
  "jobTitle": "Head of Search",
  "sameAs": [
    "https://www.linkedin.com/in/jane-example/",
    "https://github.com/jane-example"
  ]
}

If your audit checklist still has a line for FAQ rich results, update it. Google stopped showing FAQ rich results from 7 May 2026, posted the deprecation notice on 8 May, removed the documentation on 15 June 2026 and dropped Rich Results Test support in June 2026 (Google Search Central changelog). This is distinct from the August 2023 restriction, which narrowed FAQ rich results to government and health sites rather than removing them. The Rich Results Test’s list of supported types no longer includes FAQ, so validate FAQPage markup with the Schema Markup Validator instead. Whether to keep it at all is covered in FAQ schema in 2026.

Finally, check that every value in the markup is visible on the page. Google’s AI features documentation lists “making sure your structured data matches the visible text on the page” as a best practice, and a mismatch is the most common error this step finds. The full implementation guide is Structured Data for AI Search.

Step 4: Check author and entity signals

AI systems describe people and brands by combining what many sources say about them. This step checks that those sources agree.

  • Named bylines. Every priority page should carry a named author. “Admin” or “Editorial team” gives nothing to connect to.
  • Name consistency. The author’s name and role should be identical in the byline, the Person markup, the author page, LinkedIn and external bios. Small variations (“Jon” and “Jonathan”) split one person into two.
  • Brand consistency. Your company name, one-line description, category and location should match across your About page, Google Business Profile, directories and social profiles.
  • Independent mentions. Search for the brand and the author on sites you do not control. Relevant publications, podcasts and event pages are the external evidence an AI answer draws on when it describes you.

Do not try to manufacture that last item. Google’s AI optimisation guide lists “seeking inauthentic mentions” under tactics to ignore, noting that its core ranking systems focus on quality while other systems block spam. The long-term fix for weak entity signals is real work people cite, which is why this is usually a Tier 3 item. The mechanics are covered in E-E-A-T for AI search.

Step 5: Run a prompt gap analysis

This is the only step of a GEO audit that shows what AI systems actually say about you, rather than whether they could.

Write 10 to 15 prompts your buyers would type. Take them from sales calls, support tickets and the question-shaped queries in Search Console, not from your keyword list. Label each prompt with its intent and the page you would want cited. Then freeze the set: the value comes from re-running the same prompts over time.

Run every prompt in ChatGPT, Perplexity and Google AI Mode (and note whether an AI Overview appears in normal search). Log, for each run:

  • whether your domain is cited, and which URL
  • where in the answer the citation appears
  • whether the brand is mentioned without a link
  • which competitors are cited instead

Then tag each miss with a gap type. Access means a crawler block from Step 1. Content means you have a page, but a competitor’s page answers the prompt more directly. Entity means competitors are named consistently and you are not, even where your content is comparable. No page means nothing on your site answers the prompt. Each gap type has a different fix, which is the point of tagging it.

Which platform to weight? ChatGPT accounts for 92.4% of trackable standalone LLM referral traffic, across 6.77 million sessions on 166 sites between November 2024 and May 2026 (Previsible, 2026 State of AI Discovery Report). That covers standalone LLM referrals only: the measurement excludes Google AI Overviews and AI Mode, which the report itself says “almost certainly” carry more AI-driven traffic than all standalone platforms combined. Weight ChatGPT for referral traffic and Google’s AI features for reach.

Which prompts to prioritise? Previsible found AI traffic concentrating on commercial page types: industry pages at 1.14% AI penetration, tools pages at 0.95% and pricing pages at 0.46%, against a 0.13% site-wide average (Previsible, 2025 State of AI Discovery Report). The base rates are tiny, so the ratio is the finding rather than the volume. Even so, it is a good reason to include prompts that should land on pricing, comparison and tool pages, not only blog posts.

Single runs are noisy, because AI answers vary between sessions. A method for turning repeated runs into a stable number is in AI share of voice, and a quick manual version is in does your business appear in ChatGPT and Perplexity?.

Step 6: Set up citation tracking

An audit you cannot re-measure is a one-off opinion. The last step of the GEO audit sets up the baseline for every future run.

  • The prompt tracker. Schedule the monthly re-run of your frozen prompt set, with an owner and a date.
  • GA4 AI referral channel. Create a custom channel group with an “AI assistants” channel above Referral, matching the session source against a regex such as .*(chatgpt\.com|chat\.openai\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com).*. Add the landing page dimension to see which pages AI sends people to. The full setup is in how to track AI referral traffic in GA4.
  • Search Console. Google’s AI optimisation guide points to the Generative AI performance report for visibility in its AI features. Export a baseline for your priority pages on audit day.
  • Paid monitoring, when manual testing stops scaling. Tools run your prompts daily across platforms. As one reference point, OtterlyAI’s Lite plan was listed at $29/month for 15 search prompts across ChatGPT, Google AI Overviews, Perplexity and Copilot on its pricing page (verified in September 2026). The wider field is compared in generative engine optimization tools.

GEO audit template: download the spreadsheet

The GEO audit template turns the six steps above into one row per check, so the audit produces a work queue instead of a document.

Both are plain CSV files. Open them in Google Sheets (File, Import) or Excel and they keep their columns.

The audit template has these columns:

ColumnWhat goes in it
ID, Area, CheckThe check, grouped by step (1.1 to 6.3)
How to testThe exact test, so two people run it the same way
Pass conditionWhat “pass” means, written before anyone runs the test
Result, EvidencePass, Fail or N/A, plus a screenshot link or log extract
Impact, EffortHigh, medium or low, prefilled as a starting point
Tier1 to 4, from the prioritisation rubric below
Owner, Due, StatusWho fixes it and when

How to use it:

  1. Pick your priority pages first. Ten to twenty URLs is enough for a first pass: the pages you most want cited, usually pricing, product, comparison and your strongest guides.
  2. Run Steps 1 and 3 for every priority page, because they are quick and binary.
  3. Run Step 2 page by page, scoring the three structure signals.
  4. Run Step 5 in the prompt tracker and copy the gap types back into the audit template as findings.
  5. Sort by Tier, then by Impact. That is your fix list.

The prefilled Impact and Effort values are defaults for a typical B2B site. Change them to match yours; the pass conditions are the part to keep.

How to prioritise GEO audit findings

A complete GEO audit usually surfaces far more findings than a team can fix in one quarter. Sort them with a simple impact and effort rubric, the same four tiers used in the template.

Tier 1: fix now (high impact, low effort). Crawler blocks in robots.txt or the firewall, noindex or nosnippet on priority pages, missing Person markup and sameAs links, and an Article headline that does not match the H1. These are foundational; later work depends on them.

Tier 2: schedule this quarter (high impact, medium effort). Direct-answer rewrites of the first 100 words on priority pages, standalone H2 openings, source links on unsourced claims, consolidating near-duplicate pages, and dateModified hygiene.

Tier 3: plan for next quarter (high impact, high effort). Full rewrites for pages scoring 0 or 1 out of 3, original research or first-hand content for pages with no distinctive angle, and entity building through real publications, talks and podcasts.

Tier 4: deprioritise. Schema types a page does not need, llms.txt as a Google visibility fix (Google says it neither helps nor harms in Search), and markup added without fixing the content underneath it.

How often to run a GEO audit

Three cadences cover most sites:

  • Full audit quarterly. Re-run all six steps. AI products change how they retrieve and cite often enough that an audit older than a quarter describes a different system.
  • Prompt set monthly. Re-run the frozen prompts in the tracker. This is the leading indicator between full audits.
  • Triggered re-audit after site changes. CMS migrations, URL changes, template or theme updates and new firewall rules can break crawler access and markup without anyone noticing. Re-run Steps 1 and 3 the week they ship.

What a GEO audit produces

A finished GEO audit should hand over six things:

  • a crawler access report for OAI-SearchBot, PerplexityBot, Googlebot and the training crawlers, with the decision recorded for each
  • page-by-page structured data results for Article, Person and Organization markup
  • a content structure score for each priority page
  • the prompt tracker baseline, with gap types for every miss
  • the prioritised fix list, sorted by tier
  • the measurement baseline: GA4 AI channel and a Search Console export

The fix list is the deliverable that drives action. Without it, teams tend to start everywhere at once and stall before the Tier 1 items are done.

How the GEO audit fits with a technical SEO audit

The GEO audit assumes the technical basics already pass: the site is crawlable, indexable and fast, with working canonicals and redirects. If you have not checked those recently, run the technical SEO audit checklist first; several of its crawl and render checks are the foundation for Step 1 here. The 12-phase SEO and GEO audit shows how the two sequences fit into one engagement.

If you would rather have the audit run for you, that is the core of the GEO and technical SEO service.

Frequently asked questions

What is the difference between a GEO audit and an SEO audit?

An SEO audit checks whether Google can crawl, index and rank your pages. A GEO audit checks whether AI systems such as ChatGPT, Perplexity and Google’s AI features can reach, extract and cite them. They overlap on crawlability and structured data, but a GEO audit adds AI crawler access, prompt testing and citation tracking, because citations in standalone assistants often come from pages that do not rank in Google’s top 10.

Is there a free GEO audit template?

Yes. This article includes a free GEO audit template as a CSV file with 27 checks across six steps, each with a test, a pass condition, and impact, effort and tier columns. A separate prompt tracker CSV logs each prompt, platform and run date. Both open in Google Sheets or Excel.

How long does a GEO audit take?

For a site of 50 to 200 pages with 10 to 20 priority URLs, a first-pass GEO audit typically takes two to three weeks of focused work. Crawler access and schema checks are quick; the content scoring and the prompt runs across several platforms take most of the time. Later quarterly audits are faster because the prompt set, the template and the baseline already exist.

What should I fix first after a GEO audit?

Fix crawler access first: robots.txt rules, firewall blocks and noindex or nosnippet directives on priority pages. Then fix Person markup, sameAs links and headline mismatches. These are quick, and every other improvement depends on them.

Do I need llms.txt for a GEO audit to pass?

Not for Google. Google’s AI optimisation guide says Google Search does not use llms.txt, and that maintaining one “will neither harm nor help” visibility in Google Search. Other services may read it, so treat it as optional and record it in the audit as a decision rather than a failure.

How do I measure whether GEO fixes worked?

Re-run the same frozen prompt set monthly and compare citation rate, cited URL and position against your baseline. Alongside it, watch the AI referral channel in GA4 by landing page and the Generative AI performance report in Search Console. Judge changes against your own baseline, not against published benchmarks from other sites.