Spurlock Studios
Contact
Share LinkedIn X
A lime beam hitting a small brass nameplate. Thesis: AEO AUDIT SHOULD INCLUDE.

An AEO audit is a dated diagnostic that records what answer engines already say about you, whether those products can fetch you, whether your facts agree across the web, and which tickets to ship first. The work product is five artifacts: a frozen query panel, a crawler map, an entity sheet, a citation log, and a prioritized fix list. If the vendor hands you a dashboard score and a blog calendar instead of those files, you bought a costume.

This spoke sits under the Answer Engine Optimization playbook. The sequence you run is the AEO audit checklist. This page is the object you walk out holding. I have been SEO certified since 2021. The scoreboard changed. The need for a written baseline did not.

The short answer

  • An AEO audit answers four questions: what do models say, can they fetch you, do your facts agree, and what should ship first.
  • The packet is five files, not a grade: query panel, crawler map, entity sheet, citation log, ranked fixes.
  • SEO crawl hygiene still matters. It is the floor. Citation, mention, accuracy, and share of voice are the scoreboard.
  • Do not edit the CMS until the citation log exists. A “win” with no baseline is a story.
  • Buy the packet when you cannot name current state. Wait when crawl, NAP, or the legal name is on fire — see when AEO is worth it.

What is an AEO audit?

An AEO audit is a time-boxed read of how ChatGPT search, Perplexity, Claude with web tools, and Google AI Overviews / AI Mode treat your brand on a frozen set of buyer prompts. It is not a Lighthouse score with “AI” in the title. It is not a rewrite. It is the evidence pack that makes later rewrites accountable.

Google’s own site-owner docs still set a boring floor: to appear as a supporting link in AI Overviews or AI Mode, a page must be indexed and snippet-eligible in ordinary Search. There is no extra AEO markup track (Google Search Central: AI features; Google’s generative-AI optimization guide, May 2026). Eligibility is not inclusion. The audit exists because eligibility and inclusion are different jobs.

Question the audit answersArtifact that holds the answerDone looks like
What do we even measure?Query panel25–40 frozen prompts, 3–6 competitors, written success definition
Can the products fetch us?Crawler mapTraining vs search vs user-fetch bots decided on purpose
Which facts about us conflict?Entity sheetOne chosen string per field, conflicts listed with URLs
What do models actually say?Citation logDated mention / citation / accuracy rows, not Slack screenshots
What ships first?Prioritized fixesRanked tickets with owners, non-goals, and a 30-day slice

Four questions, five files. If a fifth file is missing, the fourth question is a vibe.

Operator definition I will stand behind:

  1. Scope is frozen. Prompts and competitors do not move mid-engagement.
  2. Answers are logged before HTML changes. Date, product, mention, citation, accuracy.
  3. Conflicts are listed as tickets. Not as adjectives.
  4. The readout names what you will not do yet. A dump of forty ideas is not a plan.

If those four are missing, call it research. Do not call it an audit.

What is an AEO audit not?

It is not an SEO audit with a new acronym. It is not a tool login. It is not a promise that ChatGPT will cite you by a calendar date. Citation rate is non-deterministic. One screenshot is an anecdote. A panel you re-run is a scoreboard.

Someone sold this as “the AEO audit”What you actually gotWhat to do
A vendor “AEO score”A black-box grade on a sample you did not freezeKeep the tool if it logs prompts. Demand the five files anyway
A 40-page PDF, no ticketsA diaryConvert findings into line IDs or throw it out
A blog calendarContent volumeRank pages after the packet, not before
A robots.txt “block all AI” gistA training-and-search opt-out mashed togetherSplit the bots. Write the policy
Schema stuffed into a tag managerMarkup that may not match visible HTMLPut facts in the page, then mark them up
“We checked ChatGPT once”A demoFreeze the panel and log it

Pew Research Center’s July 2025 analysis of March 2025 browsing found Google users clicked a traditional result on 8% of visits when an AI summary appeared, versus 15% when it did not. Clicks on links inside the summary happened on 1% of those visits. About 18% of the Google searches in the study produced an AI summary (Pew Research Center). Read that as a consideration-set problem. An audit that only reports “organic sessions” will miss the loss.

Google also claims clicks from pages with AI Overviews tend to be higher quality. Pew and Google are measuring different things. The audit should record both: Search Console where you have it, and the chat/Overview panel Google does not give you as a ranking report.

  • The SOW names the five artifacts by filename, not “insights”
  • Success is defined as movement on the frozen panel, not “more AI traffic”
  • No citation-date SLA appears in the proposal
  • Tool seats are listed as measurement, not as the deliverable
  • CMS edits are out of scope until the baseline ships

A grade without a panel is a mood. Do not pay for a mood.

How is an AEO audit different from an SEO audit?

An SEO audit asks whether you can rank and get clicked. An AEO audit asks whether a generated answer will name you, cite you, and get the facts right. You still need crawlable pages. You also need passages that survive compression and a chorus of other domains that do not contradict you.

Shared floor: indexable HTML, sane canonicals, robots that do not block the URLs you want cited, Organization facts that match the visible page. Different scoreboard: mention, citation, accuracy, share of voice on a frozen prompt set.

JobSEO audit ownsAEO audit owns
Crawl / indexCoverage, noindex, sitemap, status codesSame floor, plus snippet eligibility on the URLs the panel cares about
Rank / CTRKeywords, links, SERP featuresNot the primary KPI. Inclusion inside the answer is
EntitiesSometimes a Knowledge Graph footnoteThe fact sheet, sameAs, collisions, founder titles
ContentThin pages, cannibalization, intent60-word lift test, tables, dated method pages
Off-siteBacklink toxicity and referring domainsWho AI already cites on your prompts
MeasurementRank trackers, Search Console, GAPrompt panel + Search Console generative-AI report if present
Technical AI policyRarelyTraining bot vs search bot vs user-fetch, WAF 403s

Semrush splits the three numbers I want on the sheet: a mention is the brand string inside the answer, a citation is a linked reference to a URL, and share of voice is your slice versus a frozen competitor set (Semrush: AI share of voice; Semrush: AI visibility metrics). One blended “visibility %” hides a mention-only win that never produces a click path.

Google’s AI-optimization guide points site owners at the Generative AI performance report in Search Console for Overviews and AI Mode (Google: generative AI features). That report does not replace ChatGPT or Perplexity. It is one product. The audit should say which products you logged, not “we checked AI.”

  • SEO crawl issues that block snippet eligibility are in the AEO packet, not parked in another PDF
  • Rank is recorded only as context, never as the pass/fail
  • Mention and citation are separate columns
  • Accuracy fails are tickets, even when you are cited

If the only chart is “keywords we still rank for,” you audited 2021. The buyer already asked a chat product.

What should the work packet include?

Five artifacts. Name them in the SOW. If a vendor cannot point at files, they are selling a workshop.

The AEO audit checklist is the order of operations — freeze, baseline, score, then roadmap. This page is the object those steps produce. Do not clone the ten-step sheet here. Demand the files.

#ArtifactWhat it isMinimum columns / contentsFail
1Query panelFrozen prompt set + competitor set + success definitionprompt_id, job, revenue tag, owner“We will add queries as we go”
2Crawler mapWhich bots may fetch which URLs, plus WAF realityBot, purpose, robots.txt, live fetch, decisionOne Disallow: / for “all AI”
3Entity sheetCanonical facts and every public conflictField, site, schema, LinkedIn, directory, decisionThree founding years, no owner
4Citation logDated answers on the panelMention, citation URL, competitors, accuracy, archiveScreenshots in Slack
5Prioritized fixesRanked tickets with non-goalsRisk, revenue prompt, effort, owner, 30-day sliceA 40-ticket dump

Optional attachments I will take. They do not replace the five:

Packet completeness check:

  1. Open the folder. Count five named files (or five named tabs with dates).
  2. Confirm the citation log’s prompt IDs match the panel. If they drifted, the log is fiction.
  3. Confirm the fix list’s line IDs point at a log row, a crawler row, or an entity conflict.
  4. Confirm a non-goals list exists. If everything is priority one, nothing is.

I will not invent a Spurlock audit price on this page. Price the labor against the packet, not against a competitor’s slide. If you cannot describe current state, you are still in audit territory. If the ranked list already exists and nobody ships, you have an operating problem, not a missing PDF.

What belongs in the query panel?

The query panel is the contract with reality. Everything else in the audit is a comment on this list. If the list moves every time someone has a feeling, share of voice is theater.

I use 25–40 prompts. Twelve is a sample. Two hundred is a stall. Semrush’s prompt-tracking guidance is the same idea with a vendor UI: load a set, then watch citation rate on that set (Semrush: which AI search prompts to track). Freeze first. Tool second.

Prompt jobBuyer is askingExample shapeWhy it belongs
RecommendationWho should I hire / buy“best [category] for [ICP]”Revenue. This is the panel that funds the work
ComparisonHow do these differ“[you] vs [competitor]”Surfaces fact conflicts and missing criteria pages
How-to / methodHow is this done“how to [job] without [failure]”Tests whether method pages are extractable
BrandWho are you“[brand] founding year” / “what does [brand] do”Accuracy. Wrong here is a risk, not a vanity miss
Local (if applicable)Who is near me“[service] near [city]”NAP / GBP / LocalBusiness alignment

Tag every prompt. Untagged prompts become vanity.

FieldRequiredLegal values
prompt_idyesstable string (rec-04, brand-02)
jobyesrecommendation / comparison / method / brand / local
revenueyesyes / no
language / marketif you sell in more than oneISO-ish label you will keep
competitor_set_idyesthe freeze for this window
successon the sheet headercitation rate, accuracy, or both — written in a sentence

Scope freeze procedure:

  1. Write the ICP in one paragraph. If you cannot, you cannot write recommendation prompts.
  2. Freeze 3–6 competitors for this window. Adding a seventh mid-audit resets share of voice.
  3. Draft 25–40 prompts across the five jobs. Park exec one-offs in a parking lot, not in the panel.
  4. Mark 8–15 as the weekly subset. The full panel is monthly. A ritual that takes a day will die.
  5. Write the success definition in one sentence. Example: “citation rate on recommendation prompts, plus zero accuracy fails on brand prompts.” Not “more AI traffic.”
  • ICP paragraph exists
  • Competitor set frozen and dated
  • 25–40 prompts with IDs
  • Revenue tags exist
  • Weekly subset marked
  • Vanity brand queries do not outnumber recommendation queries
  • Local prompts included only when a service area or GBP exists

A panel of “what is [our slogan]” is not an audit. It is a mirror.

What does the crawler map cover?

Answer engines do not share one bot. A crawler map is the table that stops you from treating “block AI” as a strategy. Training opt-out, search indexing, and user-triggered fetches are different decisions. Mash them and you can disappear from ChatGPT search while congratulating yourself for a privacy win.

OpenAI documents the split: GPTBot for foundation-model training, OAI-SearchBot for ChatGPT search answers, ChatGPT-User for user-initiated fetches that may not honor robots.txt (OpenAI crawler docs). OpenAI also says you can allow OAI-SearchBot and disallow GPTBot; search robots.txt changes can take about 24 hours. Anthropic documents ClaudeBot (training), Claude-SearchBot (search quality), and Claude-User (fetch on a question; Anthropic says it honors robots.txt) (Anthropic Help Center). Google’s Google-Extended product token does not change Search inclusion or ranking (Google common crawlers). Googlebot plus ordinary Search controls still feed AI features in Search (Google: AI features).

VendorTraining / model-useSearch / citation crawlUser-triggered fetch
OpenAIGPTBotOAI-SearchBot — disallow and you are not shown in ChatGPT search answersChatGPT-User — robots.txt may not apply
AnthropicClaudeBotClaude-SearchBotClaude-User
Google SearchGooglebot + noindex / nosnippetSame crawl feeds AI featuresN/A as a ranking lever
Gemini apps / Vertex groundingGoogle-ExtendedSeparate from Googlebot SearchN/A as a Search ranking lever

A robots.txt file is a crawl-traffic control, not a hide-from-Search switch. A disallowed URL can still be indexed without a snippet if other pages link to it (Google robots.txt intro). nosnippet can keep you out of Overviews and also out of ordinary snippets. That is a product decision. Put it on the map. Do not discover it in a traffic autopsy.

Map columns I actually fill:

ColumnWhat you write
Bot / tokenExact user-agent or product token
Jobtraining / search index / user fetch / ads safety
robots.txtallow / disallow / not listed
Live fetch200 / 403 / 404 / JS shell on a key URL
CDN / WAFdefault allow, or a rule that 403s “GPT” strings
Decisionallow for citations, disallow for training, or accept the trade
Ownernamed person, not “engineering”

Fetch procedure:

  1. Pull /robots.txt. List every AI-related token. Mark tokens that are absent — absence is a decision too.
  2. curl -I the homepage, About, the money URL, and /llms.txt with a normal UA and, where you can, the documented bot UAs.
  3. Check HTML, not only headers: answers must exist in the fetched document, not only after a client widget.
  4. Record noindex, nosnippet, and canonical on those URLs.
  5. Write the policy in one paragraph: what you allow for search citations vs what you opt out of for training.
  • OAI-SearchBot allowed if ChatGPT search citations are a goal
  • Claude-SearchBot and Claude-User allowed if Claude citations are a goal
  • GPTBot / ClaudeBot / Google-Extended decided on purpose
  • WAF is not silently 403ing those user-agents
  • About and offer URLs are snippet-eligible
  • /llms.txt is mapped even if you later decide not to ship one

A crawler map that only says “we allow Googlebot” is an SEO leftover. Put the chat products on the sheet.

What goes on the entity sheet?

Models name things. If your brand is not a clear Organization — plus Person and Place where they matter — the model hedges or substitutes a better-defined competitor. The entity sheet is the conflict table. It is not a brand workshop.

sameAs is a schema.org property: a URL that unambiguously indicates the item’s identity — Wikipedia, Wikidata, or the official site (schema.org/sameAs). Google’s Organization docs put sameAs on the homepage or About page to help disambiguate (Google Search Central: Organization). Google expanded Organization support in November 2023 and said it can feed knowledge panels and attribution (Google Search Central Blog). There are no required properties. Add what is true. A wrong LinkedIn or a similarly named company’s Crunchbase row is worse than a short list.

FieldSiteSchemaLinkedInDirectory / WikidataDecision
Legal namepick one string
Public / trade namepick one string
Foundedpick one year
HQ / service areapick one posture
Primary offer sentencepick one sentence
Founder name + titlepick one title
Canonical URLpick one host
sameAs listonly URLs that are you

Minimum proof, common miss:

EntityMinimum proofCommon miss
OrganizationLegal name, trade name, canonical URL, logoHero slogan instead of a name
PersonFounder name, title, one profile URL“Team” carousel with no names
PlaceCity or service area you will defendThree cities in the footer, one in schema
OfferExtractable package or posture“We do it all” as the only sentence
Product renameOld name → redirect or explainerGhost SKU still cited from a 2023 roundup

Sheet procedure:

  1. Extract facts from About, footer, and Organization JSON-LD. Do not trust the sales deck.
  2. Diff against LinkedIn, GBP, Crunchbase, Wikidata, and the two directories that already appear in the citation log.
  3. Run a name-collision check: other companies, people, and products with the same string.
  4. Inventory sameAs candidates. Delete URLs you no longer own.
  5. Write the decision column. Unresolved conflicts become tickets on the fix list, not “phase 2 ideas.”

Sample finding language I actually use:

Brand prompt in Perplexity (dated) stated founding year 2014; About and schema state 2017; Crunchbase states 2014. Reconcile to the year you will defend, then update the three directory URLs in the appendix before any content sprint.

Avoid: “Your entity architecture needs work.” That sentence funds nothing.

  • One fact sheet, one date
  • Conflicts listed with source URLs
  • Name collisions documented even if you lose some prompts to a bigger entity
  • sameAs contains only identity URLs
  • Offer sentence matches the money page and the homepage
  • Local NAP is in the sheet if GBP exists

Wrong year plus a citation is worse than no citation. The sheet exists to stop you from teaching two brands.

What belongs in the citation log?

The citation log is the only proof later work moved anything. Run the panel before anyone edits a heading. ChatGPT answers that used search can show inline citations; if they do not, the Sources control under the response lists the links (OpenAI Help: ChatGPT Search). Log both. A mention without a source and a source without a name are different tickets.

Perplexity’s product story is live web search, then a summary with numbered citations you can open (Perplexity Help Center). Google Overviews often do not trigger. Absence of an Overview on a keyword is not a citation failure. Absence of your name when an Overview or chat answer does fire on a buyer prompt is.

ColumnWhat you writeLegal values
prompt_idMatches the panelstring
productWhere you ran itChatGPT / Perplexity / AI Overviews / AI Mode / Claude
dateISO dateYYYY-MM-DD
groundingSearch / web on?yes / no / n/a
mentionedBrand string in the answeryes / no
citedYour URL or clear source credityes / no + URL
competitors_namedWho else appearedlist
cited_domainsFootnotes / Sourceslist of hosts
accuracyFacts about youpass / fail / n/a
failure_noteOne linefree text
archiveScreenshot or exportURL

Logging procedure:

  1. Run recommendation and comparison prompts in ChatGPT with search on, in a buyer-relevant mode.
  2. Run the same IDs in Perplexity.
  3. Sample Overviews and AI Mode on the priority subset. Record “no Overview” as a state, not as a fail.
  4. Spot-check Claude with web tools if that is a buyer surface for you.
  5. Archive the load-bearing failures. Memory is not an archive.
OutcomeWhat it meansTicket type
Cited + accurateKeep. Do not “refresh” into mushHygiene only
Mentioned, not citedName without a click pathCiteable passage + corroboration
Cited, inaccurateYou taught a wrong factEntity / truth-layer first
Absent, competitors citedThey have extractable pages or a chorusContent vs off-site, decided from the leaderboard
Cited a zombie URLOld host, campaign URL, or PDFRedirect / canonical
Wrong entityName collisionDisambiguation, not more blog posts

Build a URL leaderboard from the log, not from a wished-for PR list. Who the products already trust is the corroboration target list. A gap is “this prompt cites three domains and none of them is us, and those pages are extractable tables.” A wish is “we should be in TechCrunch.” Write gaps.

  • Log exists before CMS edits
  • Mention and citation are separate
  • Accuracy fails have a one-line note
  • Archives exist for the revenue fails
  • Leaderboard is derived from this log
  • Product names are specific. “AI” is not a product

If the log lives in chat, it will die. Put it in a sheet with IDs.

How should prioritized fixes be ranked?

The audit is finished when someone can start work on Monday without a second workshop. Rank tickets by accuracy risk, revenue prompt coverage, and effort. Ship truth-layer conflicts before a cluster. Eligibility before a rewrite. A noindex About page is not a copy problem.

Google’s generative-AI guidance repeats the technical floor: indexed, snippet-eligible, people-first pages — no special AI schema (Google: optimizing for generative AI features). FAQPage remains a valid schema.org type for visible Q&A (schema.org/FAQPage). Google’s FAQ rich-result feature no longer appears in Search as of 7 May 2026 (Google Search Central changelog, FAQ rich result). Honest HTML Q&A still belongs. Stuffed FAQ JSON-LD that the visitor cannot see does not.

RankClassExampleWhy it beats a blog post
0Fetch / eligibilitynoindex on About, WAF 403 on OAI-SearchBot, nosnippet on the leadYou are not in the candidate pool
1Accuracy / identityFounding year, NAP, offer sentence, sameAs collisionCited-but-wrong is a liability
2Extractability on money URLsHomepage, one service URL, About fail the 60-word liftModels invent your offer if you leave it blank
3Corroboration gapsLeaderboard domains that already get cited, and omit youOn-site truth loses to a chorus
4Cluster / net-new pagesDefinition, comparison, method pages the panel lacksVolume after the floor is honest
5Nice-to-havellms.txt theater, AI-only markup, extra citiesDo not fund these to avoid rank 0–2

Ticket shape I will accept:

  1. Line ID that points at a log row, crawler row, or entity conflict.
  2. URL (or “off-site: {host}”).
  3. Change in one sentence a developer or editor can ship.
  4. Done means a test: re-fetch, re-prompt, or schema matches About.
  5. Owner and a week, not a quarter.
30-day sliceInOut
EligibilityIndex, snippet, robots, WAFRedesign, new CMS
EntityOne fact sheet, directory conflicts you can actually editA Wikipedia campaign you do not control
Money URLsHomepage, one offer, About, one FAQ or proof pageFive new service templates
MeasurementNamed owner, weekly subset, monthly full panelA 20-slide “AI SEO” deck
  • Top 5 risks named (accuracy, collisions, legal, fetch blocks)
  • Top 5 opportunities ranked by revenue × winnability
  • Non-goals written
  • Each ticket has a line ID back to an artifact
  • 30-day slice fits a real calendar, not a hope
  • llms.txt is optional and never the first ticket if About is mush

A 90-day list without a 30-day slice is a brochure. Cut it until it fits a month.

What does a fake AEO audit look like?

The failure mode is not “they missed a heading.” It is a readout that cannot be re-run, or a rewrite that destroys the baseline. I have shipped hundreds of production sites and 500+ automations. The pattern that fails is the same: change the system, then claim the new screenshot as proof.

FakeWhat breaksCostDo this instead
Edit the CMS during “discovery”You cannot prove movementYou will re-argue the ROI in 30 daysBaseline first. Tickets second
Dashboard-onlySample drift, no accuracy columnYou optimize a vendor’s blendKeep the tool; keep the sheet
PDF, no line IDsFindings cannot become ticketsThe file dies in DriveEvery finding becomes a row
“Block all AI bots” as the recommendationSearch citations vanish with training opt-outYou paid to disappear from ChatGPT searchSplit the crawler map
Schema in a tag, copy unchangedMarkup vs HTML conflictModels get two storiesFix the sentence, then mark it up
Blog calendar as the auditVolume without extractable leadsYou scale the wrong templateFive money URLs, then cluster
Unsourced conversion multiplier as ROIYou will not be able to defend the numberBudget later collapsesJudge mention, citation, accuracy, pipeline notes

Concrete failure I see on audits:

A mid-market site ranks for category keywords. ChatGPT with search recommends three competitors because those competitors have a clear About, a Wikidata row, and a comparison table. The “AEO audit” they already bought was a content calendar and a llms.txt that is a second sitemap. Nobody logged prompts. Two months later they cannot say whether anything moved. That is not slow AEO. That is no audit.

Local version: an HVAC company owns the map pack and still loses “best heat pump near me” prompts because directories and city pages never state services, certifications, and service area in plain sentences. GBP is a Maps problem and an AEO problem. The fake audit ignored NAP because “that is SEO.”

  • The proposal forbids CMS edits before the log ships
  • Training vs search bots are separate line items
  • No invented conversion multiplier appears as a goal
  • Local NAP is in scope if GBP exists
  • The readout can be re-run by someone who was not in the workshop

If the vendor cannot show you a blank log template on day one, they do not have a method. They have a deck.

How do you know the audit is finished?

Done is not a meeting. Done is a folder you can re-open in 30 days and run again. Acceptance is boring on purpose.

GatePassFail
Panel freezeIDs stable; competitor set datedNew prompts added “because the CEO asked” mid-week
Crawler mapDecisions written; live fetches recordedrobots.txt copied from a gist, never fetched
Entity sheetDecision column filledConflicts listed as “TBD”
Citation logAll panel IDs run on at least two products“We sampled a few”
Fix listLine IDs, owners, 30-day slice, non-goalsIdeas ranked by how exciting they sounded
Re-run planNamed owner, weekly subset, monthly full“Marketing will check ChatGPT”

Acceptance procedure:

  1. Diff the citation log against the panel. Every prompt_id must exist. Missing IDs fail the audit.
  2. Pick five revenue fails. Confirm each has a ticket with a URL and a done-means test.
  3. Pick one crawler decision (example: OAI-SearchBot allow). Confirm a live fetch, not a comment.
  4. Read the non-goals. If llms.txt is in week one and About still fails a 60-word lift, reject the ranking.
  5. Schedule the first re-run on the calendar before you close the engagement.

60-word lift test, for the pages the tickets touch: copy the first answer block. Read it to someone who cannot see the H1. If they cannot tell what the page claims, the page is not citeable. That test belongs in “done means.” It does not belong as a substitute for the log.

Search Console: confirm the money URLs are indexed and snippet-eligible. Use the generative-AI impressions report if the property has it. Do not treat a vendor AEO grade as the scoreboard.

  • Five artifacts dated
  • Line IDs join log → tickets
  • Re-run date on a calendar
  • Owner named, backup named
  • You can explain current state in five minutes without the vendor in the room

If you still need the vendor to interpret the folder, the audit did not transfer. Ask for the files, not another workshop.

When should you wait instead of commissioning one?

An audit is the right buy when you cannot name current state and someone will operate the log afterward. It is the wrong buy when the site cannot be a source, the legal name is mid-rebrand, or nobody will re-run the panel. Size is the wrong filter. Demand surface and staffing are the right ones. The spend gate lives in when AEO is worth it. This section is only the audit-shaped version.

ConditionCommission the auditWait
Buyers already ask ChatGPT / Perplexity / Overviews before they shortlistYesRelationship-only sales, no online research
You cannot name mention vs citation on 10 revenue promptsYesYou already have a dated log and ranked tickets
Sitewide noindex, login wall, or unverified Search ConsoleAfter a two-day eligibility patch, or fold that patch into day oneDo not pay for a prompt panel on a private brochure
Legal name / merge / rebrand this monthWait until the name freezesYou will teach two entities
Maps / NAP on fireInclude NAP in the packet if you still need the baselineIf GBP is the whole business and it is broken, fix Maps first
No owner for the weekly subsetDo not buyThe folder will die

Week-only constraint — if that is all the calendar you have, do not pretend it is a full audit:

  1. Freeze 15 prompts, not 40. Tag revenue.
  2. Run ChatGPT search + Perplexity. Sample Overviews on the revenue subset.
  3. Map robots.txt and fetch About, homepage, money URL.
  4. Fill the entity sheet for name, year, offer, city. Ignore Wikidata campaigns.
  5. Write ten tickets max. Rank 0–2 only. Park the cluster.

Skip in a one-week window: new blog calendar, llms.txt as theater, AI-only schema, Wikipedia, a 90-day content blast, and any invented citation SLA.

I will not put a dollar figure on the audit here. If a vendor quotes a number, ask which of the five files are in the fee. If the answer is “the dashboard,” you are buying a seat.

FAQ

What is an AEO audit and what should it include?

An AEO audit is a dated diagnostic that produces five artifacts: a frozen query panel, a crawler map, an entity sheet, a citation log, and prioritized fixes. It records what ChatGPT, Perplexity, Claude, and Google AI surfaces already say, whether they can fetch you, and which tickets to ship first. A dashboard grade or a blog calendar is not the packet.

How do I measure whether an AEO audit is working?

Re-run the same frozen prompt IDs and compare mention, citation, accuracy, and share of voice against the baseline log. Confirm money URLs stay indexed and snippet-eligible in Search Console, and use the generative-AI report if your property has it. The audit worked if tickets have owners and the next panel is on a calendar — not if a vendor grade went up.

What usually fails first when teams try this?

They change the site before the citation log exists, so every later “win” is unprovable. The next failure is mashing training-bot opt-outs with search crawlers, or shipping a PDF with no line IDs. Freeze the panel, fetch the bots, then write tickets that point at rows.

How long does this take to show results?

The packet itself should exist at the end of the engagement — that is a file delivery, not a citation. Eligibility can be checked in days with URL Inspection once HTML is live. Accurate answers on a frozen panel often take weeks, and citations are not guaranteed; Google’s docs do not promise inclusion. Re-measure at two weeks and eight weeks on the same IDs. Do not invent a day-count SLA.

What should I skip if I only have a week?

Skip the 40-prompt dump, the Wikipedia campaign, the blog calendar, and llms.txt theater. Freeze about 15 revenue-tagged prompts, log ChatGPT search and Perplexity, map robots plus three URLs, fill name/year/offer/city on the entity sheet, and write ten tickets in ranks 0–2. That is a thin audit. It is still a packet.

When is this not worth doing yet?

Wait if the site is not snippet-eligible, Search Console is unverified, the legal name is mid-rebrand, or nobody will own the weekly subset. Fix eligibility and the offer you will actually take, then audit. An AEO audit cannot cite a product that does not exist, and a folder with no operator is a souvenir.

CTA

If you cannot name what models say about you this week, buy the packet — panel, crawler map, entity sheet, citation log, ranked fixes — not a grade.

Lane: /visibility · Book a visibility audit.

FAQ

What questions does this article answer?

What is an AEO audit and what should it include?
An AEO audit is a dated diagnostic that produces five artifacts: a frozen query panel, a crawler map, an entity sheet, a citation log, and prioritized fixes. It records what ChatGPT, Perplexity, Claude, and Google AI surfaces already say, whether they can fetch you, and which tickets to ship first. A dashboard grade or a blog calendar is not the packet.
How do I measure whether an AEO audit is working?
Re-run the same frozen prompt IDs and compare mention, citation, accuracy, and share of voice against the baseline log. Confirm money URLs stay indexed and snippet-eligible in Search Console, and use the generative-AI report if your property has it. The audit worked if tickets have owners and the next panel is on a calendar — not if a vendor grade went up.
What usually fails first when teams try this?
They change the site before the citation log exists, so every later “win” is unprovable. The next failure is mashing training-bot opt-outs with search crawlers, or shipping a PDF with no line IDs. Freeze the panel, fetch the bots, then write tickets that point at rows.
How long does this take to show results?
The packet itself should exist at the end of the engagement — that is a file delivery, not a citation. Eligibility can be checked in days with URL Inspection once HTML is live. Accurate answers on a frozen panel often take weeks, and citations are not guaranteed; Google’s docs do not promise inclusion. Re-measure at two weeks and eight weeks on the same IDs. Do not invent a day-count SLA.
What should I skip if I only have a week?
Skip the 40-prompt dump, the Wikipedia campaign, the blog calendar, and `llms.txt` theater. Freeze about 15 revenue-tagged prompts, log ChatGPT search and Perplexity, map robots plus three URLs, fill name/year/offer/city on the entity sheet, and write ten tickets in ranks 0–2. That is a thin audit. It is still a packet.
When is this not worth doing yet?
Wait if the site is not snippet-eligible, Search Console is unverified, the legal name is mid-rebrand, or nobody will own the weekly subset. Fix eligibility and the offer you will actually take, then audit. An AEO audit cannot cite a product that does not exist, and a folder with no operator is a souvenir.
Sources

Last reviewed

More from this lane

AI Visibility

All →
Book the audit