You typed your own category into ChatGPT last week and watched a competitor get named instead of you. That stings, and it's also fixable. Here's the part most people miss: your pages can rank beautifully on Google and still be invisible inside AI answers, because a majority of AI Overview citations come from pages that never crack the top 20 organic results. Rank is not the input anymore. This AEO audit checklist walks you through the factors that decide whether an AI engine can find your page, pull a clean answer out of it, and put your name on that answer.
If you've wondered how to audit for AI search without drowning in a 48-item spreadsheet you'll abandon by lunch, this is the short version. By the end you'll have a prioritized gap list: what's broken, how badly, and what to fix first. Not a vague sense that you should "do AEO."
One honest note up front. This is a point-in-time diagnostic, not a tracking system, and not every factor on the usual lists is backed by strong evidence. I'll flag the shaky ones as we go instead of padding the checklist to look thorough.
What you need: your robots.txt, access to server logs, a schema validator, and roughly a day.
Step 1: Scope your prompts, your buyers, and your competitors
Start with questions, not pages. An answer engine optimization audit is scored against the prompts your buyers actually type, so those prompts are the measuring stick for everything that follows.
Write out the questions real customers ask. Stratify them by buyer stage (awareness, comparison, decision, support) and by shape (category questions, competitor questions, product questions, recommendation questions). Then name 4 to 6 direct competitors plus a couple of brands you'd love to be cited alongside.
Go past 30 prompts. Below that, the noise eats your signal and you end up making decisions on randomness. Stratify to get there, don't pad with lookalikes.
Pro tip: pull prompts from your buyers' language, not your marketing language. If customers say "best tool for X," that is your prompt. "Leading X platform" is not.
You're done with this step when you have at least 30 stratified prompts, a competitor list, and every prompt mapped to a stage and a topic. Prompt mapping for AI discovery is worth slowing down on, because a sloppy prompt set makes every later number meaningless.
Where people go wrong: trying to track the whole category instead of the questions that actually convert. A bigger list is not a better list.
If building that list from scratch feels like a wall, this is one of the places software genuinely helps. DeepSmith's AI Visibility module includes Discover Prompts, which generates a starter prompt set from your product, persona, and buyer-stage context, so you're editing a populated list instead of staring at a blank one.
Step 2: Check whether AI crawlers can actually reach you
Everything downstream is pointless if the bots can't get in. This is the cheapest win in the whole audit, and it's broken more often than you'd think.
Open your robots.txt and look for blocked AI user agents. The ones that matter: GPTBot, OAI-SearchBot, and ChatGPT-User (OpenAI); ClaudeBot and claude-web (Anthropic); PerplexityBot and Perplexity-User (Perplexity); Googlebot and Google-Extended (Google); bingbot (Microsoft); Applebot-Extended (Apple). Most sites serve a robots.txt file, and analysis of AI bot behavior in robots.txt shows blocking patterns that many teams set years ago and never revisited.
Then confirm the bots actually show up. An allow rule is a permission, not proof. Pull your server logs and look for real hits from each bot during the audit window. If GPTBot has never crawled you, no amount of schema will get you cited in ChatGPT.
Next, check rendering. AI systems favor content that sits in raw HTML, not content that appears only after JavaScript executes. Curl a page and compare it to what you see in the browser. Accordions, lazy-loaded FAQ blocks, and client-rendered sections often just aren't there. JavaScript sites and LLM visibility is a whole failure mode of its own, and it's silent: nothing errors, you just don't exist.
Check mobile and desktop HTML parity too, plus the boring stuff: HTTPS, redirect chains, 5xx errors, page speed.
You're done when robots.txt permits each relevant bot, logs show those bots hitting real pages, and raw HTML returns what a human sees.
Common mistake: blocking GPTBot back in 2023 as a defensive move and never re-enabling it after ChatGPT shifted toward citing sources. Go look. A surprising number of teams are still blocking the engine they're trying to win. CMS migrations quietly re-adding a blanket Disallow is the other classic.
Step 3: Test whether your pages can be extracted
Here's the mental shift that makes the rest of the checklist click: AI engines cite passages, not pages. Relevance gets decided at the chunk level. Your beautiful 2,000-word post is not the unit of competition. The 120 words under one H2 are.
For each priority page, check:
- Answer first. A direct answer sits in the first sentence or two of the section, not after three paragraphs of runway.
- Atomic chunks. Sections run 2 to 4 sentences, one core fact per block.
- Heading alignment. Every H2 matches what's underneath it. Clever headings that don't say what the section says confuse the model.
- Question and answer pairing. Key sections read as a real question with a direct answer.
- A TL;DR. Short extractable takeaways near the top of long pages.
- Short sentences, short paragraphs. Simpler prose extracts better.
- Scannable formatting. Bullets, bolded terms, tables. List-formatted content is heavily over-represented in AI Overview citations.
- Self-explanatory table cells. Comparison intent is one of the most common AEO query shapes.
- Explicit entity language. Swap "it" and "this" for the actual name in every key claim, so a quoted chunk still makes sense alone.
- Definitional openers. Lead important concepts with "X is..." sentences.
- Original material. First-party data, benchmarks, named experts, real analysis. Generic commentary gets skipped.
Understanding how content chunking works will save you time here, because you'll stop optimizing pages and start optimizing passages.
The test: for 5 representative pages, can you quote a 100 to 200 word passage that, standing completely alone, fully answers one of your prompts? Is it in raw HTML? Does it sit under a heading that matches it? If yes, that page is extractable. If you can't find the passage, neither can the model.
Where people go wrong: long intros that bury the answer, and heading levels chosen for visual reasons instead of logical ones.
Step 4: Audit your schema and structured data
Schema won't rescue thin content. What it does is remove ambiguity, and ambiguity is what makes a model reach for a source it trusts more than you.
Go page by page and record which types are present, missing, or invalid:
- Organization on your home and About pages: name, url, logo, contactPoint, sameAs, founder.
- Person for anyone named in your content: name, jobTitle, sameAs, knowsAbout.
- Author connecting each article to a real Person entity with credentials.
- FAQPage on every page with open, rendered FAQs. Answers in the 40 to 60 word range perform best.
- HowTo on instructional content.
- Article on blog posts, with datePublished, dateModified, author, publisher.
- Product on product and comparison pages.
- Review or AggregateRating where reviews genuinely apply.
You're done when every priority URL passes Google's Rich Results Test and the Schema.org validator clean: no errors, no missing required fields.
The traps are consistent. Marking up FAQ content that's hidden behind an accordion, so the markup describes something the crawler never sees. Person schema with no sameAs. Organization logos that 404. Microdata where everyone now expects JSON-LD. Schema markup for AI citations is one of the highest-leverage items on this list precisely because it's so often half-done rather than absent.
Pair this with citable FAQ sections. FAQ schema only earns its keep when the FAQ text is rendered open in the HTML.
Step 5: Audit your entity, authority, and E-E-A-T signals
Authority is the eligibility filter. Not a ranking bonus. If a model can't tell who you are or why you'd know, it reaches for someone it can place.
Check:
- Brand consistency. Name, contact details, and social handles identical across your site, your schema, and every external profile.
- A real About page. Who you serve, what you specialize in, who runs the company. Not boilerplate.
- sameAs entity links. LinkedIn, Crunchbase, Wikipedia, Wikidata, official socials, all wired into Organization schema.
- Author bios with substance. Experience, expertise areas, headshot, social profiles, published work.
- Named authors. No anonymous bylines on pages that matter.
- Credential signals. First-party data, disclosed methodology, named experts.
- Authority mentions. Coverage on trusted publications. Unlinked mentions still build entity recognition.
- Topical clusters. A pillar with supporting articles that interlink, not scattered one-offs.
You're done when, for your top 10 pages, you can name the human author, click through to a bio, verify the bio links to something checkable, and see that same author entity appear consistently across Person schema, byline, and About page. An E-E-A-T audit for answer engines is mostly this: making the obvious things verifiable.
Where people go wrong: invented bylines with no Person record behind them, and a brand entity that says three different things across LinkedIn, Crunchbase, and the footer.
Step 6: Check your freshness signals
Freshness is its own axis, and it's the easiest one to fix badly.
Look for a visible publication date and a visible last-updated date on every priority page. Put high-value pages on a quarterly review schedule. Track versions on significant updates. Clear broken links.
You're done when every priority page shows both dates, and anything over 18 months old on a topic you care about is on a refresh schedule.
Where people go wrong: stripping dates off pages to make them "look evergreen." That doesn't read as timeless, it reads as unknown, and recency and freshness signals matter more on some engines than others. Updating the copy but not the timestamp is the other one. If you fixed it, say when.
Step 7: Score your citation footprint and build the gap list
Now the diagnostic becomes a deliverable.
Run your prompt list once per engine in scope. For every answer, record: was the brand named, was a URL cited, what was the sentiment, and what got cited instead (your page, a competitor, a third party, a wiki, a directory, Reddit, or something the model invented).
From that, compute:
- Mention rate. How often you're named at all.
- Citation rate. How often your pages are actually linked as a source.
- Share of voice. Your citation share against competitors across the set.
- Sentiment. Positive, neutral, negative.
- Hallucination rate. Answers containing factual errors about your brand, pricing, or products.
Do not collapse these into one number. A 70 percent mention rate with a zero percent citation rate and a hostile tone is not a win, it's a warning. Citations and brand mentions are different currencies, and the gap between them is usually the most actionable thing the audit produces.
On hallucination: expect some. Benchmark work on hallucination in large models shows meaningful error rates even in strong models, so treat "the AI said something wrong about us" as an input to fix, not a scandal.
Then score each area (technical access, structure, schema, E-E-A-T, freshness) 0 to 3, and flag everything scoring 0 or 1. Prioritize by impact: missing schema on a topic you already get cited for beats heading alignment on a page nobody cites.
Triage order that works when the list is long:
- Citation blockers (bots blocked, content hidden behind JavaScript, broken HTTPS).
- Entity schema (Organization, Person, Author, FAQPage, Article with dateModified).
- E-E-A-T fundamentals (About page, named authors, sameAs, consistent entity).
- Extractability on topics where you're already close.
- Freshness.
- Engine-specific formatting quirks, last.
Bias toward fixes that help on several platforms at once rather than chasing one engine's quirk.
The "who got cited instead" column is where a tracker earns its money. DeepSmith's AI Visibility Pages view shows which of your pages AI actually cites and what share of your total citations each one carries, which is the raw input for this categorization. It tracks ChatGPT, Gemini, Perplexity, Claude, and Google AI Mode, with coverage rising by plan tier. It reports what's happening. It doesn't control what the engines decide to do.
You're done when a scored gap list exists with factor, severity, evidence, and suggested fix, grouped under the five areas.
Common mistake: treating one ChatGPT screenshot as an audit. Answers drift substantially between runs. One snapshot tells you almost nothing.
Step 8: Hand the audit off to ongoing measurement
A point-in-time AI visibility audit is a photograph. Visibility moves, and it moves a lot: only a minority of brands stay visible from one answer to the next, and fewer hold across several consecutive runs.
The good news is you've already built the hard part. The same prompt list, run weekly, is a tracking system. Export the prompts and the scoring rubric, start weekly runs, and give it about four weeks before you read the trend lines.
You're done when the prompt set and rubric live in a tool that runs on a schedule instead of in your head.
A few factors that get listed as settled but aren't
Most AEO checklists present every item as established fact. Some of it isn't, and knowing which is which saves you weeks.
Domain Authority and backlinks. The correlation between traditional authority metrics and AI citation is weak in aggregate analysis of citation ranking factors, and negative in some verticals. Authority matters, but it reaches the model through entity clarity and E-E-A-T, not through a DA score. Don't build a link campaign expecting citations to follow.
llms.txt. The llms.txt proposal is a proposal, published in 2024, not a standard any engine has committed to honoring. Adoption sits around a tenth of measured domains. It's cheap to add and it signals intent. It is not a blocker, and plenty of heavily cited pages don't have one. Anyone promising you citation lift from it is guessing.
robots.txt as control. Compliance is voluntary. Most well-known crawlers respect it. Not all do. If you actually need to control exposure, headers, IP blocking, and rate limits do real work.
Engine sameness. Engines don't behave alike. ChatGPT leans toward authoritative knowledge bases and well-formed entities. Google AI Overviews lean on organic results plus lists and tables. Perplexity rewards fresh, dated sources. Report your audit by platform. "In general" hides the finding.
What to do next
Take your gap list and pick the top three. Just three. Do them this month.
If the list is long, that's normal. Everyone's first audit looks like that, and most of what you found is unglamorous: a bot rule, a missing dateModified, an About page nobody's touched since launch. That's genuinely good news. Boring gaps are the ones that close fast.
Then re-run the AI visibility audit next quarter, and after any migration, schema rollout, or big refactor. Knowing how to audit for AI search is a skill you build once and reuse every quarter, and the second pass always takes half as long as the first.
If you'd rather not run the citation-footprint half by hand every time, that's what a platform is for. DeepSmith starts you with a workspace that already has your brand brief, competitors, and a starter prompt set populated during onboarding, on a 7-day free trial with no long-term contract. Start a free trial and see your real numbers before you decide anything.
You're closer than the gap list makes you feel. One factor at a time.



