
How to Do a GEO Audit: The Full Walkthrough
A GEO audit answers one question: why do AI engines cite your competitors and not you? You run it across six layers — crawler access, indexation, entity clarity, passage extractability, citation share, and competitor gap — and at each layer you trace a symptom to a fixable cause. A first pass on a mid-size site takes about half a day. The output is a ranked list of gaps, each tied to a specific page or template you can change this week.
Most teams skip straight to rewriting content, which is layer four of six. If an AI crawler cannot fetch your page, or the page never enters the retrieval index, no amount of rewriting moves your AI visibility. Work the layers in order.
What are the six layers of a GEO audit?
Each layer gates the next. A page has to be fetchable before it can be indexed, indexed before it can be retrieved, and retrieved before its passages can be synthesized into an answer. The table below is the map for the rest of this walkthrough.
| Layer | What it checks | Primary signal | Common failure | |-------|----------------|----------------|----------------| | 1. Crawler access | Can AI bots fetch the page? | Server logs, robots.txt | Bot blocked at WAF or robots | | 2. Indexation | Is the page in the retrieval corpus? | Presence in Bing, crawl recency | JS-only rendering, thin content | | 3. Entity clarity | Does the engine know who you are? | About page, schema, sameAs | No canonical entity facts | | 4. Extractability | Can a 40-80 word passage stand alone? | Passage structure, headings | Answer buried past 200 words | | 5. Citation share | Are you named in real answers? | Prompt-set tracking | Absent from priority prompts | | 6. Competitor gap | Who owns the prompts you want? | Comparative citation data | Rival owns the category prompt |
Layer 1: Is your site reachable by AI crawlers?
Start with server logs, not a crawl tool. Filter the last 30 days for the user agents that matter: GPTBot and OAI-SearchBot (OpenAI), PerplexityBot and Perplexity-User (Perplexity), ClaudeBot and anthropic-ai (Anthropic), Google-Extended (Gemini training), and Bingbot, which feeds ChatGPT's live search through the Bing index. If any of these return 403s or never appear at all, you have a crawler access problem that content changes will never fix.
The two usual culprits are an overzealous WAF rule blocking bot traffic and a robots.txt directive that disallows one of these agents. Cloud firewalls often bucket AI crawlers as scrapers and rate-limit them into failure. Whitelist the agents you want, confirm robots.txt allows them explicitly, and re-check the logs a week later to confirm the 403s cleared.
Layer 2: Is the page actually in the retrieval index?
Being crawled is not being indexed. The fastest indexation check is a live search in Bing, because Bing's index is the retrieval backbone for ChatGPT search and several other assistants. If your key page does not surface for its own exact title in Bing, it is unlikely to surface inside an AI answer either. Submit it in Bing Webmaster Tools and watch for it to appear.
The most common indexation failure is client-side rendering. If your critical content only exists after JavaScript executes, many retrieval crawlers see an empty shell. Test by disabling JavaScript in your browser and reloading the page — whatever text remains is roughly what the engine ingests. Server-render or statically generate the answer-bearing content so it exists in the raw HTML.
Layer 3: Does the engine know what your brand is?
AI engines disambiguate brands using canonical entity facts. Open your About page and confirm it states, in plain sentences, what the company is, what category it operates in, when it was founded, by whom, and where it is headquartered. Add Organization schema from schema.org with a sameAs array linking your official profiles. This is the E-E-A-T scaffolding that answer engines lean on to decide which "Acme" you are among five companies with the same name.
Entity clarity has outsized leverage because it applies to every prompt at once. Fix your entity layer and you improve citation odds across the whole category, not just one page. This is groundwork for everything in the GEO optimization playbook.
Layer 4: Can a single passage answer the question alone?
Retrieval systems chunk pages into passages of roughly 40 to 80 words, embed them, and pull the best match. So the real unit of competition is the passage, not the page. The controlled study by Aggarwal et al. ("GEO: Generative Engine Optimization," KDD 2024) found that adding quotations, statistics, and cited sources lifted generative visibility by 30 to 40 percent, while keyword tuning did almost nothing. Extractability is where content work pays off.
Audit your top pages by asking, for each section: if an engine quoted only this paragraph, would it still make sense and still name the entity? If the answer is buried past the first 200 words, or if the paragraph opens with "as mentioned above," it fails. Restructure so each H2 is a real question and the paragraph beneath it is a self-contained answer that names the subject explicitly.
Layer 5: Are you named in the prompts that matter?
Now measure the outcome directly. Assemble the 15 to 25 prompts your buyers actually type when they shop in your category, run them across the engines you care about, and record whether your brand appears and in what position. This is the difference between guessing and knowing. A single run is noise; a repeated run on a fixed prompt set is a baseline you can move. This is exactly what citation tracking with full deep-URL resolution is built to automate — it shows not just that you were cited but which page and which passage the engine pulled.
Record the median presence across your prompt set rather than one lucky answer. AI answers vary by day, phrasing, and which sources the engine happens to retrieve in a given run, so a distribution tells the truth where a snapshot lies.
Layer 6: Which competitor owns the prompt you want?
The final layer is comparative. For every priority prompt where you are absent, note who is present instead, and open the page the engine cited. You are reverse-engineering the winning passage: its structure, its freshness date, its schema, the third-party sources that reinforce it. Often the winner is not a competitor's product page at all but a Reddit thread, a G2 listing, or a comparison article — which tells you where to invest next. Competitor analysis turns this into a repeatable diff instead of a manual crawl.
How do you turn the audit into a plan?
Score every gap on two axes: intent value (how commercial is the prompt) and fix cost (how many hours to close it). Crawler and indexation fixes are usually cheap and unblock everything downstream, so they go first even when a single prompt looks low-value. Entity fixes come next because they compound across the category. Passage rewrites and net-new comparison pages are higher effort but highest intent, so batch them by template.
A realistic first-audit output looks like this: two crawler-access fixes, one rendering fix, an entity-facts pass on the About page, five passage restructures on the highest-intent URLs, and two new comparison pages targeting prompts a rival currently owns. Re-run your layer-five prompt set 30 days later and compare median citation share against the baseline. That delta is your proof the audit worked — and the seed of the next one.
Run this loop quarterly. Engines change models, competitors publish, and your own freshness decays, so a GEO audit is not a one-time cleanup but a standing cadence. Pair it with the AEO checklist for the page-level detail, and treat the six layers as the frame you return to every quarter.
— The Menra Team
Track your AI mentions — one subscription at $69/mo. See pricing