AI SEO / Chicago
Log in 

AEO audit checklist for small agencies

An AEO audit checks whether a client site is positioned for AI-search citation across three mechanical levers: brand-mention surface on the sources answer engines already retrieve, Bing/web rank with verified indexing and a clean crawl record, and answer-shaped content — server-rendered HTML with direct answers up front, logical heading hierarchy, and named entities. Schema, canonicals, and llms.txt are a hygiene pass, not citation levers.

How an AEO audit differs from a classic SEO audit

A classic technical SEO audit focuses on rank signals. An AEO audit adds the off-page retrieval layer — the sources an answer engine consults before it decides what to surface — and checks whether the page content is shaped for passage extraction, not just for ranking.

Audit areaClassic SEO auditAEO audit (adds or shifts)
Off-page signalsBacklink profile, domain authorityBrand mentions on sources answer engines already cite for your category
IndexingGoogle Search Console coverageBing Webmaster Tools verified, sitemap submitted, IndexNow active
Content shapeKeyword density, word count, EEAT signalsDirect answer in first 100 words, named entities explicit, server-rendered HTML
Schema / markupSchema.org types, rich result eligibilityHygiene pass only — schema does not cause citations; flag mismatched types (e.g. Product on a service page)
CrawlabilityRobots.txt, canonical, redirect chainsSame, plus: JS-only rendering = page does not exist for most AI crawlers
Scoring blocked pagesScore 0 if unreadableFlag as blind spot; never score a page you could not read

The AEO audit checklist

Work through each group in order. The three lever groups determine citation probability; the hygiene group is a final pass. Note each item as: pass, gap, or blind spot (could not read). Blind spots are findings, not zeros.

Lever 1 — Brand-mention surface

Answer engines surface brands they have seen referenced on third-party sources. This group checks whether the client brand is present on those sources.

Checklist itemHow to check
Identify which publications or directories answer engines cite when answering queries in the client's categoryRun 5–10 representative queries in Perplexity and ChatGPT; note which domains appear as citations
Check whether the client brand is named on those cited sourcesSite-search or Google query: site:<cited-domain> "<client brand>"
Check whether any brand mention ties the name to the agency descriptor and the client's canonical URLBare brand mentions without context may resolve to a competitor with a similar name
Count distinct third-party indexed pages that name the brandGoogle: "<client brand>" -site:<client domain>; note result count as a baseline
Flag any brand mentions that link to the wrong domain or a competitorCheck each top-result anchor href manually; log corrections as gap items

Lever 2 — Bing/web rank and indexing

Most large-language model assistants ground their retrieval on Bing-indexed content. Google indexing alone is not sufficient.

Checklist itemHow to check
Bing Webmaster Tools account verified and sitemap submittedLog into BWT; confirm ownership verified and sitemap URL shows no errors
Key pages indexed in BingBWT URL inspection for homepage, top service pages, and the 5 pages most relevant to target queries
No crawl errors on key pagesBWT > Crawl > Crawl errors; log any 4xx or redirect chains
IndexNow configured or manual submission in placeCheck whether an IndexNow key file exists at the root; if not, log as a gap and note the setup cost is low
Bing rank for primary queries (directional baseline)Search each target query in Bing; note approximate position; this is a snapshot, not a tracked metric

Lever 3 — Content shape

Answer engines extract passages. Check whether the page content is structured so an engine can identify and pull a direct answer without guessing.

Checklist itemHow to check
Content is server-rendered HTML — the core answer is in the HTTP response body, not injected by JavaScriptcurl -A "Googlebot" <url> | grep -i <key phrase>; if the phrase is absent from the curl output, flag as JS-rendering gap
Direct answer to the target question appears in the first 100 wordsRead the page; note how many words precede the answer sentence; flag if >100
Heading hierarchy is logical: h1 → h2 → h3, no skipped levelsRun axe-core or inspect heading order in DevTools; skipped levels are a blocker
Named entities (brand, product, location, person) are called out explicitly in prose, not only in markupSearch the HTML body for entity names; markup-only entities are not reliably extracted
Key facts are in extractable plain text — not image text, CSS-generated content, or hidden elementsView source; check that the claimed answer text is in the DOM as plain text
Tables and lists are in plain HTML — not JS-rendered or image-basedCheck table markup: <table>, <th>, <td>; if tables are missing from curl output, flag

Hygiene pass — schema, canonicals, robots, llms.txt

This group is parse hygiene and structural signaling — not citation levers. A page that passes every item below but fails the three lever groups above will not be cited. Run this pass last.

Checklist itemHow to check
JSON-LD schema type matches page content — service/professional-service pages use Service or ProfessionalService, not ProductView source; check @type values; flag any mismatch (e.g. Product on a government service page is incorrect)
Schema validates without errorsGoogle Rich Results Test or schema.org validator; errors are blockers, warnings are informational
Canonical tag is self-referential (or correct) on key pagesView source; check <link rel="canonical"> href; flag any canonical pointing to a different URL than the page
robots.txt does not block key pages or the sitemapFetch /robots.txt; confirm Disallow rules do not cover target pages
XML sitemap is present, submitted, and includes key pagesFetch /sitemap.xml; confirm target pages are listed; cross-check with BWT submission status
llms.txt is present and currentFetch /llms.txt; confirm it lists current key pages with descriptions. Note: llms.txt is a hygiene label, not a ranking or citation signal — absence does not suppress citations

How to score and prioritize findings

Score each finding on two axes: impact (how much this gap is likely suppressing citation probability) and effort (time and skill to fix). Prioritize high-impact, low-effort fixes first. Three rules keep the output honest:

  1. Lever gaps outrank hygiene gaps. A missing IndexNow integration (Lever 2) ranks above a schema validation warning (hygiene) regardless of effort.
  2. Blocked or unreadable pages are blind spots, not zeros. If a page returns a 403, blocks crawlers, or renders critical content only in JavaScript, log it as a blind spot with the specific access failure. Never assign a score you cannot support with a successful read.
  3. Qualitative observations are labelled as such. If you note a gap based on a point-in-time search-result check rather than measured data, say so explicitly in the findings.
Finding typeImpactTypical effortPriority
JS-only rendering on key pagesHigh — page is invisible to most crawlersMedium–high (requires dev)1 — fix first
No Bing WMT verification or sitemapHigh — Bing cannot index reliablyLow (30 min setup)1 — fix first
Brand absent from cited sourcesHigh — no retrieval surfaceMedium–high (off-page work)1 — address in parallel
Answer buried past 100 wordsMediumLow (copy edit)2 — second pass
Missing heading hierarchyMediumLow (markup)2 — second pass
Schema type mismatchLow–medium (parse confusion)Low3 — hygiene pass
Missing llms.txtLow (no evidence of citation impact)Low3 — hygiene pass, optional

Common mistakes when auditing for AEO

Auditing schema first

Schema is the fastest item to check and the lowest-leverage item to fix. Auditors who open the Rich Results Test before checking Bing indexing or brand-mention surface are optimizing the label on a box that hasn't been delivered yet. Run the lever checks first.

Promising citation counts

No structural fix guarantees a specific citation count. Citation depends on crawl timing, model update cycles, retrieval snapshot freshness, and signals outside the site owner's control. Report findings as gaps that suppress citation probability, not as items that will produce a citation count when fixed.

Treating one engine as all engines

Google AI Overviews, Perplexity, ChatGPT, and Bing Copilot each have different retrieval pipelines. A page that appears in Google AI Overviews may not appear in Perplexity, and vice versa. An honest audit notes which engine a finding applies to and avoids generalizing across all platforms from a single check.

Scoring a blocked page as zero

A page behind a login wall, a WAF block, or JS-only rendering is a page you could not read. Log the access failure as the finding. Assigning a low score based on metadata alone misrepresents the confidence level of the result.

Frequently asked questions

How is an AEO audit different from a standard SEO audit?

A standard SEO audit focuses on rank signals: crawlability, canonicals, page speed, backlink profile. An AEO audit adds two layers those miss: whether the brand is named on the external sources answer engines already retrieve for your category, and whether the page content is shaped so an engine can extract a direct answer rather than a ranking-page passage.

Should schema markup be the first thing I fix?

No. Schema is hygiene — it helps crawlers label what a page is. It does not cause citations. Fix crawlability and Bing indexing first, then work on content shape (direct answers, heading hierarchy, named entities). Schema belongs in a final hygiene pass, not at the top of the priority queue.

What do I do if a client page returns a 403 or blocks crawlers?

Flag it as a blind spot, not a zero score. A page you cannot read cannot be audited honestly. Note the blocker in your findings, attempt a stealth or render fallback if the platform supports it, and report the access gap explicitly. Never assign a score based on a failed read.

Does Prompt Goblin guarantee that fixing audit findings will produce citations?

No. Audit findings address structural inputs — crawlability, content shape, Bing indexing, brand-mention surface. These raise the probability an answer engine can retrieve and cite a page. No specific citation count, ranking position, or AI-response outcome is promised. The refund covers the delivered work, not a citation number.

Sources cited on this page

This page makes no claims that require an external quantitative source. The checklist items and prioritization framework are based on Prompt Goblin's own audit practice and qualitative observations of how answer engines retrieve content. All observations are point-in-time and labelled as such. No fabricated statistics are used.

What this does not guarantee

Run the Prompt Goblin scan on a client site and get a structured report of technical and hygiene gaps — crawlability, Bing indexing, content shape, and schema issues: start a free AEO scan.

Go deeper