GEO Audit
A Generative Engine Optimization audit — scores nine AI-readiness categories per page, runs at page or whole-site level, and produces a prioritized, impact-ranked remediation plan.
Overview
The GEO Audit answers "is this page ready for generative AI engines?" You give it a URL; it fetches the page, checks the site's crawler policies (robots.txt / ai.txt), scores nine AI-readiness categories, and produces a prioritized, impact-ranked remediation plan. The result is saved to your project's audit history so you can track it over time.
Audits run at two levels (2026-06-12): a single-page audit of exactly the URL you enter, or a whole-site audit that discovers the site's pages (sitemap first, homepage links as fallback), audits up to your plan's page cap, aggregates the category scores, and adds site-wide checks no single-page audit can see.
It is the deeper sibling of the Page Analyzer:
| Page Analyzer | GEO Audit |
|---|---|
| One URL, on-demand | One URL or a whole site, on-demand |
| Surface-level check | Full 9-category score + impact-ranked remediation plan |
| Seconds | Seconds (page mode ~30s; site mode up to ~60s) |
| Available on all plans | Feature-gated + quota-gated (see below) |
Site mode page caps. A site-level audit discovers URLs via the site's sitemap (robots.txt
Sitemap:directives, then/sitemap.xml), falling back to homepage links when no sitemap exists, and audits up to your plan's page cap (Pro-Individual 8, Pro-SME 12, Enterprise tiers 15). One site audit consumes one unit of the monthly audit quota regardless of page count. The site result adds checks a page audit can't see: sitewide Organization/WebSite schema, AI-crawler access, llms.txt presence (honestly labeled — no major engine reads it today), brand-entity consistency across page titles, JS-dependent pages, noindex pages, and tracked prompts with no covering page.
Running an audit
- Open GEO Audit from the sidebar
- Enter the URL of the page you want to analyze (e.g.,
https://yourdomain.com/products) - Click Run audit
The audit runs inline and returns within about 30 seconds. When it finishes, you'll see:
- Overall AEO score (0-100), colored Red 0–49 · Orange 50–79 · Green 80–100
- Nine category scores — content depth, schema markup, answer structure, entity clarity, technical SEO, trust signals, FAQ structure, freshness signals, and crawler accessibility
- Answer structure (added 2026-06-12) — the most evidence-backed citation lever: does the page open with a substantive answer (44.2% of ChatGPT citations come from a page's first 30%), use question-format headings, break into self-contained 150–1200-character chunks, include comparison tables, and keep paragraphs under ~90 words?
- Trust signals (added 2026-06-12) — E-E-A-T markers AI engines weigh when selecting sources: visible/declared authorship, About/Contact links, outbound source citations (a proven +29% visibility lever in the only peer-reviewed GEO experiment), social proof, and certifications
- Crawler accessibility — robots.txt / ai.txt permissions for the major AI crawlers, plus a JS-dependency check: AI crawlers execute no JavaScript, so a page whose content only exists after hydration is capped at 30 in this category no matter what robots.txt says
- Remediation plan — a prioritized, impact-ranked list of fixes
What the score means (and doesn't). The GEO score is a structured-audit completeness score — a Lighthouse-style weighted average of category checks (content depth 18%, schema 16%, answer structure 14%, entity clarity 14%, technical SEO 12%, trust signals 12%, crawler access 8%, freshness 6%). The category weights are a reasoned editorial prioritization, not values fit to citation-outcome data — so read the overall as "how GEO-ready is this page" rather than "X% likelihood of being cited." Entity clarity, in particular, measures consistency of repeated entity terms; it is not a trained named-entity-recognition density model, and the score makes no quantitative citation-odds claim.
Schema scoring is completeness-aware. The schema category does not just check whether a high-value type (Article, Product, Organization, FAQPage, HowTo, LocalBusiness, BreadcrumbList, WebPage) is present — it scores how completely each type's recommended properties are populated. A bare
{"@type":"Article"}scores far lower than one withheadline,author,datePublished,image, anddescription, and the findings name exactly which properties are missing. Schema items are counted flattened: types nested inside@graphwrappers (Yoast, Rank Math) and top-level JSON-LD arrays are unpacked into individual items, so the count matches what schema validators report — the same counting rule used by Schema Builder and Content Optimization.
Meta description and title lengths are measured "as served." The audit measures the entity-decoded text in the HTML your server actually returns — which can differ from what your CMS editor displays (themes and SEO plugins commonly append or rewrite values at render time). When a length check fails, the finding quotes the measured text so you can verify it against your page source directly.
The remediation plan
This is the output most teams care about. Each item in the plan has:
- Fix — what to change, written as an actionable task
- Category — which of the nine categories it improves
- Estimated impact — the points this fix would add to the overall GEO score, computed from the same category weights that produce the score (Δoverall ≈ how far the category is below a strong target × its renormalized weight). Recommendations are ranked by this real impact, biggest first — so the top item is genuinely the highest-leverage fix, not just a flat priority label.
- Priority — High / Medium / Low (an editorial severity label; the list is ordered primarily by Estimated impact, with priority as the tiebreaker)
The list is sorted by estimated impact, so the top item is always the highest-leverage change for that page.
Brand-vs-competitor comparison
The Compare feature (POST /api/geo-audit/compare) runs a side-by-side audit of your page against up to 5 competitor URLs. Each URL gets its own full 9-category audit, returned together so you can see exactly where a competitor's page out-scores yours and which fixes would close the gap.
Whole-site audits & the Site Structure inventory
Beyond single pages, the audit can run site-level: it discovers your site's pages via the sitemap (falling back to homepage links), audits up to your plan's page cap, and adds site-wide checks — a per-page score table (weakest first), sitewide Organization/WebSite schema checks, brand-entity consistency across titles, JS-dependent and noindex page detection, and tracked prompts with no covering page.
Site-level audits also produce the Site Structure inventory — a structural map of your site against the 13 page-type clusters an answer engine looks for: identity core, offerings, comparison, knowledge, original data & tools, social proof & verification, distribution & location, support, organizational, rich media, conversion, localization & legal, and technical AEO. Each cluster shows present / partial / missing with the evidence found and, on a miss, why that cluster matters to an answer engine.
Two honest boundaries:
- The structure presence score is separate from the GEO score — one measures structural completeness of the site, the other measures page quality. They answer different questions and are never blended.
- A "missing" verdict on a bounded crawl means no evidence was found — not proof of absence. If a cluster exists on pages the crawl didn't reach, add them to your sitemap or audit them directly.
Plan gates and quotas
GEO Audit requires the geo_audit feature flag, which is off on Free and Starter — those plans cannot run an audit at all, regardless of quota. On the tiers that have it, monthly quotas apply:
| Plan | Audits per month |
|---|---|
| Free | Not available |
| Starter | Not available |
| Pro-Individual | 3 |
| Pro-SME | 10 |
| Enterprise-Brand | 50 |
| Enterprise-Agency | 50 |
Running an audit uses one credit. If you need more, request a quota extension via Admin → Quota Requests or upgrade your plan.
Best practices
- Audit your most important pages first. Run an audit on each high-value URL (homepage, key product/service pages) rather than expecting one run to cover the whole site.
- Re-audit after you ship fixes. Re-run the same URL to confirm the category scores moved.
- Work the remediation plan top-down. It's already sorted by impact, so the first item is the highest-leverage change.
- Use the brand-vs-competitor comparison for strategy. Comparing your page against competitor URLs shows exactly where you trail.
- Check crawler accessibility. If
GPTBotorClaudeBotis blocked by your robots.txt, fixing that single issue often outweighs all other work combined.
Related docs
- Page Analyzer — same idea, lighter single-URL check, no quota
- Crawler Intelligence — monitor actual AI crawler traffic over time
- Page Optimization — ongoing per-page scoring for URLs you track