Most AEO advice is either too abstract to act on ("build authority and trust") or too narrow to matter ("add FAQ schema"). This is the middle version: thirty specific checks, grouped by what they actually affect, each one with how to verify it yourself and why it moves the needle. Work through them in order. The first group is a hard gate, nothing after it matters if a check there fails.

For the terminology and the comparison to traditional SEO, our AEO vs SEO piece and GEO vs AEO piece cover that ground. This one skips the theory and goes straight to the list.

Group 1: Access and crawling (6 checks)

Nothing below this group matters if an AI engine's crawler can't reach your page in the first place. This is the one group where a single failed check can zero out everything else you do.

1. Check robots.txt for OpenAI's bots. OpenAI runs at least three distinct user agents with different jobs: OAI-SearchBot, which surfaces your pages in ChatGPT's search feature and citations; GPTBot, which is used for model training and is separate from search; and ChatGPT-User, which fires for user-triggered actions inside a conversation. Verify by fetching yourdomain.com/robots.txt directly in a browser and confirming none of the three are disallowed unless you specifically intend to opt out of one. This matters because blocking GPTBot (a training opt-out most sites choose deliberately) is a different decision than accidentally blocking OAI-SearchBot, which removes you from ChatGPT's search citations entirely.

2. Check robots.txt for Perplexity's bots. PerplexityBot handles indexing for Perplexity's search and respects robots.txt; Perplexity-User handles on-demand fetches triggered by an actual user question and generally ignores robots.txt, since a person specifically asked for that page. Verify the same way, checking your robots.txt for a PerplexityBot disallow rule specifically. This matters because the index-building bot is the one standing between you and being a candidate source at all; the on-demand one mostly matters for individual, already-successful citations.

3. Check robots.txt for Anthropic's bots. ClaudeBot handles training and crawling, Claude-SearchBot specifically supports Claude's search feature, and Claude-User fires on user-directed fetches during a conversation. Three separate user agents under one brand, same as OpenAI's setup. Verify by checking for a blanket User-agent: ClaudeBot disallow that might be unintentionally catching more than you meant.

4. Confirm Googlebot isn't blocked, including by a plugin or CDN rule layered on top of robots.txt. Google's AI features, AI Overviews and AI Mode, draw on the same crawlable index regular Search uses rather than running a separate dedicated AI crawler, per Google's own guidance on optimizing for its generative AI search features. Verify in Google Search Console's URL Inspection tool, which will show you exactly how Googlebot sees the page right now, not what your robots.txt file says in theory.

5. Confirm Bingbot isn't blocked, and don't assume Microsoft Copilot needs a separate allowance. Bing documents Bingbot as its crawler for search, and Copilot's web-grounded answers draw on Bing's existing search index rather than a documented separate Copilot-specific crawler. Verify through Bing Webmaster Tools' URL inspection, the direct equivalent of Search Console's version.

6. Audit your WAF and CDN bot-management rules separately from robots.txt. This is the check people skip, and it's the one that causes the most silent failures. A robots.txt file can allow every AI crawler by name while a Cloudflare, Sucuri, or hosting-level "block AI bots" toggle silently 403s all of them anyway, because that setting operates below the application layer where robots.txt lives. Verify by checking your CDN or WAF's bot-management dashboard directly for any rule targeting "AI crawlers," "LLM bots," or a named list, and test with a raw curl -A "PerplexityBot" yourdomain.com style request to see the actual HTTP response code, not just what the dashboard claims.

Group 2: Page structure (6 checks)

Access gets you considered. Structure gets you extracted. This group is about making the actual answer easy for a model to lift cleanly out of the surrounding page.

7. State the direct answer in the first one to two sentences under every major heading. Verify by reading just the first two sentences under each <h2>/<h3> on a key page, out of context, and asking whether they alone answer the question the heading poses. This matters because a model summarizing a page tends to weight the opening of a section heavily; burying the actual fact in sentence four forces it to do extra inference work it may simply skip in favor of a competing source that didn't make it work that hard.

8. Phrase headings as the actual questions people ask, not vague topic labels. "Pricing" tells a model nothing about what question it answers. "How much does X cost per month" matches a real query almost exactly. Verify by reading your heading outline alone, stripped of body text, and checking whether it reads like a list of questions or a list of topic labels.

9. Use real `<ul>`, `<ol>`, and `<table>` elements for anything list-shaped or comparison-shaped, not visually-styled `<div>` rows. Verify with your browser's "inspect element" on any visually-list-like content; if it's <div> tags with CSS spacing instead of a genuine list tag, a crawler sees an undifferentiated block of text, not a structured list it can extract cleanly. Our semantic HTML guide has the specific before-and-after markup for this exact problem.

10. Keep one claim, step, or data point per list item or table cell. A five-clause run-on sentence crammed into a single bullet defeats the purpose of using a list at all. Verify by scanning your lists for any item that itself contains a comma-separated sub-list; split it.

11. Build a genuine logical heading hierarchy, h2 then h3 then h4, with no skipped levels and no heading used purely for visual size. Verify with a browser extension like an HTML5 outline checker, or just view-source and trace the heading tags in order. This matters for the same reason it's mattered for accessibility for years: a skipped or decorative heading level breaks the document's actual structure for any tool, human screen reader or AI parser, that relies on heading hierarchy to understand how sections relate.

12. Add a short, direct summary near the top of long-form pages, not just a narrative introduction. A two-to-three sentence answer-first summary before the full explanation gives a model a clean, low-effort extraction point even on content that's genuinely long and nuanced further down. Verify by asking whether someone could read only your first paragraph and walk away with the core answer, even if they'd miss the nuance in the rest of the piece.

Group 3: Entity and schema (5 checks)

This group is about giving machines, and the knowledge graphs several engines draw on, an unambiguous way to identify who you are and what you're saying, separate from the prose itself.

13. Confirm Organization or Person schema is present and accurate on key pages. Verify with Google's Rich Results Test or Schema.org's own validator, pasting in your page URL. This gives engines a structured, disambiguated identity record instead of making them infer who you are from an "About" page written in prose.

14. Add `sameAs` links in your schema pointing to your verified social profiles, Wikipedia or Wikidata entry (if one exists), and other authoritative mentions of your brand. Verify by checking your Organization schema's JSON-LD for a sameAs array and confirming each URL actually resolves to a real, current profile. This is one of the more direct ways to connect scattered mentions of your brand into a single entity a knowledge graph can resolve confidently.

15. Check whether your brand has a Wikidata entry, and create one through proper sourcing if you qualify and don't have one yet. Verify by searching wikidata.org directly for your brand or organization name. Multiple AI systems and Google's own Knowledge Graph draw on Wikidata as a structured, disambiguated reference layer; its absence doesn't disqualify you from citation, but its presence gives engines a cleaner identity anchor than prose alone provides.

16. Keep your brand's name and description consistent word-for-word across your site, your schema, and your third-party profiles (G2, Crunchbase, LinkedIn, directory listings). Verify with a simple side-by-side comparison of how your "about" description reads in three or four of those places. Inconsistent facts, a different founding year on your site than on Crunchbase, for instance, undermine the corroboration signal that makes a claim trustworthy enough to repeat.

17. Add FAQPage, Article, or HowTo schema to pages where the content genuinely matches that format, matching the visible content exactly. Verify through the Rich Results Test again, and separately verify by reading the FAQ questions in your schema side by side with the FAQ content a user actually sees; a mismatch between the two is a guideline violation, not just a missed opportunity. Per Google's own AI features guidance, this schema isn't required for citation, but it does make an already-clear answer machine-readable faster, which is a real if secondary benefit.

Group 4: Content quality and freshness (5 checks)

Structure and schema help a model find and parse your content. This group is about whether the content is actually worth citing once it's found.

18. Add a visible, named author byline with real credentials to anything making a factual or expert claim. Verify by checking whether a reader (or a crawler) can identify who wrote the piece without digging through an about page. This ties directly into the kind of "unique, expert-led content" Google's own guidance on generative AI search features names as the biggest lever for appearing in its AI results, bigger than any technical tweak on the list.

19. Add a genuine, accurate "last updated" date, and actually update the content when you change that date. Verify by spot-checking a few "updated" dates against your CMS's real revision history; a date that gets bumped without substantive changes is a credibility problem waiting to be noticed, by a reader or eventually by a platform that starts checking. Freshness matters more for topics that change (pricing, software features, regulations) than for timeless explainer content, so prioritize updates there first.

20. Identify and prioritize your genuinely original content: proprietary data, first-hand experience, a comparison nobody else has published cleanly. Verify by asking, honestly, whether a competitor could have written this exact page without access to anything you specifically have. Original information doesn't need to compete for citation the way corroborated common knowledge does, because there's nowhere else for an engine to pull it from.

21. Cut generic, filler content that exists to hit a word count rather than answer a specific question. Verify with a blunt read-through: does every paragraph earn its place, or could half of them be deleted without losing a fact or an argument? Thin, repetitive content is exactly what a generative engine skips in favor of a more specific or better-sourced alternative; it doesn't help your AEO standing just because it's long.

22. Add real statistics and direct citations to credible sources inside your own content, not just links for link-building's sake. This is one of the specific interventions the original GEO research tested and found to measurably improve citation likelihood within its benchmark; it's also just better writing. Verify by scanning a page for any numeric claim and confirming it links to or names its actual source rather than floating unsupported.

Group 5: Off-site signals (5 checks)

Your own pages are half the work. The other half is what other crawlable sources say about you, because corroboration across independent sources is a real factor in whether a generative engine trusts a claim enough to repeat it.

23. Audit your presence and review volume on relevant third-party review platforms (G2, Capterra, TrustRadius, Trustpilot, or category-specific equivalents). Verify by searching your brand name directly on each platform and checking review count and recency. These pages get crawled and cited constantly for "best X" and "is X worth it" style queries, which are exactly the query shapes generative engines answer most often.

24. Check whether you appear in existing third-party roundups and "best of" lists in your category, and pursue placement in credible ones where you're missing. Verify with a manual search for "best [your category]" across a few engines and note who shows up and who doesn't. You don't control these pages directly, which is precisely why they carry more corroboration weight than your own marketing copy does.

25. Monitor your presence (or absence) in relevant Reddit threads, Quora answers, and category forums. Verify with a site-specific search (site:reddit.com "your brand") and a general search for your category's common questions. Several engines, Perplexity and ChatGPT's search feature in particular, draw heavily on forum and community discussion as a source type, separate from traditional editorial content.

26. Check your backlink profile for mentions from genuinely authoritative, topically relevant sites, not just volume. Verify with any standard backlink tool (Ahrefs, Semrush) filtered by domain authority and topical relevance rather than raw count. This remains a real SEO signal and a real corroboration signal simultaneously, one of the clearest points of overlap between the two disciplines.

27. Run the actual prompts your customers would use through ChatGPT, Perplexity, Claude, and Google (with AI Overviews visible), and note whether a named competitor shows up where you don't. Verify by literally doing this, by hand, with a fixed list of five to ten real customer questions, checked on a recurring schedule. This single check tells you more about where you're actually losing ground than any single metric further down this list.

Group 6: Measurement (4 checks)

The last group closes the loop: how do you know any of the above is working, and how do you avoid reporting it dishonestly.

28. Set up a recurring, fixed-prompt citation check rather than relying on occasional, ad hoc conversations. Verify by writing down your exact prompt list once and reusing it every time, manually or through a dedicated AI visibility platform once the manual version becomes too time-consuming to sustain. Consistency in the prompt set is what makes the results comparable over time; a different casual question each month tells you nothing about trend.

29. Separate AI-referral traffic from general direct traffic in your analytics as precisely as your tooling allows, and treat the number as a floor, not a precise count. Verify by checking whether your analytics platform has a dedicated AI-referral or "generative AI" traffic source category yet; many are still catching up. Our guide to AI visibility metrics and KPIs covers which numbers in this category are solid enough to report and which ones are currently closer to guesswork.

30. Report citation and mention data honestly as a brand-visibility metric, separate from a traffic or revenue metric, in anything you share with a stakeholder. Verify your own reporting template: does a citation count get presented next to a traffic chart in a way that implies a causal link you haven't actually measured? This is less a technical check and more a discipline check, and it's the one that determines whether AEO work keeps its credibility internally or gets written off after one overpromised report.

Two deeper dives pair with this checklist: query fan-out explained for covering sub-questions, and how to rank in Microsoft Copilot for the Bing side.

If you're new to AEO, our beginner's guide to answer engine optimization explains the ideas behind each check. Item one on access depends on your crawler choices, which we cover in should you block AI crawlers?

You may notice llms.txt isn't on this checklist. That's deliberate; see does llms.txt actually work? for why.

Printable summary

#

Check

Group

1

OpenAI bots (OAI-SearchBot, GPTBot, ChatGPT-User) allowed as intended

Access

2

Perplexity bots (PerplexityBot, Perplexity-User) allowed as intended

Access

3

Anthropic bots (ClaudeBot, Claude-SearchBot, Claude-User) allowed as intended

Access

4

Googlebot confirmed unblocked in Search Console

Access

5

Bingbot confirmed unblocked in Bing Webmaster Tools

Access

6

WAF/CDN bot rules audited separately from robots.txt

Access

7

Direct answer in first 1-2 sentences per section

Structure

8

Headings phrased as real questions

Structure

9

Real list/table HTML, not styled divs

Structure

10

One claim per list item or cell

Structure

11

Logical, unskipped heading hierarchy

Structure

12

Answer-first summary near the top

Structure

13

Organization/Person schema present and valid

Entity

14

`sameAs` links to verified profiles

Entity

15

Wikidata entry checked or created

Entity

16

Brand facts consistent across site and third parties

Entity

17

FAQ/Article/HowTo schema matches visible content

Entity

18

Named author byline with credentials

Quality

19

Genuine, accurate last-updated dates

Quality

20

Original content prioritized and identified

Quality

21

Generic filler content cut

Quality

22

Real statistics and citations included

Quality

23

Review platform presence audited

Off-site

24

Roundup/"best of" placement checked

Off-site

25

Forum and community presence monitored

Off-site

26

Authoritative, relevant backlinks checked

Off-site

27

Real customer prompts tested across engines

Off-site

28

Recurring fixed-prompt citation tracking in place

Measurement

29

AI-referral traffic separated and treated as a floor

Measurement

30

Citation data reported as brand visibility, not traffic

Measurement

How often should I re-run this checklist?

The access group (checks 1 through 6) is worth re-checking any time you change CDN, WAF, hosting, or security plugin configuration, since that's the layer most likely to silently reintroduce a blocked crawler. The rest holds up well on a quarterly cadence, with the prompt-tracking checks in groups 5 and 6 run monthly since they're cheap and the most direct signal of whether anything else here is actually working.

Do I need to pass all 30 checks before I'll get cited anywhere?

No. These are weighted unevenly in practice: group 1 is a genuine hard gate, a blocked crawler zeroes out everything else for that engine specifically. Groups 2 through 4 compound, more of them done well generally helps more, but no single one is make-or-break. Groups 5 and 6 matter more for sustained, trackable visibility than for any one citation.

Is this checklist specific to one AI engine, or does it cover all of them?

It's engine-agnostic except for Group 1, where the specific bot names and robots.txt rules genuinely differ per engine. Everything from Group 2 onward (structure, schema, content quality, off-site corroboration) helps across Google's AI features, ChatGPT, Perplexity, Claude, and Gemini roughly equally, because they're all retrieving from the same broadly crawlable web and rewarding similar underlying qualities.

What's the single most important item on this list for a site that's done none of it yet?

Check 6, the WAF and CDN audit, specifically because it's invisible from inside robots.txt and from a normal SEO audit, and it's the check most likely to silently explain a total absence of AI citations on an otherwise well-built site. Run that one first, confirm it with an actual curl test against a live bot user agent, and only then move on to the structure and content work further down the list.