A GEO audit is for an in-house SEO or marketing lead who needs a repeatable check of whether AI answer systems can find the site, and what they say when a buyer asks a real question.
This is a 5-day GEO audit that separates whether AI systems can reach and read the pages, whether those pages are good retrieval candidates, whether you are mentioned, cited, or linked across a frozen prompt set, and who wins instead and why. It ends in a prioritized fix list, a re-measurement plan, and a scoring sheet, as one pass inside how to build an AEO program. It does not produce a GEO score.
Key takeaways
- A GEO audit (generative engine optimization) checks access, retrieval, and a frozen prompt set. It is not one score, and it does not replace an SEO audit.
- Google says AI Overviews and AI Mode add no technical requirements: be indexed and eligible for a snippet. There is no special AI schema.
- OpenAI, Perplexity, Anthropic, and Google use different robots.txt tokens for search, training, and user-triggered fetches. Google-Extended does not change Google Search inclusion or ranking.
- Aggarwal and colleagues (KDD 2024) found citations, quotations, and statistics improved source visibility in their GEO-bench. That benchmark is not a promise for ChatGPT or Google AI Overviews.
- Detailed (August 26 to September 22, 2026) saw a prompt's selected leading brand on 79% of the next 14 days in ChatGPT and 85% in Google AI Overviews. SISTRIX saw 54-59% of Google AI Mode's cited domains new versus the previous week, by country. Do not merge them.
- Store a failed check apart from "not mentioned." Re-run the same prompts at 2 weeks and 4 weeks, and read Google Search Console with its reporting delay.
What is a GEO audit?
A GEO audit checks whether important pages can be retrieved, and how a saved list of buyer questions treats your brand. GEO means generative engine optimization, the term Aggarwal, Murahari, Rajpurohit, Kalyan, Narasimhan, and Deshpande used at KDD 2024. An AI visibility audit is the same job under another name.
It is not one number, and it does not replace a classic SEO audit. Pages still have to be crawled and indexed. This pass builds on that and adds an answer sample.
For Google AI Overviews and AI Mode, Google says there are no extra technical requirements. The page must be indexed and eligible to show a snippet. You do not need a new machine-readable file, an AI text file, or special schema, and eligibility is not a guarantee of inclusion. Source: AI features and your website, updated December 10, 2025.
Keep this separate from an AI brand reputation audit, which asks whether answers about your company are accurate. A ranking is a third measurement. Our review of Google rankings and AI citations treats rankings, citations, and mentions as different signals.
What should a GEO audit include?
Six areas, each with a file you can reopen next month.
| Area | Question it answers | Evidence to file |
|---|---|---|
| Access and indexability | Can crawlers fetch it, and can Google index it with a snippet? | robots.txt note, index status, canonical, snippet control |
| Retrieval readiness | Does the page answer, with a source a reader can open? | The gap: buried answer, missing source, or mismatched schema |
| Frozen prompt set | Which buyer questions, market, and language are fixed? | Wording, stage, market, language, freeze date |
| Mention, citation, and link | Did the answer name you, attribute a source, or give a URL? | Saved answer plus three separate fields |
| Competitors | Who was named or cited instead? | Domains, and the gap on your page if you can see it |
| Fixes and re-measurement | What changes, who owns it, and when do you ask again? | Owner, and the 2-week and 4-week dates |
How to run a GEO audit in 5 days
Use five working days as a planning template for a first pass with 20 to 50 prompts. A large site, missing access, or complex indexing problems can take longer. Do not rewrite a page the relevant crawler cannot fetch.
Day 1: Check access and indexability
Output: one row per important URL.
- Open the live robots.txt and record the tokens below. A wildcard group does not cover an agent that has its own group. See AI search crawlers and training controls.
- Record what each token controls and whether its provider says robots.txt applies. Search, training, and user-triggered fetching have different rules; a user-triggered fetch is not automatically exempt.
- In Google Search Console, inspect the URLs that should answer the prompt set. Record index status, the selected canonical, and any noindex or snippet control.
- Compare the first HTML response with the rendered page. Put the sentences you want retrieved in that first response. Whether AI search can read JavaScript explains why one product's test is not evidence about the others.
- If you publish llms.txt, check every link against the live site. Correct stale links and descriptions; remove the file only if you no longer intend to maintain it.
| Token | What the provider says it is for |
|---|---|
| OAI-SearchBot | ChatGPT search. Opt-out removes search answers, not navigational links. Independent of GPTBot. |
| GPTBot | Training. Disallow means do not use the content for foundation models. |
| ChatGPT-User | User-triggered fetch. robots.txt may not apply. Not the Search opt-out. |
| PerplexityBot | Perplexity search. Not a training crawler. |
| Perplexity-User | User-requested fetch. Generally ignores robots.txt. |
| ClaudeBot | Training. A block signals that future material stays out of training sets. |
| Claude-SearchBot | Search indexing. Disabling it may reduce search visibility. |
| Claude-User | User-initiated fetch. Disabling it blocks retrieval for a user query. |
| Googlebot | Google Search, including Search features. |
| Google-Extended | Future Gemini training and specified grounding. Not Search inclusion or ranking. |
Sources, checked November 13, 2026 unless noted: OpenAI crawlers, Perplexity crawlers, Anthropic crawlers, and Google's common crawlers (updated October 30, 2026).
The same Google page says nosnippet, data-nosnippet, max-snippet, and noindex limit what Search can show. Indexed is not the same as snippet-eligible. llms.txt is optional: Google does not require a machine-readable file or AI text file for AI Overviews or AI Mode, so the file is not a ranking or AI Overview lever. Keep it only if it matches the site.
Day 2: Check page-level retrieval readiness
Output: the URL, the buyer question it should answer, and one gap.
- List the pages that should answer the day 3 questions. Read the current page before commissioning a new one.
- Answer a question-shaped heading in its first sentence, including the condition that changes the answer.
- Keep the name, the date, and the unit in the section that uses them.
- Use a table when the reader is comparing options or steps.
- Add a quotation or statistic only when the linked source states that figure.
- Compare structured data with the visible text. Do not add a special "AI schema."
On GEO-bench, their KDD 2024 benchmark (August 25 to 29, 2024), Aggarwal and colleagues found that citations, quotations, and statistics improved source visibility. The test used their impression metrics, plus a separate Perplexity.ai run. It does not measure today's ChatGPT, Google AI Overviews, or AI Mode. Source: GEO: Generative Engine Optimization. Put the source next to the claim. Google says structured data should match visible text, and that these features need no special schema.org type.
Day 3: Build a frozen prompt set
Output: an ID, the exact wording, the funnel stage, the market, the language, and a frozen flag.
- Write 20 to 50 buyer questions across early research, comparison, and a decision.
- Freeze the wording. If a prompt was vague, add a new row instead of editing the old one.
- Set market and language on every row. US English and UK English are different tests.
- Prefer a logged-out session where the product allows it. Record platform and date on every run.
- Ask the same prompts more than once. One run is a sample, not a baseline.
Day 4: Measure mentions, citations, links, and competitors
Output: one row per prompt, per platform, per run, plus who appeared instead of you.
- Mention: the answer names your brand, product, or company. That can happen with no link.
- Citation: the answer attributes a claim to a specific source. That source may not be the recommended brand.
- Link: a URL a reader can open. A citation often includes one. A link can also point elsewhere.
- Run the frozen set and save the full answer.
- Mark mention, citation, and link separately, and copy the domain and URL when present.
- When you are absent, record the cited domains or named brands, and one reason that page might fit if the page itself shows it.
- Mark a timeout, a block, an empty response, or a search with no AI Overview as its own status. Do not store it as "not mentioned."
- Keep each platform in its own column.
Detailed (Glen Allsopp, September 23, 2026) checked more than 70,000 responses from more than 1,300 prompts, daily, in ChatGPT and Google AI Overviews, logged out in the United States, from August 26 to September 22, 2026. A leading brand chosen from only the first 14 days still appeared on 79% of the next 14 days in ChatGPT and 85% in Google AI Overviews. Those are selected leaders, not every brand. Source: How volatile are AI responses?
SISTRIX (Johannes Beus, May 1, 2026, modified May 12, 2026) measured cited domains. In Google AI Mode, 54-59% of domains cited in a week were new versus the previous week, depending on country. That is turnover, not brand recurrence, and not traffic. Source: AI citation drift.
Our review of AI visibility tracking reliability keeps those two populations apart. Do not average them.
Day 5: Prioritize fixes and set the re-measurement plan
Output: owners, and two dates on the calendar.
- Judge impact and effort in words. A blocked crawler on a revenue page outranks a new introduction on a blog post.
- Name an owner and a done-when test. "Remove nosnippet on this URL and recheck URL Inspection" is a task. "Make the site AI-ready" is not.
- Schedule the same prompt set at 2 weeks and at 4 weeks.
- Read Google Search Console for the URLs you changed, after its reporting delay. A Friday edit does not have a Monday verdict.
- Label measured results and hypotheses separately. Allowing OAI-SearchBot is measured. Earning citations from that change is a hypothesis. A later increase is an observation, but does not by itself prove the change caused it.
GEO audit scoring sheet
Copy this table. Pass means the proof is saved. Fail means the contradiction is saved. Blank means the check has not been run. Do not convert the rows into a GEO score.
| Check | How to test | Evidence of a pass | Priority |
|---|---|---|---|
| Search crawler allowed | Read the live group for OAI-SearchBot, PerplexityBot, or Claude-SearchBot. | Pass: the relevant search crawler can access the intended URLs. Fail: that crawler is blocked by robots.txt or the server. Blocking a training crawler alone is not a search-access failure. | Do first |
| Training choice recorded apart | Compare GPTBot, ClaudeBot, and Google-Extended with the search tokens. | Pass: each token has its own note. Fail: one rule is called "we blocked AI." | Do first |
| Key URL indexed | URL Inspection in Search Console. | Pass: the intended URL is indexed. Fail: excluded, or another canonical won. | Do first |
| Snippet eligible | Check noindex, nosnippet, data-nosnippet, and max-snippet. | Pass: the page is eligible for a search snippet. Fail: noindex or nosnippet prevents that. Review max-snippet and data-nosnippet separately for restrictions on usable text. | Do first |
| Answer in the first HTML | Compare a signed-out response with the rendered page. | Pass: the answer is in the HTML. Fail: it appears only after JavaScript. | Do first |
| Heading answered first | Read the first sentence under each question heading. | Pass: it answers the heading. Fail: it opens with background. | Before prompts |
| Claims match a source | Open every statistic and quotation. | Pass: number and date match the source. Fail: the figure was altered or unsourced. | Before prompts |
| Schema matches the page | Compare JSON-LD with the visible text. | Pass: they agree, or there is no extra markup. Fail: markup adds an unseen fact. | Before prompts |
| Prompt set frozen | Count rows. Read wording, market, and language. | Pass: 20 to 50 locked buyer questions. Fail: the list keeps changing. | With the first run |
| Three fields, not one | Fill mention, citation, and link from the saved answer. | Pass: three fields, answer attached. Fail: one tick covers all three. | With the first run |
| Failures kept separate | Find timeouts, blocks, and searches with no AI Overview. | Pass: own status. Fail: counted as "not mentioned." | With the first run |
| Recheck booked | Look at the calendar and the owner. | Pass: same set at 2 weeks and 4 weeks, with an owner. Fail: "watch the dashboard." | After the first run |
What a good GEO audit tool should measure
A tool can store the day 4 sheet. It cannot skip day 1. Prefer platform-separated results, saved answer text, mentions kept apart from cited sources, failed checks kept apart from "not mentioned," and repeat runs of a fixed prompt list.
Be skeptical of a one-number GEO score, of a "share of AI traffic" you cannot trace to a visit in your own analytics, and of a crawler that only reads your HTML and then claims to know what ChatGPT said.
Google Search Console is the record for indexing and for clicks, impressions, and queries. A crawler such as Screaming Frog can list status codes, canonicals, and noindex. A logged-out check still matters when you need one transcript. None of these is a GEO score.
Where outwrite.ai fits
outwrite.ai Results tracks a brand across ChatGPT, Perplexity, Google AI Overviews, Gemini, Claude, and Grok. It checks every tracked prompt every 3 days, keeps each platform's answer separate, and shows brand mentions, sentiment, and cited sources. An unavailable or failed check stays distinct from "not mentioned." Simple includes 5 managed buying questions. Pro lets you use your own prompts and run checks manually. Search Console clicks, impressions, and queries stay in a separate report. The ChatGPT rank tracker and the Google AI Overviews tracker are platform views of that same sample.
outwrite.ai SEO Agent, on Pro, audits titles, descriptions, image alt text, structured data, headings, canonicals, and internal links, and can apply supported fixes through one website script. robots.txt, redirects, and server settings need a CMS or hosting change, and the agent gives instructions rather than applying them. After the included first audit, analysis costs 2 credits per page. It does not audit AI-crawler robots rules or guarantee rankings or citations. outwrite.ai does not offer a free GEO audit or a GEO score.
Common mistakes
- Publishing a GEO score. The sheet is the evidence. A blended grade hides the failed row.
- Blocking the wrong bot. Disallowing GPTBot is not a ChatGPT search opt-out. Disallowing OAI-SearchBot does not, by itself, stop training.
- Using Google-Extended as the AI Overview switch. Google says it does not affect Search inclusion or ranking.
- Counting a timeout as "not mentioned."
- Editing a prompt and comparing the old rate. Start a new series.
- Rewriting a page the crawler cannot fetch.
- Substituting a reputation review for this audit. Accuracy and retrieval are different checklists.
- Stopping after adding llms.txt or an "AI schema." Google requires neither for AI Overviews or AI Mode.
- Merging Detailed with SISTRIX. 79% and 85% are selected leaders on later days. 54-59% is new AI Mode domains versus the previous week.
Questions people still ask
How long does a GEO audit take?
This guide proposes five working days for the first pass; it is a planning framework, not a measured completion-time guarantee. A small template set can compress days 1 and 2. The 2-week and 4-week rechecks are part of the audit, not a follow-up you invent later.
Is a GEO audit different from an SEO audit?
Yes. An SEO audit checks crawling, indexing, and whether pages deserve to rank. A GEO audit builds on that and adds a frozen sample of mentions, citations, and links. Do not run one instead of the other.
How often should you re-run a GEO audit?
Re-ask the same prompts at 2 weeks and 4 weeks after a fix, then monthly or quarterly. Sooner if robots.txt, noindex, or a removed page changes the test. Do not sample daily and call the swing a trend.
Sources
- Google Search Central. "AI features and your website." Updated December 10, 2025. https://developers.google.com/search/docs/appearance/ai-features
- OpenAI. "Overview of OpenAI Crawlers." Checked November 13, 2026. https://platform.openai.com/docs/bots
- Perplexity. "Perplexity Crawlers." Checked November 13, 2026. https://docs.perplexity.ai/guides/bots
- Anthropic Help Center. "Does Anthropic crawl data from the web, and how can site owners block the crawler?" Checked November 13, 2026. https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler
- Google Search Central. "Google's common crawlers." Updated October 30, 2026. https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
- Pranjal Aggarwal, Vishvak Murahari, Tanmay Rajpurohit, Ashwin Kalyan, Karthik Narasimhan, and Ameet Deshpande. "GEO: Generative Engine Optimization." KDD 2024, August 25 to 29, 2024. https://arxiv.org/abs/2311.09735
- Glen Allsopp, Detailed. "How Volatile Are AI Responses?" Published September 23, 2026. https://detailed.com/ai-volatility/
- Johannes Beus, SISTRIX. "AI citation drift: how stable are sources in AI search results?" Published May 1, 2026, modified May 12, 2026. https://www.sistrix.com/blog/ai-citation-drift-how-stable-are-sources-in-ai-search-results/
- outwrite.ai. "How Reliable Is AI Visibility Tracking?" Published October 30, 2026. https://outwrite.ai/research/ai-visibility-tracking-reliability
