# The complete GEO audit methodology

<span class="byline">by John Morabito · April 18, 2026 · 18 min read</span>

**TL;DR**
- A Generative Engine Optimization (GEO) audit has seven steps: inventory, chunk audit, schema audit, entity audit, citation analysis, competitive delta, and roadmap.
- Each step produces a scored artifact you can hand to a content team for execution. Not a slide deck.
- Steal the whole thing. Execution is the moat, not the methodology.

## Step 1: Inventory

The inventory step builds the ground truth for everything that follows. You cannot audit what you cannot classify.

**What to do**
1. Run a full crawl. Screaming Frog for sites under 10k URLs. Firecrawl or DataForSEO On-Page API for larger or JS-heavy sites.
2. Classify every URL by template: home, pillar, blog, product, category, landing, about, contact, legal, admin.
3. Measure word count, H-tag density, internal link count per URL.
4. Export to CSV. This CSV is the artifact Steps 2 and 3 reference.

**Skill prompt**
```
Skill: winston-tech-audit

Crawl {client_domain} and classify each URL by template.
Output CSV: url, template, word_count, h2_count, h3_count,
internal_links_in, internal_links_out, schema_types.
```

## Step 2: Chunk audit

AI engines quote passages, not pages. So every H2 section must work as a standalone citable unit.

**What to do**
1. Sample 10-25% of URLs per template. Full coverage for pillars.
2. Score each H2 section on the 0-1-2 rubric.
3. Compute page-level average and site-level median.
4. Record top three failure patterns per template.

**0-1-2 rubric**
- **0**. No H2 structure or buried headings.
- **1**. H2s exist, but openings are pronoun-dependent.
- **2**. Every H2 opens with a direct-answer sentence.

## Step 3: Schema audit

Schema.org JSON-LD is the cheapest GEO win available. AI engines read it before they read prose.

**What to do**
1. For every template, check: Article/BlogPosting, FAQPage, HowTo, Organization, Person, WebSite, BreadcrumbList.
2. Validate with Google's Rich Results Test and schema.org's validator.
3. Check Person schema consistency across author bylines.
4. Verify Organization schema has sameAs links to LinkedIn, Crunchbase, and category directories.

**Common failure modes**
- FAQ schema does not match visible FAQ copy.
- Multiple conflicting Organization blocks on the same page.
- HowTo schema with zero steps because the author copied the template literally.

## Step 4: Entity audit

The test question: can a model, given only your site, write one accurate paragraph describing your category, top three services, and two pieces of credibility proof?

**What to do**
1. Audit the About page for category, founder, three specific service areas.
2. Person schema on every author byline with sameAs links.
3. Organization schema with `knowsAbout`, `areaServed`, `memberOf`.
4. Run a prompt against Claude and ChatGPT: "Based on {domain}, describe what this company does." Note what the engines get wrong.

## Step 5: Citation analysis

This is where the audit becomes an ongoing instrument, not a one-shot deliverable.

**What to do**
1. Build 50-200 buyer-intent prompts in the client's category.
2. Run prompts against ChatGPT, Perplexity, Claude, Google AI Overviews.
3. Classify cited domains: client, direct competitor, publisher, Reddit/Quora, other.
4. Compute citation share per engine and per prompt cluster.
5. Re-run weekly. Track deltas.

## Step 6: Competitive delta

Map your site's scores from Steps 2-4 against the competitors surfaced in Step 5.

**What to do**
1. Pick the top five cited competitors.
2. Run the chunk, schema, and entity audits against each using the same rubric.
3. Build a 5-column comparison table across the four dimensions.
4. Flag any dimension where your score is more than 0.5 below the competitor median.

## Step 7: Roadmap

Sequence by impact-to-effort. High-impact-low-effort first.

1. **Weeks 1-2**. Schema fixes. Fastest win.
2. **Weeks 3-6**. Chunk rewrites on pillar pages. Top 20 highest-traffic.
3. **Weeks 7-10**. Entity content. Rebuild About, add Person schema with sameAs.
4. **Weeks 11-12**. Citation-source seeding on publisher sites.

Re-audit at week 13.

## The scoring rubric

| Dimension | 0 | 1 | 2 |
|---|---|---|---|
| Chunk readiness | No structure | Pronoun-dependent | Self-contained |
| Schema coverage | None or broken | Partial | Full + validated |
| Entity clarity | No story | About exists, no schema | Consistent signal |
| Citation presence | Zero | <20% of prompts | 20%+ across engines |

Median below 1.5 is a GEO engagement worth taking on.

## Turning the rubric into a 0-100 scorecard

The 0-1-2 rubric is fine for an analyst and useless for a client who wants a number. So the audit rolls the four dimension scores into a single 0-100 GEO readiness grade with a red, yellow, green band.

The math is boring on purpose. Each dimension (chunk readiness, schema coverage, entity clarity, citation presence) scores 0, 1, or 2. Multiply the median by 12.5 to put each on a 25-point scale, then sum. Four perfect 2s give you 100. A flat 1 across the board lands at 50.

| Score | Band | What it means | What you do |
|---|---|---|---|
| 0-39 | Red | Invisible to AI engines. Missing schema, JS-rendered content, no entity story. | Full rebuild. A real engagement. |
| 40-69 | Yellow | Cited occasionally but losing the answer space. | Targeted fixes. Chunk rewrites and citation-source seeding move it fastest. |
| 70-100 | Green | Consistently cited across engines. | Maintenance cadence. Monitor and re-run on content release. |

Two caveats keep the grade honest. Weight citation presence higher (we run it at 40%) when the client only cares about visible AI answers. And never report a green grade off a single citation run: Step 5 needs a stable number across at least three weekly runs before the citation dimension earns a 2. For the dashboard that keeps this number live, see https://www.winstondigitalmarketing.com/playbooks/how-to-build-an-ai-visibility-dashboard/.

## The GEO audit tool stack

You do not need a GEO platform. You need a crawler, a renderer, a schema validator, a SERP data source, and direct access to the AI engines.

| Step | Job | Tool we reach for | Rent or build |
|---|---|---|---|
| Inventory | Crawl and classify URLs | Screaming Frog, Firecrawl, DataForSEO On-Page | Rent |
| Render check | Confirm content exists without JS | curl plus a headless Chrome render diff | Build (ten lines) |
| Schema audit | Validate JSON-LD | Google Rich Results Test, schema.org validator | Rent (free) |
| Entity audit | Probe what a model knows about the brand | Claude and ChatGPT APIs | Rent |
| Citation analysis | Query engines on a prompt set, log citations | Cloro or an in-house scheduled-agent runner | Rent the tracker, build the prompt set |
| Reporting | Roll scores into the scorecard | A spreadsheet or a Claude Skill | Build |

The rent-versus-build line: rent anything that needs a maintained index or a browser farm (crawling, SERP data, the citation tracker). Build the glue (render diff, scoring rollup, prompt set), because that is where your methodology lives and no vendor will get it right for your category. The same logic drives the on-page side, which we run through https://www.winstondigitalmarketing.com/playbooks/how-to-write-content-ai-cites/ rather than a generic content tool.

## The five GEO audit findings we see every time

Run enough of these and the failures rhyme. Five problems account for most of the gap between a red site and a green one. Each has a known fix.

1. **JS-rendered content invisible to bots.** The page looks full in a browser and empty to a crawler that does not execute JavaScript. Fix: server-side render or statically generate the body, and confirm it with a render diff in the inventory step.
2. **Missing or disconnected schema.** Either no JSON-LD, or blocks that never reference each other with stable @id values. Fix: the connected-graph pattern in https://www.winstondigitalmarketing.com/playbooks/schema-markup-for-ai-engines-2026/.
3. **Hedged, non-liftable answers.** The content answers the question four sentences in, after a windup. Fix: the direct-answer opening in https://www.winstondigitalmarketing.com/playbooks/how-to-get-cited-by-chatgpt-in-2026/.
4. **No markdown twin for AI user agents.** The brand serves the same bloated HTML to AI crawlers and browsers. Fix: a per-page .md twin served by user-agent (the approach this page uses), not a single llms.txt file.
5. **Thin entity.** The brand never states its category, proof, or boundaries in a way a model can repeat. Fix: the Step 4 entity work paired with an E-A-T audit (https://www.winstondigitalmarketing.com/playbooks/eat-audit-google-rater-guidelines/).

## How often to re-run a GEO audit

A GEO audit is not annual. AI engines change citation behavior fast enough that a once-a-year audit is stale before the ink dries. The cadence splits by step.

- **Citation analysis (Step 5): weekly.** The heartbeat. Cheap to run as a scheduled agent and the only step that tells you whether what you shipped moved the number.
- **Schema and chunk spot checks: on every content release.** Catch the regression at publish, not at the next full audit.
- **Full seven-step audit: quarterly.** Long enough that the picture has changed, short enough that you can still act.

Off-cycle triggers that should make you re-audit regardless of the calendar:

- A site migration, redesign, or CMS change (any can silently break rendering or strip schema).
- A sudden drop in citation share on the weekly run.
- A major engine update (a new AI Overviews rollout, a Perplexity index change).
- A competitor who was not in your Step 5 map showing up across prompts.

## FAQ

**What is a GEO audit?**

A GEO (Generative Engine Optimization) audit measures how ready a site is to be cited by AI engines like ChatGPT, Perplexity, Claude, and Google AI Overviews. It scores whether content is liftable, whether schema is present and connected, whether the entity story is clear, and whether the site is already getting cited. It checks whether a model can find, parse, and quote you, which is a different question than whether you rank.

**How much does a GEO audit cost?**

It depends on who runs it and how big the site is. Run it yourself and the cost is your time plus a crawler and a citation tracker subscription. Our own version is free: submit a URL, our agents run the full seven-step audit, and you get a prioritized report in 48 hours. The paid work starts only if you want us to execute the fixes.

**How long does a GEO audit take?**

40 hours of agent-plus-human work over 48 hours of wall clock for a 50-to-200 page site.

**Do we need to run this against every AI engine separately?**

Yes for Step 5. Different engines pull from different indexes with different citation logic.

**What tools are absolutely required?**

A crawler (Screaming Frog or Firecrawl), a SERP data provider (DataForSEO or Ahrefs), and API access to at least two AI engines.

**How often should we re-audit?**

Full audit quarterly. Citation analysis weekly. Schema and chunk spot checks after any major content release.

**What's the minimum content footprint for GEO to matter?**

Roughly 20 indexed pages. Below that you do not have enough surface area for refactoring to compound.
