GEO / AI Search

The GEO Audit Checklist: How We Measure AI Visibility Before We Quote a Single Fix

Joel House, Founder, Xpand Digital
Joel HouseForbes Agency Council
Founder, Xpand DigitalJuly 11, 202614 min read

We don't quote a GEO engagement until we've run the audit. Not because it's a sales ritual — because you cannot fix AI visibility you haven't measured, and most of what gets sold as a “GEO audit” measures nothing.

This is the actual checklist my team works before we put a number on a generative engine optimization project. It's the same sequence whether the client is a law firm that's vanished from ChatGPT or an ecommerce brand watching Perplexity recommend three competitors and never them. Ten checks, run in order, each with a pass criterion and a red flag. If you run an in-house marketing team or you're an operator trying to sanity-check what an agency handed you, you can run a lighter version of this yourself — I'll tell you where the by-hand version breaks down.

First, the stakes. The Q1 2026 AI Visibility Index — 95,392 data points across 1,004 businesses — found 65.9% of them invisible in AI search. Not ranking poorly. Invisible: never named, never cited, when a buyer asks the AI a question their business exists to answer. A GEO audit is the instrument that tells you which side of that line you're on, and by how much. Our free AI visibility auditruns this exact checklist for you, but the value is in understanding what it's testing — so here it is.

Disclosure: Xpand runs this audit on MentionLayer, the AI-visibility SaaS we built, and uses PressForgefor the citation-earning work in step 7. The checklist below is tool-agnostic — every check works with a spreadsheet and patience. I'll flag where instrumentation earns its keep.

Before you start: define what “visible” even means

The single most common reason a GEO audit produces a useless result is that it never defined the answer set. “Are we visible in AI?” is not a question an audit can answer. “When someone asks ChatGPT for the best commercial roofing contractor in Denver, are we in the list?” is. Before you run a single query, lock three things:

  • The query set. 15–40 real buyer prompts, phrased the way a human actually asks an AI — “who's the best…”, “recommend a…”, “compare… vs…”, “is… any good” — not your head keywords from a rank tracker. AI questions are conversational and long-tailed.
  • The competitor set. Your top three rivals, named. Visibility is relative; “we're mentioned 20% of the time” means nothing until you know the leader is at 70%.
  • The engines. ChatGPT, Perplexity, Google AI Overviews, Gemini, and Claude at minimum. Each retrieves differently, so a one-engine audit is a distorted read.

Get this wrong and every number downstream is noise. Get it right and the rest of the checklist becomes mechanical.

The 10-part GEO audit checklist

The checks run in a deliberate order — measurement first (are you even in the answer?), then diagnosis (why not?), then the plan. Skipping to diagnosis before you've measured is how agencies end up “optimising” for a problem the client never had.

01

Baseline visibility — are you in the answer at all?

This is the whole ballgame, and it comes first. For every query in your set, ask each engine and record one thing: were you named in the answer, yes or no. Not “could you rank” — whether the model actually said your name when a buyer asked. This is the number the AI Visibility Indexis built on, and it's the number two-thirds of businesses fail.

How to check it
Run each query in each engine and log a binary: mentioned / not mentioned. Then sample again. AI answers vary run to run, so a single pass is anecdote, not data — run each query at least three to five times per engine and record a hit rate, not a yes/no. This is the point where doing it by hand gets brutal: 30 queries × 5 engines × 5 samples is 750 prompts, which is exactly why we automate it on MentionLayer.
Red flag
You appear in fewer than 1 in 5 sampled answers, or you're absent from an engine entirely while competitors show up consistently.
Passing looks like
You have a real per-engine hit rate for every priority query — a share-of-model baseline you can re-measure against, not a vibe.
02

Citation and link presence — named vs. actually cited

Being named is good. Being cited with a link is better — it's a click, a referral, and a signal the engine trusts your source enough to send a user there. These are different metrics and a real audit tracks both. Perplexity and Google AI Overviews link generously; ChatGPT cites more selectively. You want to know not just “did they say my name” but “did they link me as the source.”

How to check it
For every answer where you appeared, record whether the mention carried a citation to your domain, and which URL. Then flip it: for answers where a competitor was cited, note which of their pages earned it. That competitor URL list is gold — it tells you exactly what kind of content the engines are pulling as source-grade in your category.
Red flag
You're named occasionally but almost never cited with a link, while a competitor's blog or comparison page gets cited repeatedly.
Passing looks like
You know your citation rate per engine and you have a list of the exact competitor URLs winning the citations you're not.
03

AI crawler access — can the engines even reach you?

Half the “why are we invisible” mysteries end here. If your robots.txt or a firewall rule blocks the AI crawlers, you've locked yourself out of the training and retrieval that visibility depends on. This is a five-minute check that saves you from optimising content no engine can read.

How to check it
Pull your robots.txt and check the disallow rules against the current AI user-agents: GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended. Then check server logs or your CDN/WAF for these agents getting 403s or blocks. A Cloudflare bot-fight rule or an aggressive security plugin will silently gate them even when robots.txt is clean.
Red flag
A blanket disallow, a WAF challenge that AI agents can't pass, or a security setting that returns 403s to the bots you want reading your site.
Passing looks like
The engines you care about are explicitly allowed in robots.txt and reaching real 200s in your logs — access is not the problem.
04

Entity and structured data — does the graph know who you are?

AI engines reason about entities, not strings. If the model isn't confident that “your business” is a distinct, well-defined thing — with a consistent name, category, location, and set of relationships — it won't risk naming you. Entity confusion (two businesses with your name, an inconsistent NAP, no canonical identity) is one of the quietest killers of AI visibility.

How to check it
Validate your Organization / LocalBusiness / Person schema and confirm the graph is internally consistent — same legal name, same sameAs links to your real profiles, same category everywhere. Check whether you have a coherent presence in the sources engines lean on for entity resolution: your own site, Wikidata/Wikipedia where warranted, authoritative directories, and consistent citations across the web. Search your own brand in each engine and see whether it describes you accurately — a garbled description is the model telling you the entity is fuzzy.
Red flag
No structured-data graph, conflicting business details across the web, or the engine confidently describing you as something you're not.
Passing looks like
A clean, consistent entity graph, and every engine describes your business accurately when asked about you by name.
05

Content extractability — can a model lift a clean answer from your page?

Engines quote the pages they can extract from easily. If your best answer is buried in a 1,400-word preamble, trapped in an image, or written as marketing mush that never states a fact plainly, the model reaches for a competitor who wrote it as a clean, liftable claim. Extractability is a content-structure problem, not a word-count one.

How to check it
Take your five most important buyer questions and check whether each has a page that answers it directly, near the top, in plain declarative sentences a model can quote verbatim. Look for the extraction-friendly structure engines favour: clear H2 questions, concise answer paragraphs, definition-style openers, tables for comparisons, and FAQ blocks. Then read it back as if you were the model — is there a self-contained sentence you'd cite, or would you have to paraphrase and hedge?
Red flag
Your answers are implied but never stated outright, gated behind fluff, or locked in images and PDFs a model won't parse.
Passing looks like
Every priority question has a page with a clean, quotable answer high on the page — the model can lift it without rewriting it.
06

Freshness and consistency — is your information current and un-contradicted?

Models discount sources that look stale or that contradict themselves across pages. If your pricing says one thing on the services page and another in an old blog post, or your “2024 guide” still leads your topic, you're handing the engine a reason to trust someone else. Consistency is a trust signal; contradiction is a demotion.

How to check it
Audit your priority pages for stale dates, outdated claims, and internal contradictions — conflicting service lists, mismatched locations, old year-stamped titles. Confirm dateModified reflects real updates rather than being frozen at publish. Cross-check the facts a buyer would ask about (what you do, where, for whom, at roughly what price) and make sure every page tells the same story.
Red flag
Year-stamped titles two years out of date, contradictory facts across pages, or a dateModified that never moves.
Passing looks like
Priority pages are current, internally consistent, and tell one coherent story about who you are and what you do.
07

Third-party citation footprint — what does the web say about you?

This is the check most on-page “GEO audits” skip entirely, and it's the one that moves the needle most. Engines don't just read your site — they learn who's credible from what independent, authoritative sources say about you. If the third-party web is silent on your business while competitors are cited in roundups, press, and industry articles, no amount of on-page schema closes the gap.

How to check it
Map your earned mentions: press, podcasts, industry roundups, “best X” listicles, and genuine editorial citations — the same footprint that drives classic authority. Compare it head-to-head with each competitor. Then look at the competitor URLs from step 2: are they winning citations because they're named in third-party sources the engines trust? This is where earned coverage and digital PR become GEO work — the mechanics are the same ones in our link-building guide, aimed at AI citations instead of just rankings. We run this campaign layer on PressForge.
Red flag
A thin or non-existent third-party footprint while competitors are cited across independent, authoritative sources.
Passing looks like
A credible, growing base of independent citations — the web corroborates your authority, so the engines have a reason to trust you.
08

Competitor share of model — who owns your category in AI?

Every check so far measured you. This one measures the field. Share of model is the percentage of AI answers in your category that name a given business — the AI-era equivalent of share of voice. It reframes the whole audit: you're not trying to “be visible,” you're trying to take share from whoever currently owns the answer.

How to check it
Using the same query set and sampling from step 1, tally mentions for you and each of your three competitors, per engine. Turn it into a percentage share. Now you can see the shape of the problem: is one rival dominating every engine, or is the category fragmented and winnable? Are you weak everywhere or strong in Perplexity and absent in ChatGPT? The share-of-model table is the single most useful artifact the audit produces — it's the scoreboard you'll re-measure against every quarter.
Red flag
One competitor holds a dominant share across every engine while you register in low single digits or not at all.
Passing looks like
A clear per-engine share-of-model table for you and your top three rivals — you know exactly whose share you're taking and where.
09

Sampling depth — did you measure enough to trust the numbers?

This is a meta-check, and skipping it is how audits lie. AI answers are non-deterministic: ask the same question five times and you can get five different lists. A number built on one sample per query is a coin flip dressed as data. Before you present a single finding, confirm the audit sampled deeply enough that the numbers are stable.

How to check it
Verify each query was run multiple times per engine (three to five is a workable floor; more for high-stakes categories) and that your visibility figures are rates across those samples, not single observations. Spot-check volatility: if a query's result swings wildly between runs, flag it as unstable rather than reporting a false precision. Note the date — every GEO measurement is a snapshot with a short shelf life.
Red flag
Single-sample findings, no sampling methodology stated, or a “score” presented with a precision the data can't support.
Passing looks like
Every headline number is a rate across repeated samples, volatility is disclosed, and the snapshot is dated.
10

The prioritised fix list — audit to plan

An audit that ends in a score is half an audit. The deliverable that matters is a ranked list of fixes, each tied to the check that surfaced it and ordered by visibility earned per hour of work. This is the bridge from “here's what's broken” to “here's what we do Monday.”

How to check it
Take every failed check and turn it into an action: crawler access is a same-day config change; entity cleanup and a schema graph are a week; extractability rewrites are a content sprint; the third-party citation campaign is an ongoing digital-PR engagement. Score each by impact (how much share of model it likely earns) against effort, and sequence highest-leverage first. That sequence is the engagement — it's what our GEO agencywork is built to execute, and what you'd hand any competent team to run.
Red flag
A findings deck with no ranked actions, or a fix list ordered by what's easy to sell rather than what earns visibility.
Passing looks like
A prioritised, effort-scored action list where every item traces to a specific failed check and a specific engine outcome.

“A GEO audit that ends in a score is half an audit. The half that matters is the ranked list of what to fix first.”

Joel House · Founder, Xpand Digital

What a fake GEO audit looks like

The category is new enough that “GEO audit” gets slapped on things that measure nothing. If you're evaluating an agency's audit — or your own — these three tells mean you're looking at theatre, not diagnosis:

  • The single ChatGPT screenshot
    One prompt typed into ChatGPT, screenshotted, pasted into a slide. No other engines, no competitor benchmark, no repeat sampling. Because answers vary run to run, a single screenshot proves nothing except that someone opened ChatGPT once.
  • The re-skinned SEO crawl
    A traditional site-audit export with an 'AI readiness score' bolted on top. It flags missing schema, which is genuinely useful, but it never queries an actual engine — so it can't tell you whether you're cited, or which competitor took your spot.
  • The generic checklist with no measurement
    A PDF listing llms.txt, FAQ schema, and entity tips that apply to every business on earth. Reasonable advice, zero diagnosis. Without a baseline and a competitor benchmark, it can't tell you what's actually costing you visibility — only what's theoretically possible.

The common thread: none of them query real engines at real sampling depth against real competitors. That's the line between a GEO audit and a GEO-flavoured guess. The reason we can run the real version is that we built the instrument for it — MentionLayer is the same platform that generated our Q1 2026 AI Visibility Index, and Joel wrote AI for Revenueon the strategy behind it. Agencies selling AI visibility without their own measurement layer are reading someone else's dashboard and hoping.

How to run a lighter version yourself this week

You don't need a platform to get a directional read. If you want a gut check before you talk to anyone, here's the minimum viable version an operator can run in an afternoon:

  • Pick 15 buyer prompts phrased conversationally, and name your top three competitors.
  • Run each prompt three times in ChatGPT, Perplexity, Gemini, and Google AI Overviews. Log a simple tally: were you named, were you cited, who was named instead.
  • Check crawler access — open your robots.txt and confirm you're not blocking GPTBot, PerplexityBot, ClaudeBot, or Google-Extended.
  • Read your top five pages as a model would — is there a clean, quotable answer near the top, or is it buried?
  • Tally the third-party mentions for you versus each competitor.

That gets you 80% of the diagnostic value for zero budget. Where the by-hand version breaks is sampling depth and consistency — three runs of 15 prompts is a signal, not a stable score, and it's hard to re-measure the exact same way next quarter to prove your work moved the number. That's the gap the instrumented version closes, and it's why our free AI visibility audit runs the full sampled checklist and hands you the share-of-model table and the ranked fix list, not a screenshot.

Frequently Asked Questions

Joel House, Founder, Xpand Digital
Founder, Xpand DigitalJuly 11, 2026

Want to know where you
actually stand in AI search?

We'll run this exact checklist on your business — baseline visibility across five engines, a competitor share-of-model benchmark, and a prioritised fix list. Measured on MentionLayer, walked through by Joel.

Get Your Free AI Visibility Audit See How We Fix It
Put it to work

Work with the team that wrote the playbook.