A GEO audit answers three questions about a brand. When buyers ask AI assistants for recommendations, how often is the brand named? Who gets named instead? And what would have to change for that to flip? This guide is the method we'd use by hand: no special tools, a spreadsheet and a day.

It works for your own brand, and it works as a pitch. Agencies can run it on a prospect before the first meeting.

What you'll end up with

  • Visibility and share of voice, overall and for each assistant.
  • The competitors that get named instead, and how often.
  • The sources the assistants cite, and which of them leave the brand out.
  • A list of wrong or outdated things the assistants say about the brand.
  • A crawler access check.
  • A fix list in priority order.

Allow about a day for 20 questions on five assistants, most of it spent running and recording answers.

Step 1: Write 20 to 30 buyer questions

Everything depends on the questions, so spend real time here. A prompt in this audit is a question a real buyer would type, not a keyword.

Where to find them

  • Sales and discovery call notes. Copy the buyer's words, not the salesperson's.
  • Your reviews and your competitors' on G2, Capterra, Trustpilot or Google.
  • Questions posted in your category on Reddit, LinkedIn and industry forums.
  • Long, question-shaped queries in Google Search Console.
  • "People also ask" boxes in Google for your main category terms.

A good mix

TypeExampleShare
CategoryBest HR software for a 50-person company in IrelandAbout 40%
ProblemHow do we track holiday requests without spreadsheets?About 20%
ComparisonBambooHR vs HiBob for a small teamAbout 15%
AlternativesCheaper alternatives to BambooHRAbout 15%
BrandIs [brand] good for companies under 100 people?About 10%

Rules for writing them

  • Add the context buyers give: company size, industry, location, budget, the tools they already use. "Best CRM" and "best CRM for a 12-person recruitment agency in Leeds" get different answers, and the second is closer to what people ask.
  • Leave the brand out of every question except the brand questions.
  • One question per need. Five rewordings of the same question add hours and teach you little.
  • Write the list down and don't change it for the audit. You'll re-run the same list later to measure progress.

Step 2: Run them

Which assistants

At minimum ChatGPT, Google (AI Overviews, and AI Mode if your buyers use it), Gemini and Perplexity. Add Claude, Grok or Microsoft Copilot if your buyers are likely to use them. B2B software buyers lean heavily on ChatGPT. 63% of buyers in G2's 2026 survey mainly used it, so weight it accordingly.

How to run them

  • Web search on. Buyers get recommendations with search on, and it's the only way to see sources.
  • A clean session. Use a temporary or incognito chat, with memory and custom instructions off, or sign out where the assistant allows it. Your own history skews the answers.
  • The buyer's country. If the buyers are in Germany, check from Germany, with a VPN if you have to. Assistants use your location when they search.
  • More than once. Answers vary a lot between runs. SparkToro found the same list of brands came back less than once in 100 tries. Two runs per question per assistant is the minimum. Three is better.
  • Close together. Do the whole run within a day or two so every answer reflects the same week.

Step 3: Record every answer the same way

One row per answer. These columns are enough:

ColumnWhat goes in it
QuestionExactly as run
TypeCategory, problem, comparison, alternatives or brand
AssistantChatGPT, AI Overviews, Gemini and so on
Run1, 2 or 3
NamedYes or no
PositionWhere the brand was first named: 1 for first, blank if not named
Companies namedEvery company in the answer, in order, separated by commas
SourcesEvery cited URL
What it saidThe reason given for the brand or its competitors, and any wrong facts

Count a company once per answer, at the first place a reader meets it. Paste the full answer into a second tab if you can. You'll want it when you get to step 6.

Step 4: Score visibility and share of voice

Two numbers do most of the work.

  • Visibility is answers naming the brand divided by all answers. In a spreadsheet, =COUNTIF(E:E,"Yes")/COUNTA(E:E), if Named is column E and has no header.
  • Share of voice is the brand's mentions divided by all company mentions across the answers. Split the Companies column into one row per company, then count.

Work out both for the brand and its top three or four competitors, then break visibility down by assistant and by question type. The breakdowns are where the story is. A brand at 50% on comparison questions and 5% on category questions is known but rarely put on the shortlist. A brand at 40% on Perplexity and 0% on ChatGPT might have a crawler problem.

Visibility from a sample of answers comes with a margin of error. For a brand named in about half of answers, the 95% margin is roughly ±18 points on 30 answers, ±9 on 120 and ±6 on 300. So a move from 25% to 30% on 30 answers is noise. Don't celebrate it, and don't panic about the reverse. Results for one assistant come from a smaller sample than the total, so read them with more care.

Also note the average position when the brand is named, but don't lean on it. Order changes more between runs than membership does.

Step 5: Sort the sources

This is the most valuable step. Put every cited URL from every answer in one list, count how often each was cited, and label each with a type.

TypeExamples
The brand's siteHomepage, pricing, product and blog pages
A competitor's siteTheir comparison and "alternatives" pages especially
Review platformG2, Capterra, Trustpilot, Yelp, Google reviews
CommunityReddit, Quora, industry forums, LinkedIn posts
VideoYouTube reviews, walkthroughs, comparisons
Editorial"Best X for Y" roundups, trade press, news
ReferenceWikipedia, company databases, directories

Then open the 20 or 30 most cited URLs and mark each one: mentions the brand, mentions only competitors, or mentions nobody relevant. Sort by citation count. The pages at the top that mention competitors and not the brand are the audit's most important finding.

The type counts are useful too. If most citations are community and video and the brand has no presence there, that's a strategy finding, not a page fix. Our report on what AI answers cite has the cross-industry averages to compare against.

Step 6: Check what they say about the brand

Run these on each assistant, in a clean session:

  • What is [brand]?
  • Who is [brand] for?
  • How much does [brand] cost?
  • What are the downsides of [brand]?
  • [Brand] vs [main competitor]: which is better for [typical buyer]?

Log every wrong or outdated statement: old prices, retired products, the wrong target customer, confusion with a similarly named company, a complaint that was fixed years ago. Note the source cited for each. Assistants make things up sometimes, but most errors trace back to a real page that says the wrong thing.

Also note the reasons given in step 3's answers. If the assistants keep saying a competitor is "best for small teams" and the brand is "enterprise-focused", and that isn't true, that's a positioning problem you can see in the sources.

Step 7: Check that assistants can read the site

Look at /robots.txt. These are the crawlers that fetch pages for AI answers, according to each company's documentation:

CrawlerCompanyWhat blocking it does
OAI-SearchBotOpenAIRemoves the site from ChatGPT search answers
Claude-SearchBotAnthropicMay reduce visibility in Claude's search answers
Claude-UserAnthropicStops Claude fetching pages while answering a user
PerplexityBotPerplexityKeeps the site out of the index Perplexity answers from
GooglebotGoogleRemoves the site from Google Search, AI Overviews and AI Mode

Training crawlers are separate: GPTBot and ClaudeBot. Blocking them keeps the site out of future model training without removing it from search answers. That's a legitimate choice. Be careful with Google-Extended, though. It covers Gemini training and also grounding in the Gemini app, so blocking it can keep the site out of Gemini's answers, though not out of AI Overviews or AI Mode. A robots.txt that allows the answer crawlers and blocks the two training crawlers looks like this:

# Answer and search crawlers: allow, or you can't be cited
User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

# Training crawlers: your call
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

Then check the layers robots.txt can't show you:

  • Firewall and CDN. Ask whoever manages it whether AI crawlers are blocked, rate-limited or shown a challenge page. Check the logs for the crawler names above and look at the response codes they get.
  • JavaScript. View the page source, or load the page with JavaScript off. If prices, product descriptions or FAQs only appear after scripts run, some crawlers won't see them.
  • Indexing. Google's AI answers draw on the normal Google index, so pages must be indexed. Search Console shows which are.

You don't need an llms.txt file or special markup. Google's guide to AI features says Google Search ignores llms.txt and doesn't require structured data for AI features.

Step 8: Build the fix list

Turn every finding into a fix with an owner. Score each one on two things: how many questions it affects, and how soon it can ship. Then order the list in this sequence.

  1. Blockers. Crawler blocks and pages that can't be read. These come first because nothing else works until they're fixed.
  2. Wrong facts. Fix outdated prices, products and descriptions at the source they came from.
  3. Missing answers on the site. Pages for the use cases, comparisons and plain facts that step 3 showed buyers asking about.
  4. Cited pages that leave the brand out. The list from step 5, most cited first: roundup outreach, review profiles, directories.
  5. Presence where the discussion is. Community, video and press work aimed at the questions that matter most.

An example of what the top of the list looks like:

FixWhereQuestionsEffort
Allow OAI-SearchBot in robots.txtOn-siteAllMinutes
Publish starting prices on the pricing pageOn-site9 of 24Days
Pitch the "best HR software for small business" roundup, cited in 31 answersOff-site7 of 24Weeks
Complete the Capterra profile and ask 20 customers for reviewsOff-site11 of 24Weeks
Publish a comparison page against the top competitorOn-site5 of 24Days

Split the list into on-site and off-site work. Off-site fixes often matter more, and they're the ones a website-only team skips.

Step 9: Re-run and report

Re-run the same questions the same way, on a fixed schedule. Monthly is the minimum, weekly is better. Website changes tend to show within a few weeks. Changes that depend on other people, like reviews, threads and third-party articles, take one to two months.

When you report, show the trend with honest ranges, mark the date each fix went live, and point to the sources that changed. "The Capterra category page now lists us and it's cited in a fifth of answers" is the sentence that gets the work renewed.

Verdict does steps 2 to 5, part of step 8 and the re-runs for you: every question on six assistants each week, from the buyer's country, with the sources traced and a fix list kept up to date. But the method above works by hand, and it's worth doing once to know what you're looking at.