AEO Optima Docs
Features

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 AnalyzerGEO Audit
One URL, on-demandOne URL or a whole site, on-demand
Surface-level checkFull 8-category score + impact-ranked remediation plan
SecondsSeconds (page mode ~30s; site mode up to ~60s)
Available on all plansFeature-gated + quota-gated (see below)

Site mode page caps. A site-level audit lists the site's pages from its sitemap (robots.txt Sitemap: directives, then /sitemap.xml; a sitemap index is read for all its kinds of page, up to 12 of its sitemaps) and its homepage's links, 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 questions that match no page.

Which pages a site check reads (changed 3 November 2026). Pages are chosen in this order, up to the cap: the homepage; the About or company page when the site has one, and one team or contact page; the homepage's navigation links, offerings first, up to a third of the cap; pages whose address covers a tracked question, up to a third; then the rest, most recently updated first by the sitemap's lastmod. Tag, category, author and date archives, paginated pages and blog indexes come last of all: they cover no question, and they are read only when nothing else can fill the sample, which the page then says. A page must match a question on what is being asked, not just the brand's name, and a question that is only about the brand is left to the homepage and About page. Each page on the check says why it was chosen. The Brand Hub check and the tracked-questions check look across every address listed, not only the pages read, but a page can still cover a question without its address or headings saying so, so that check is never more than a warning. A question whose only match is a listing page counts as having no page. A page not started because the check ran out of time is listed apart from a page that could not be fetched. Site checks made before this change read other pages, so a later check says the pages were chosen differently rather than showing a difference in points.

Running an audit

  1. Open GEO Audit from the sidebar
  2. Enter the URL of the page you want to analyze (e.g., https://yourdomain.com/products)
  3. 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
  • Eight category scores — content depth, schema markup, answer structure, entity clarity, technical SEO, trust signals, freshness signals, and crawler accessibility. FAQ structure is shown for reference too, and doesn't count towards the score or produce a recommendation
  • 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. If your site refuses our reader or doesn't answer for robots.txt, this category isn't measured and leaves the overall score, and the audit says so
  • Remediation plan — a prioritized, impact-ranked list of fixes

How the page is read. Each paragraph element on the page is read as its own paragraph. Every check that reads the whole page (word count, dates, figures, named terms) reads its visible text: the HTML without scripts, styles and noscript blocks, with every tag ending a word.

What the score means (and doesn't). The GEO score is a structured-audit completeness score — a Lighthouse-style weighted average of category checks (entity clarity 22%, answer structure 20%, trust signals 16%, content depth 12%, crawler access 12%, schema 8%, technical SEO 6%, freshness 4%). 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.

The method changed on 3 November 2026 (readiness-2026-11). Weight moved towards entity clarity, answer structure and trust signals, and away from schema markup and page length, which are weak signals for being cited. Crawler access rose because a blocked crawler or CDN is the most common single point of total failure. FAQ and HowTo markup no longer earn a bonus, in the schema category or in content depth. Page length earns points up to 500 words and nothing after that. Schema and content depth each lost points they could score, so both are scaled by 1.25 to keep 100 reachable. The weights are still an editorial judgement. Every check is stamped with its method, and a score is only compared with earlier checks of the same page on the same method: across the change a row says "method changed", not a difference in points.

Gate checks (site checks only, added 3 November 2026). A whole-site check adds four facts about the site, each tied to the gate it serves: Brand Hub depth (over 800 words under headings, Organization schema with @id and sameAs, and the most-linked page after the homepage among the pages read), specifications in the page rather than only in a PDF, wording that says who or what the offer is not suitable for, and no self-serving review markup. They are counted per gate, separately from the readiness score, because the score averages pages and these describe the site. Each reads only the pages that run fetched, so a missing item means "not found on those pages". Review markup about your own organisation or product with no source on another site is reported as a finding and moves no score in this release, because a third-party review widget can look the same and how often that happens hasn't been measured yet. llms.txt is shown as a note, never a warning.

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 with headline, author, datePublished, image, and description, and the findings name exactly which properties are missing. Schema items are counted flattened: types nested inside @graph wrappers (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 eight scored 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 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. A page counts as JS-dependent when its server HTML has an empty app root, or fewer than 150 words of text alongside five or more scripts and no server-rendered form with an input. A short sign-in or sign-up form is readable without JavaScript.

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:

PlanAudits per month
FreeNot available
StarterNot available
Pro-Individual3
Pro-SME10
Enterprise-Brand50
Enterprise-Agency50

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 GPTBot or ClaudeBot is blocked by your robots.txt, fixing that single issue often outweighs all other work combined.

On this page

GEO Audit — AEO Optima