Part of the generative engine optimization guide and AEO Hub.
I have a folder of "GEO readiness checklist" PDFs collected from competitor sites, vendor lead magnets, and a dozen LinkedIn carousels. They share a tell: they are all flat. Forty bullets, fifty bullets, each presented with the same visual weight, each implying that "add Organization schema" and "build a custom entity knowledge graph" sit on the same rung. They do not. After running an AI-search optimization program on attrifast.com and three client properties for the better part of a year, the single most useful thing I can hand another founder is not a longer list. It is a ranked list — one that tells you which six steps to do this weekend and which twenty-four can wait, and which of all thirty I can actually prove move the needle versus the ones I am taking on faith.
So this is the checklist I run, in the order I run it. Each step carries an effort rating, an impact rating, a speed-to-signal rating, and an honesty flag — confirmed, probable, or speculative. The structure: a quick priority matrix up front so you can see the whole landscape, then the high-leverage six in detail, then the four working sections (technical/schema, content, authority, measurement), then a master table you can copy into a spreadsheet and tick off, then the mistakes I see most, then the FAQ. The last step, number 30, is the one most checklists omit entirely: measure whether any of the previous twenty-nine drove a single dollar of revenue. A checklist that ends at "ship the schema" and never asks "did it pay?" is a to-do list for theater.
If you want the narrative version of the underlying tactics rather than a scannable checklist, the GEO tactics playbook is the companion piece. This page is deliberately the opposite shape: dense, ranked, tickable.
Quick facts
| Spec | Value | Source |
|---|---|---|
| Total steps in this checklist | 30 | This page |
| High-leverage steps (do first) | 6 | This page |
| Steps labeled confirmed-effective | 11 | This page |
| Steps labeled speculative | 5 | This page |
| Original GEO research foundation | Aggarwal et al., Princeton, 2024 | arXiv [1] |
| Maximum citation lift in the original paper | Roughly 40% from combined techniques | arXiv [1] |
| Optimal first-token answer length | 40-80 words | Practitioner, aligned with [5] |
| AI Overviews appearance rate (US English, Q1 2026) | 13-15% of queries | Search Engine Land [7] |
| ChatGPT weekly active users (Q4 2025) | Roughly 400 million | OpenAI [2] |
| Share of US adults who have used ChatGPT (2025) | Roughly 34% | Pew Research [10] |
| llms.txt adoption (public SaaS, Q1 2026) | Around 7% | llmstxt.org ecosystem [8] |
| GA4 default channel for AI referrals | Direct/(none), no built-in rule | Google Analytics Help [9] |
| Named AI crawlers worth allowing | 6-8 user agents | OpenAI / Anthropic / Google docs [4] |
A note on the numbers before we start. The 13-15% AI Overview rate is the share of queries that show an AI block, not the share of clicks that AI wins. ChatGPT's 400 million weekly actives is a real, large surface, but it is roughly 5% of Google's daily query volume on a weekly-versus-daily basis. I front-load these because the right mental model for this checklist is "additive layer on a real and growing surface," not "AI is everything and SEO is over." The checklist is built for the first model. Anyone selling you the second is selling a deck, not a result.
The priority matrix: impact times effort
The organizing idea of this whole page is one chart. Every step lands somewhere on an impact-versus-effort grid. The steps you do first live in the top-left quadrant: high impact, low effort. The steps you defer or skip live in the bottom-right: low impact, high effort. Most flat checklists scatter steps across all four quadrants and present them in random order, which is how you end up building a custom knowledge graph (high effort, modest impact) before you have written a single first-token answer (low effort, high impact).
Read the matrix this way. The top-left cluster — first-token answers, FAQ schema, tables, question H2s, attributed quotes, clean HTML — is the high-leverage six, and it is where you start. Revenue measurement (step 30) sits high on impact and middling on effort: it is a one-time engineering task with permanent payoff, which is why it earns its place despite not being a thirty-minute job. Original data is high-impact but genuinely expensive, so it is "plan and schedule," not "do this afternoon." The bottom-right — custom knowledge graphs, training-corpus tricks — is where I see founders waste the most time relative to return.
Here is the same idea as a ranked table, which is easier to copy than a chart:
| Quadrant | Steps that live here | What to do |
|---|---|---|
| Do first (high impact, low effort) | First-token answers, FAQ schema, tables, question H2s, attributed quotes, clean HTML | Ship this weekend |
| Plan and schedule (high impact, high effort) | Original data, revenue measurement, multi-format content | Block calendar time, do over weeks |
| Fill-in (low impact, low effort) | llms.txt, Organization schema, freshness, internal links | Knock out when you have a spare hour |
| Defer or skip (low impact, high effort) | Custom knowledge graph, training-corpus tricks, heavy Reddit seeding | Only if everything above is done |
How to read every step
Each of the 30 steps below carries the same four-column rating so you can scan and triage without reading the prose. Here is the legend, then the steps.
| Rating | Scale | Meaning |
|---|---|---|
| Effort | Low / Medium / High | One-time setup time plus per-page cost |
| Impact | Low / Medium / High | Citation or traffic lift I can observe |
| Speed | Fast / Medium / Slow | Time from shipping to first measurable signal |
| Confidence | Confirmed / Probable / Speculative | How sure I am the step actually works |
"Confirmed" means I have watched a repeatable lift across more than one property, and it traces to published research. "Probable" means it is widely believed and consistent with the mechanics but I cannot cleanly isolate its effect from everything else I shipped the same week. "Speculative" means it sounds plausible and costs little, but I have no honest before-and-after to show you. I would rather flag the uncertainty than launder it into false confidence.
The high-leverage six: do these first
If you do nothing else on this entire page, do these six steps on your top five to twenty trafficked pages. In my testing they account for the large majority of the citation lift I can measure, and together they take roughly half a day per page the first time and far less once they are baked into your template.
| # | Step | Effort | Impact | Speed | Confidence |
|---|---|---|---|---|---|
| 1 | First-token answer (40-80 words) | Low | High | Fast | Confirmed |
| 2 | FAQPage schema (4+ Q&A) | Low | High | Medium | Confirmed |
| 3 | At least one comparison table | Low | High | Fast | Confirmed |
| 4 | Question-shaped H2s | Low | High | Medium | Confirmed |
| 5 | Two attributed expert quotes | Low | Medium | Medium | Confirmed |
| 6 | Clean, indexable HTML | Medium | High | Slow | Confirmed |
Step 1: Ship a first-token answer in the first 40-80 words
The quotable version: the cleanest 40-80 word answer span on the page is the one that gets extracted, so put it first. This is the highest-leverage single change on the list. AI retrieval pipelines — for ChatGPT, Perplexity, Claude, and Google AI Overviews — look for the most self-contained, directly-responsive span they can find and lift it into the answer. A page that opens with three paragraphs of throat-clearing before answering the question buries that span; a page that answers in the first paragraph hands it over on a plate.
The pattern: the page's core question becomes the H1 or the first H2, and the very next paragraph answers it completely in 40-80 words, with no "in this article we will explore." If a reader could screenshot that one paragraph and have the answer, you have done it right. I shipped this on my top five pages and watched citation rate roughly double inside two weeks — the only step where I have seen that magnitude repeatably and in isolation.
| Aspect | Detail |
|---|---|
| Time per page | About 30 minutes |
| Ongoing cost | None once written |
| Where it pays | Every AI engine, plus Google featured snippets |
| Common mistake | Writing the answer in the conclusion instead of the intro |
| Confidence | Confirmed — aligns with the Princeton paper's "direct answer" findings [1] and downstream studies [5] |
Step 2: Add FAQPage schema with four or more pairs
The quotable version: FAQPage schema pre-extracts your question-answer pairs so the retrieval pipeline does not have to guess. When your visible FAQ section is mirrored in valid FAQPage JSON-LD, you hand the crawler structured Q&A rather than forcing it to pattern-match questions out of prose. The Princeton work and downstream Ahrefs and Semrush studies all find schema correlates strongly with citation rate [1][5][6].
The non-negotiable rule: the schema must mirror visible on-page content exactly. Schema with no matching visible block is flagged by Google's Rich Results Test and silently dropped, and there are credible reports of it being treated as a spam signal. Mechanical match between the JSON-LD and the rendered HTML is the whole game.
| Aspect | Detail |
|---|---|
| Time | 1 hour first setup, 5 minutes per page after |
| Ongoing cost | None |
| Validation | Google Rich Results Test must pass [15] |
| Common mistake | Schema questions that do not appear verbatim on the page |
| Confidence | Confirmed — schema-to-citation correlation in multiple studies [1][5][6] |
Step 3: Include at least one comparison table per major piece
The quotable version: AI engines lift tables wholesale because a table is the most extraction-friendly structure on the web. A well-formed comparison table — clear headers, one concept per row, specific values per cell — is frequently pulled directly into AI answers, sometimes verbatim. Tables compress decision-relevant information into a shape the model can quote without paraphrasing, which is exactly what a retrieval pipeline wants.
I have watched citation snippets that consist almost entirely of a table I wrote. The win is largest on "X vs Y" and "best tools for Z" queries, where the user is explicitly comparison-shopping and the model wants a grid to present.
| Aspect | Detail |
|---|---|
| Time per page | About 15 minutes |
| Ongoing cost | None |
| Best for | Comparison, pricing, and "best of" queries |
| Common mistake | Tables with vague cells ("good," "fast") instead of specifics |
| Confidence | Confirmed — I have seen tables lifted verbatim into citations |
Step 4: Write question-shaped H2s that match how people phrase chatbot prompts
The quotable version: people type full questions into chatbots, so headings shaped like those questions match the query better than keyword fragments. A heading like "How do I track ChatGPT traffic without cookies?" maps to a real chatbot prompt; "ChatGPT traffic tracking" does not. The retrieval pipeline scores the semantic match between the user's natural-language question and your headings, and a question-shaped H2 is a closer match.
This costs nothing extra — you are writing the heading either way. It is a pure framing change with measurable upside, which is why it sits in the high-leverage six despite feeling almost too simple to matter.
| Aspect | Detail |
|---|---|
| Time | Zero marginal — reframe headings you write anyway |
| Ongoing cost | None |
| Best for | Long-tail, conversational queries |
| Common mistake | Keyword-stuffed fragments instead of natural questions |
| Confidence | Confirmed — consistent lift across conversational query sets |
Step 5: Quote and attribute two expert sources inline
The quotable version: a page that cites named primary sources reads as more trustworthy to a retrieval pipeline, the same way it does to a human. The Princeton paper's high-lift tactics include "cite sources" and "quotation," and the mechanism is intuitive — content that attributes claims to named authorities looks authoritative-shaped to a model trained on authoritative text [1]. Two inline quotes with attribution to a primary source (a vendor's docs, a research paper, a named practitioner) per major piece is a reliable, cheap lift.
Attribution matters more than volume. One quote attributed to "Stripe's webhook documentation" with a link beats five unattributed assertions. Link to the primary source, not to a blog summarizing it.
| Aspect | Detail |
|---|---|
| Time per page | About 20 minutes |
| Ongoing cost | None |
| Mechanism | Maps to E-E-A-T trust signals and the paper's "cite sources" tactic [1] |
| Common mistake | Citing secondary sources instead of primary ones |
| Confidence | Confirmed — direct finding in the original GEO research [1] |
Step 6: Ship clean, indexable HTML
The quotable version: if an AI crawler cannot reach and parse your page, every other step on this list is wasted. This is the foundation step, rated High impact precisely because its absence zeroes out everything else. Server-rendered or statically-rendered HTML, real semantic elements, a clean DOM, no critical content trapped behind client-side JavaScript that the crawler may not execute. Most AI crawlers are far less patient with heavy client-side rendering than Googlebot.
It is rated Medium effort and Slow speed because fixing rendering on an existing site can be real work, and the payoff shows up gradually as crawlers re-fetch. But it is non-negotiable. A beautifully schema'd page that ships its content via a client-side fetch the crawler never runs is invisible.
| Aspect | Detail |
|---|---|
| Time | Varies — minutes on a static site, days on a heavy SPA |
| Ongoing cost | Maintain rendering discipline |
| Test | Fetch the raw HTML with curl; is your content there? |
| Common mistake | Critical content rendered only client-side |
| Confidence | Confirmed — crawlable HTML is a precondition, not an optimization |
Section A: Technical and schema steps (7-13)
With the high-leverage six shipped, the technical layer is next. These steps make your site legible to AI crawlers at the structural level. Most are one-time site-wide setup rather than per-page work.
| # | Step | Effort | Impact | Speed | Confidence |
|---|---|---|---|---|---|
| 7 | Publish llms.txt at site root | Low | Medium | Medium | Probable |
| 8 | Add Organization schema with sameAs | Low | Medium | Slow | Probable |
| 9 | Add Article and Author schema | Low | Medium | Medium | Confirmed |
| 10 | Allow named AI crawlers in robots.txt | Low | High | Slow | Confirmed |
| 11 | Keep URLs clean and semantic | Medium | Medium | Slow | Probable |
| 12 | Maintain an XML sitemap | Low | Medium | Medium | Confirmed |
| 13 | Add HowTo or ItemList schema where relevant | Medium | Medium | Medium | Probable |
Step 7: Publish llms.txt at your site root
The quotable version: llms.txt is a 30-minute, zero-downside curated index of your most LLM-relevant pages — worth doing precisely because only about 7% of SaaS sites have. The proposal from Jeremy Howard at llmstxt.org gives well-behaved AI crawlers a markdown map of the pages you most want them to read [8]. GPTBot, OAI-SearchBot, PerplexityBot, and ClaudeBot read it; Google's Gemini does not yet, as of this writing.
I am honest about its ceiling: llms.txt does less than its advocates claim and more than its detractors claim. It is most useful when your most-useful pages are not your most-linked pages, because it surfaces them directly. The cost is half an hour and the downside is zero, which is why it is on the list despite a Probable rather than Confirmed rating. For the revenue-relevant version of this debate, see the llms.txt revenue impact analysis.
| Aspect | Detail |
|---|---|
| Time | About 30 minutes, one time |
| Read by | GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot [4][8] |
| Not read by | Gemini, as of this writing |
| Downside | None |
| Confidence | Probable — adoption is low, isolation of effect is hard |
Step 8: Add Organization schema with sameAs links
The quotable version: sameAs links from your Organization schema to Wikidata, Crunchbase, LinkedIn, and GitHub are the cheapest entity-disambiguation move there is. This tells engines that the "Attrifast" on your site is the same entity referenced across the open web, which reduces the chance the model confuses your brand or fails to connect mentions to your domain. It is one block of JSON-LD, written once, deployed site-wide.
| Aspect | Detail |
|---|---|
| Time | About 45 minutes, one time |
| Where it pays | Brand-entity queries, disambiguation |
| Profiles to link | Wikidata, Crunchbase, LinkedIn, GitHub, X |
| Common mistake | Linking only to your own social, not authoritative registries |
| Confidence | Probable — strongly recommended, hard to isolate |
Step 9: Add Article and Author schema
The quotable version: Article and Author schema attach a real, credentialed person to your content, which is a direct trust signal. A named author with a bio establishing topical authority, marked up in JSON-LD and matching a visible byline, outperforms generic "Team" attribution. This is the structured-data expression of the E-E-A-T "Experience" and "Expertise" signals. Schema.org's Article spec is the reference [14].
| Aspect | Detail |
|---|---|
| Time | 30 minutes setup, minimal per page |
| Where it pays | Trust scoring, author-entity recognition |
| Requirement | Visible byline must match the schema |
| Common mistake | "Team" or no author at all |
| Confidence | Confirmed — author entity is a repeatable trust signal |
Step 10: Allow the named AI crawlers in robots.txt
The quotable version: for most SaaS and ecommerce sites the right default is to allow every named AI crawler — blocking them opts you out of citations without protecting much. GPTBot, ChatGPT-User, OAI-SearchBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot, and Google-Extended each respect robots.txt per their published docs [4][20]. Blocking GPTBot opts you out of training-corpus presence but does not block the real-time browse agents that fetch pages at query time, and it does not remove data already collected.
The exceptions are narrow: paywalled content, proprietary research you monetize directly, or content where you have a specific redistribution concern. Otherwise, allow them all and instrument the crawl.
| Aspect | Detail |
|---|---|
| Time | 15 minutes, one time |
| Crawlers to allow | GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended |
| Default recommendation | Allow all named AI crawlers |
| Exceptions | Paywalled or proprietary-monetized content |
| Confidence | Confirmed — these are precondition gates for citation |
Step 11: Keep URLs clean and semantic
The quotable version: a clean, human-readable URL is easier for an engine to cite verbatim and signals topical relevance. /blog/ai-search-optimization-checklist beats /p?id=48823. Clean URLs are a minor signal individually but a hygiene baseline that compounds with everything else. The cost is mostly avoiding the mistake on new pages; retrofitting old URLs risks losing existing SEO equity, so be conservative there.
| Aspect | Detail |
|---|---|
| Time | Free on new pages; risky to retrofit |
| Where it pays | Citation hygiene, topical signal |
| Common mistake | Mass-rewriting URLs and breaking existing rankings |
| Confidence | Probable — small signal, real hygiene benefit |
Step 12: Maintain an XML sitemap
The quotable version: a current XML sitemap is how crawlers discover your new pages quickly, which compresses time-to-first-citation. Listing a URL in sitemap.xml (and in llms.txt) means a new page gets crawled in 1-3 weeks rather than waiting on link discovery. It is standard SEO hygiene that carries directly into GEO because the same crawlers use it.
| Aspect | Detail |
|---|---|
| Time | Usually automated by your CMS |
| Where it pays | Crawl speed for new content |
| Pair with | llms.txt for the curated subset |
| Confidence | Confirmed — standard discovery mechanism |
Step 13: Add HowTo or ItemList schema where relevant
The quotable version: HowTo and ItemList schema turn procedural and list content into structures engines can extract step-by-step. For tutorial pages, HowTo schema marks up the steps; for "best X" or ranked-list pages, ItemList does the same. Apply only where the content genuinely is a procedure or a list — forcing it onto unstructured prose is the kind of schema-without-matching-content mistake that gets dropped.
| Aspect | Detail |
|---|---|
| Time | 20 minutes per applicable page |
| Where it pays | Tutorial and ranked-list queries |
| Requirement | Content must actually be a procedure or list |
| Common mistake | Forcing list schema onto prose |
| Confidence | Probable — helps on the right page types |
Section B: Content steps (14-21)
Technical legibility gets you into the index pool. Content quality determines whether you get cited once you are there. These are the steps that make the content itself citation-worthy.
| # | Step | Effort | Impact | Speed | Confidence |
|---|---|---|---|---|---|
| 14 | Publish original data or benchmarks | High | High | Slow | Confirmed |
| 15 | Use specific numbers, not vague claims | Low | Medium | Medium | Confirmed |
| 16 | Ship multi-format content per concept | Medium | Medium | Medium | Probable |
| 17 | Add honest caveats and limitations | Low | Medium | Medium | Probable |
| 18 | Match content to query intent | Medium | High | Medium | Confirmed |
| 19 | Keep paragraphs short and extractable | Low | Medium | Medium | Probable |
| 20 | Cover the topic comprehensively | High | High | Slow | Confirmed |
| 21 | Refresh content with real updates | Medium | Medium | Medium | Probable |
Step 14: Publish original data or benchmarks
The quotable version: original data is the most-cited content type because it is the one thing other sources cannot copy from each other. When you publish a benchmark, a survey, or a measurement nobody else has — "ChatGPT-attributed sessions converted at 1.4-2.1x Google organic across 24 B2B SaaS sites" — you become the canonical source for that fact. Engines cite the origin. This is High effort because real data is expensive to collect, and Slow because it compounds over time, but it is the highest-ceiling content move on the list.
| Aspect | Detail |
|---|---|
| Time | High — data collection is the cost |
| Where it pays | You become the citable origin of a fact |
| Best form | A specific number with methodology |
| Common mistake | Recycling other people's stats as if original |
| Confidence | Confirmed — original data is reliably cited |
Step 15: Use specific numbers instead of vague claims
The quotable version: "improves citation rate by roughly 40%" gets quoted; "significantly improves visibility" gets skipped. The Princeton paper's "statistics" tactic is one of its highest-lift findings [1]. Specific, sourced numbers are more extractable and more citation-worthy than qualitative claims. Replace "many sites," "significantly," and "a lot" with real figures and a footnote. This is nearly free and consistently effective.
| Aspect | Detail |
|---|---|
| Time | Marginal — a discipline, not a task |
| Where it pays | Every query where a number is the answer |
| Mechanism | The paper's "add statistics" tactic [1] |
| Common mistake | Vague intensifiers in place of figures |
| Confidence | Confirmed — direct finding in the research [1] |
Step 16: Ship multi-format content per concept
The quotable version: present each key concept as a table, a paragraph, and a bullet list so the engine can pick whichever format fits the answer. Different queries want different shapes. A "what is" query wants a definition paragraph; a "compare" query wants a table; a "steps" query wants bullets. Covering a concept in multiple formats raises the odds one of them matches the answer the model is composing.
| Aspect | Detail |
|---|---|
| Time | Medium — more authoring per concept |
| Where it pays | Format-diverse query sets |
| Common mistake | One format only, repeated everywhere |
| Confidence | Probable — sensible, hard to isolate |
Step 17: Add honest caveats and limitations
The quotable version: content that names its own limits reads as more trustworthy, and trust-shaped content gets cited more. Counterintuitively, admitting what a tactic does not do — "llms.txt does less than its advocates claim" — strengthens citation-worthiness, because hedged, qualified writing is the texture of authoritative source material. It also keeps you honest, which is the whole point of this checklist.
| Aspect | Detail |
|---|---|
| Time | Marginal |
| Where it pays | Trust signal, accuracy |
| Common mistake | Overclaiming, which reads as marketing |
| Confidence | Probable — aligns with trust signaling |
Step 18: Match content to query intent
The quotable version: the page must answer the actual question behind the query, not an adjacent one. A page targeting "AI search optimization checklist" must deliver a checklist, not a 3,000-word essay on the history of search. Intent match is High impact because a mismatch means the engine simply does not surface you for that query no matter how good the schema is. Read the query literally and deliver exactly what it asks.
| Aspect | Detail |
|---|---|
| Time | Medium — requires real intent analysis |
| Where it pays | Whether you surface at all |
| Common mistake | Answering the topic, not the question |
| Confidence | Confirmed — intent mismatch zeroes out citation |
Step 19: Keep paragraphs short and extractable
The quotable version: a 40-80 word self-contained paragraph is an extractable unit; a 300-word wall is not. Each paragraph that fully expresses one idea is a candidate span the engine can lift. Long, multi-idea paragraphs force the model to paraphrase, which it does less reliably than quoting. This is a light-touch structural discipline that compounds with the first-token-answer step.
| Aspect | Detail |
|---|---|
| Time | Marginal — an editing habit |
| Where it pays | Span extractability |
| Common mistake | Dense multi-idea paragraphs |
| Confidence | Probable — consistent with extraction mechanics |
Step 20: Cover the topic comprehensively
The quotable version: a page that answers the main question and the obvious follow-ups becomes the one-stop source the engine prefers to cite. Topical completeness — the main answer plus related sub-questions, edge cases, and the "but what about" follow-ups — signals depth. Engines favor sources that resolve the whole query cluster, not just the headline. This is High effort and Slow, but it is what separates a cited page from a skipped one on competitive topics.
| Aspect | Detail |
|---|---|
| Time | High — comprehensive coverage is real work |
| Where it pays | Competitive topics, follow-up queries |
| Common mistake | Thin coverage of a crowded topic |
| Confidence | Confirmed — depth correlates with citation |
Step 21: Refresh content with real updates
The quotable version: a genuinely revised body plus a visible updated date re-triggers crawling and helps on time-sensitive queries. Freshness is a reliable signal for the live-retrieval surface — OAI-SearchBot and ChatGPT-User favor recently-modified pages on time-sensitive queries. The honest caveat: update because the content is genuinely stale and readers deserve current information, and take the freshness bump as a bonus. A cosmetic date change with no real edit is the kind of trick that ages badly.
| Aspect | Detail |
|---|---|
| Time | Medium per refresh |
| Where it pays | Time-sensitive queries, re-crawl |
| Common mistake | Bumping the date without revising the body |
| Confidence | Probable — real on retrieval, limited on training |
Section C: Authority and off-page steps (22-27)
On-page work has a ceiling. Beyond it, authority signals — who else references you, where your brand entity is established, how your topical reputation is built — determine whether you get cited on competitive queries. These steps are slower and harder to measure, and the confidence ratings reflect that.
| # | Step | Effort | Impact | Speed | Confidence |
|---|---|---|---|---|---|
| 22 | Build topical authority across a cluster | High | High | Slow | Confirmed |
| 23 | Earn mentions on high-trust sources | High | High | Slow | Probable |
| 24 | Establish your entity on Wikidata/Crunchbase | Medium | Medium | Slow | Probable |
| 25 | Seed answers on Reddit, Quora, Stack Overflow | High | Medium | Slow | Probable |
| 26 | Maintain consistent NAP and brand data | Low | Low | Slow | Speculative |
| 27 | Build a custom entity knowledge graph | High | Low | Slow | Speculative |
Step 22: Build topical authority across a cluster
The quotable version: engines cite sources that demonstrably own a topic, and ownership is built across a cluster of pages, not one post. A single great page on "GEO checklist" helps less than ten interlinked pages covering the whole GEO topic — checklist, tactics, ranking factors, measurement, engine-specific guides. Internal links between them signal a coherent topical authority. This is the same hub-and-spoke logic that has driven SEO for years, and it carries directly into GEO. See the AI search ranking factors breakdown for the factor-level view.
| Aspect | Detail |
|---|---|
| Time | High — a cluster is many pages |
| Where it pays | Competitive, authority-gated queries |
| Mechanism | Interlinked topical cluster |
| Confidence | Confirmed — topical authority is durable |
Step 23: Earn mentions on high-trust sources
The quotable version: a citation from a source the engine already trusts transfers some of that trust to you. Being referenced by an established publication, a well-known practitioner, or a high-authority site raises your own citation odds. This is the GEO expression of traditional link-building and digital PR. It is High effort and Probable rather than Confirmed because attribution is murky — I cannot cleanly separate the effect of a single high-trust mention from everything else moving at the same time.
| Aspect | Detail |
|---|---|
| Time | High — outreach and earned media |
| Where it pays | Trust transfer, brand authority |
| Common mistake | Chasing low-trust link farms |
| Confidence | Probable — real but hard to isolate |
Step 24: Establish your entity on Wikidata and Crunchbase
The quotable version: a brand that exists as a structured entity on authoritative registries is one the engine can recognize and connect mentions to. Beyond the sameAs links in step 8, actually creating and maintaining accurate Wikidata, Crunchbase, and similar entries gives engines a canonical record of who you are. It is the most underpriced authority move I know — most founders never do it. See the guide to getting cited by AI engines for the entity-disambiguation deep dive.
| Aspect | Detail |
|---|---|
| Time | Medium, one time plus upkeep |
| Where it pays | Entity recognition, brand queries |
| Common mistake | Never creating the entries at all |
| Confidence | Probable — recommended, hard to measure cleanly |
Step 25: Seed answers on Reddit, Quora, and Stack Overflow
The quotable version: AI training and retrieval lean heavily on community sources, so genuinely helpful answers there can surface in AI responses — but this is the most overrated of the authority moves. Reddit and Stack Overflow are heavily weighted in AI citations per source analyses [11][12], and OpenAI's Reddit data partnership reinforces it. The honest caveat: I rate this Probable and call it overrated because the effort is high, the platforms punish anything that smells promotional, and the measurable return has been the weakest of the authority steps in my testing. Do it only as authentic participation, never as a campaign.
| Aspect | Detail |
|---|---|
| Time | High — sustained authentic participation |
| Where it pays | Community-weighted citations |
| Common mistake | Promotional posts that get removed |
| Confidence | Probable — real weighting, weak measurable return |
Step 26: Maintain consistent NAP and brand data
The quotable version: consistent name, contact, and brand details across the web reduce entity confusion — a small signal that mostly matters for local and brand queries. This is borrowed from local SEO. For a pure-SaaS brand with no physical location it is marginal, which is why it is rated Low impact and Speculative. Worth keeping consistent because inconsistency can hurt; not worth a project.
| Aspect | Detail |
|---|---|
| Time | Low |
| Where it pays | Local and brand-entity queries |
| Confidence | Speculative — minor for pure SaaS |
Step 27: Build a custom entity knowledge graph
The quotable version: a hand-built knowledge graph is the canonical example of a high-effort, low-return step you should defer until everything else is done. Some enterprise GEO advice pushes elaborate custom entity graphs. For a bootstrapped SaaS or store, the return does not justify the effort — the sameAs links of step 8 and the registry entries of step 24 capture most of the available entity benefit at a fraction of the cost. I include it to be complete and to mark it clearly: bottom-right quadrant, defer or skip.
| Aspect | Detail |
|---|---|
| Time | High |
| Where it pays | Marginal for SMB |
| Confidence | Speculative — low ROI for most sites |
Section D: Measurement steps (28-30)
Here is where almost every other checklist stops short. The first 27 steps are bets. Steps 28 through 30 are how you find out whether the bets paid. A checklist with no measurement section is a to-do list for activity, not for results.
| # | Step | Effort | Impact | Speed | Confidence |
|---|---|---|---|---|---|
| 28 | Log AI crawler hits | Low | Medium | Fast | Confirmed |
| 29 | Track citations across engines | Medium | Medium | Medium | Confirmed |
| 30 | Measure whether it drove revenue | Medium | High | Medium | Confirmed |
Step 28: Log AI crawler hits
The quotable version: grepping your access logs for the named AI user-agents tells you, for free, whether you are even in the index pool. Before you can be cited, you must be crawled. Search your server logs for GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, and Google-Extended. If they are hitting your pages, you are in the candidate pool; if they are not, fix crawlability (step 6) before anything else. This is the fastest, cheapest feedback loop on the list. For a deeper treatment, see the AI crawler tracking guide — I keep that one updated as the user-agent strings change.
| Aspect | Detail |
|---|---|
| Time | 10 minutes, repeatable |
| What it tells you | Are you in the index pool? |
| Tool | grep on access logs |
| Confidence | Confirmed — direct, unambiguous signal |
Step 29: Track citations across engines
The quotable version: once a week, ask ChatGPT, Perplexity, Claude, and Gemini your top 20 target prompts and log whether your domain appears. This captures presence — whether you are being cited — but not traffic. It is manual and a little tedious, and dedicated tools like Profound automate it [12], but even a manual weekly log gives you a trend line. Citation presence is the leading indicator; it precedes traffic, which precedes revenue.
| Aspect | Detail |
|---|---|
| Time | 30-60 minutes weekly |
| What it tells you | Are you cited, and trending up? |
| Limitation | Presence, not traffic |
| Confidence | Confirmed — direct citation observation |
Step 30: Measure whether any of it drove revenue
The quotable version: this is the step everyone skips, and skipping it turns the other 29 into theater — because a citation you cannot tie to a paying customer is a vanity metric. Here is the structural problem: GA4 buckets ChatGPT, Perplexity, Claude, and Gemini referrals into Direct/(none), because none of them sit in GA4's default channel grouping per Google's own documentation [9]. The AI clients also strip the Referer header on most outbound clicks. So the citations you worked through 29 steps to earn are invisible in your default analytics — they show up as "Direct," indistinguishable from someone typing your URL.
Closing the loop requires two pieces GA4 does not give you. First, server-side first-party detection: a small script on your own domain that reads the Referer when present, fingerprints AI-engine domains, and writes the source to a first-party identifier scoped to your site (cookieless, no consent banner). Second, a revenue join: when Stripe fires checkout.session.completed, the webhook attaches the stored source to the payment. Now you can answer the only question that matters — "did the Perplexity citation send anyone who paid us?" — with a number instead of a screenshot.
This is the gap Attrifast was built to close, and it is why this checklist exists in the shape it does. The full workflow looks like this:
The honest workflow is content to crawl to citation to click to paid, and the last arrow — click to paid — is the one nobody instruments. For the methodology of attributing AI-engine revenue without cookies, see how to measure GEO ROI and the ChatGPT referral analytics guide. For the practical detection code, see track ChatGPT traffic. For the architecture that joins it all to Stripe, see the revenue attribution feature page.
| Aspect | Detail |
|---|---|
| Time | A few hours, one-time engineering |
| What it tells you | Did the citations pay? |
| Pieces required | First-party detection + Stripe webhook join |
| Why GA4 fails | AI referrals bucketed as Direct/(none) [9] |
| Confidence | Confirmed — it is measurement, not a tactic |
The master checklist table
Here is the whole thing in one place. Copy it into a spreadsheet, sort by impact, and tick steps off. The "Order" column is my recommended sequence; the matrix quadrant tells you which bucket each step lives in.
| # | Step | Section | Effort | Impact | Speed | Confidence | Quadrant |
|---|---|---|---|---|---|---|---|
| 1 | First-token answer (40-80 words) | High-leverage | Low | High | Fast | Confirmed | Do first |
| 2 | FAQPage schema (4+ Q&A) | High-leverage | Low | High | Medium | Confirmed | Do first |
| 3 | Comparison table per piece | High-leverage | Low | High | Fast | Confirmed | Do first |
| 4 | Question-shaped H2s | High-leverage | Low | High | Medium | Confirmed | Do first |
| 5 | Two attributed expert quotes | High-leverage | Low | Medium | Medium | Confirmed | Do first |
| 6 | Clean, indexable HTML | High-leverage | Medium | High | Slow | Confirmed | Do first |
| 7 | llms.txt at site root | Technical | Low | Medium | Medium | Probable | Fill-in |
| 8 | Organization schema + sameAs | Technical | Low | Medium | Slow | Probable | Fill-in |
| 9 | Article + Author schema | Technical | Low | Medium | Medium | Confirmed | Fill-in |
| 10 | Allow AI crawlers in robots.txt | Technical | Low | High | Slow | Confirmed | Do first |
| 11 | Clean, semantic URLs | Technical | Medium | Medium | Slow | Probable | Fill-in |
| 12 | XML sitemap | Technical | Low | Medium | Medium | Confirmed | Fill-in |
| 13 | HowTo / ItemList schema | Technical | Medium | Medium | Medium | Probable | Fill-in |
| 14 | Original data or benchmarks | Content | High | High | Slow | Confirmed | Plan |
| 15 | Specific numbers, not vague | Content | Low | Medium | Medium | Confirmed | Do first |
| 16 | Multi-format per concept | Content | Medium | Medium | Medium | Probable | Plan |
| 17 | Honest caveats and limits | Content | Low | Medium | Medium | Probable | Fill-in |
| 18 | Match content to query intent | Content | Medium | High | Medium | Confirmed | Plan |
| 19 | Short, extractable paragraphs | Content | Low | Medium | Medium | Probable | Fill-in |
| 20 | Comprehensive topic coverage | Content | High | High | Slow | Confirmed | Plan |
| 21 | Refresh with real updates | Content | Medium | Medium | Medium | Probable | Fill-in |
| 22 | Topical authority cluster | Authority | High | High | Slow | Confirmed | Plan |
| 23 | Mentions on high-trust sources | Authority | High | High | Slow | Probable | Plan |
| 24 | Entity on Wikidata/Crunchbase | Authority | Medium | Medium | Slow | Probable | Fill-in |
| 25 | Reddit/Quora/SO seeding | Authority | High | Medium | Slow | Probable | Defer |
| 26 | Consistent NAP/brand data | Authority | Low | Low | Slow | Speculative | Defer |
| 27 | Custom entity knowledge graph | Authority | High | Low | Slow | Speculative | Skip |
| 28 | Log AI crawler hits | Measurement | Low | Medium | Fast | Confirmed | Do first |
| 29 | Track citations per engine | Measurement | Medium | Medium | Medium | Confirmed | Plan |
| 30 | Measure revenue per engine | Measurement | Medium | High | Medium | Confirmed | Plan |
A scoring note: if you want a single number, give yourself 3 points for each Confirmed step shipped, 2 for each Probable, and 1 for each Speculative. The high-leverage six alone is worth 18 of a possible ~70. Most sites I audit score under 10. Getting to 18 — just the six — would put you ahead of the large majority of sites competing for the same AI citations.
A realistic schedule
The checklist is not a single sitting. Here is the cadence I actually recommend, mapped to effort.
| Phase | Timeframe | Steps | Outcome |
|---|---|---|---|
| Weekend 1 | 2 days | 1, 2, 3, 4, 5, 6 on top 5 pages | The high-leverage six live where traffic is |
| Week 1 | A few hours | 10, 12, 28 | Crawlers allowed, sitemap current, crawl logging on |
| Week 2 | A few hours | 7, 8, 9, 11, 15, 19 | One-time site-wide setup done |
| Weeks 3-4 | Engineering | 30 (plus 29) | Revenue measurement instrumented |
| Ongoing | Per publish | 1-6, 13, 16-21 folded into template | New content ships AI-ready by default |
| Quarterly | A day | 14, 22, 23, 24 | Authority and original-data investments |
Common mistakes
The mistakes I see most often, in rough order of frequency. Each maps to a step or to a failure to rank the steps.
| Mistake | Why it hurts | Fix |
|---|---|---|
| Treating all steps as equal | You spend a weekend on step 27 while step 1 sits undone | Use the ranking; do the six first |
| No measurement step | 29 cosmetic tasks, zero proof of revenue | Ship step 30 in parallel, not "later" |
| Schema without a visible block | Google drops it; can read as spam | Mirror schema to visible content exactly |
| Keyword H2s instead of question H2s | Misses how people phrase chatbot prompts | Shape headings as real questions |
| First-token answer in the conclusion | The extractable span is buried | Answer in the first paragraph |
| Blocking AI crawlers by default | Opts you out of citations for little benefit | Allow named AI bots; restrict only sensitive content |
| Optimizing for mentions, not revenue | A screenshot of a citation is not a customer | Join citations to Stripe payments |
| Treating GEO as a replacement for SEO | You abandon 70-90% of your traffic for an emerging layer | Run GEO as an additive layer; honest split ~75-80% SEO |
| Cosmetic date bumps | Freshness tricks age badly and erode trust | Update the body, then the date |
| Chasing speculative steps first | High effort, low confirmed return | Defer steps 25-27 until 1-24 are done |
The meta-mistake, the one underneath all the others, is running the program without ever closing the loop. I have sat with founders who can show me a beautiful citation log — their brand surfacing in ChatGPT for a dozen target prompts — and cannot tell me whether a single one of those citations produced a paying customer. The citations are real. The revenue is unmeasured. That is not a strategy; it is a hobby with good production values. Step 30 is what turns it into a strategy. For the full argument on whether GEO drives revenue at all, see does GEO actually drive revenue and how to rank in ChatGPT.
FAQ
What is the single most important step on an AI search optimization checklist?
Ship a structured first-token answer — a 40-80 word direct answer to the page's core question, placed in the first paragraph before any preamble. Across the four properties I run this checklist on, it is the only step where I have repeatedly watched citation rate roughly double inside 14 days of shipping it alone. It is also the cheapest: about 30 minutes per page, no engineering, no vendor. The reason it works is mechanical, not magical. Retrieval pipelines for ChatGPT, Perplexity, Claude, and Google AI Overviews extract the cleanest answer span they can find, and a 40-80 word self-contained answer at the top of the page is the easiest span to extract. Everything else on the checklist amplifies this; nothing substitutes for it.
How is a GEO checklist different from a normal SEO checklist?
About 70-80% of the steps overlap — indexable HTML, semantic headings, internal links, schema, topical authority, and clean URLs help you in both blue-link search and AI answers. The 20-30% that is GEO-specific is what this checklist front-loads: first-token answers sized for extraction (40-80 words), llms.txt at the site root, FAQPage and HowTo schema density, question-shaped H2s that match how people phrase chatbot prompts, entity disambiguation across Wikidata and Crunchbase, and per-engine citation measurement. The honest framing is that GEO is an additive layer on competent SEO, not a replacement for it. A page with broken HTML and no internal links will not get cited no matter how many GEO-specific tweaks you apply.
Why rank the 30 steps by impact instead of just listing them?
Because most GEO checklists circulating in 2026 are 40-50 undifferentiated bullets, and a flat list quietly assumes every step matters equally. They do not. In practice the top six steps produce the large majority of the citation lift I can measure, and the bottom ten are real but noise-bound. Ranking by impact times effort lets a solo founder ship the high-leverage six in a weekend and capture most of the available upside before touching the long tail. A flat list invites you to spend a Saturday on a custom knowledge graph while a first-token answer sits undone on your highest-traffic page. The ranking exists to prevent exactly that misallocation.
What is step 30 and why does it matter more than the discourse admits?
Step 30 is: measure whether any of the previous 29 steps actually drove revenue. It matters because a checklist with no measurement step is theater — you complete 29 cosmetic tasks, screenshot a ChatGPT answer that mentions your brand, and have no idea whether a single paying customer arrived from it. GA4 buckets ChatGPT, Perplexity, Claude, and Gemini referrals into Direct/(none), because none of them are in GA4's default channel grouping per Google's documentation [9]. So the citations you worked to earn are invisible in your default analytics. Closing the loop requires server-side first-party detection of AI-engine referrers plus a join from the session to the Stripe payment.
Which steps are confirmed-effective versus speculative?
Confirmed-effective, meaning I have measured a repeatable citation or traffic lift across multiple properties: first-token answers, FAQPage schema, comparison tables, question-shaped H2s, attributed expert quotes, original data, and clean indexable HTML. These trace to the Princeton GEO paper plus downstream Ahrefs and Semrush studies [1][5][6]. Probably-effective but harder to isolate: llms.txt, entity disambiguation, internal link density, freshness signals. Speculative — real-sounding but I cannot show a clean before-and-after: training-corpus optimization, custom knowledge graphs, and most "write for the LLM not the human" advice. This checklist labels each step's confidence honestly rather than presenting all 30 as equally proven.
How long does it take to work through the whole checklist?
For a single high-priority page, the high-leverage six take roughly half a day of focused work. The full 30 steps applied to one page is closer to one to two days, most of it one-time setup you never repeat. Across a whole site the realistic cadence is: ship the six high-leverage steps on your top 20 pages over two to three weeks, do the one-time site-wide steps once, then fold the per-page steps into your publishing template so new content ships AI-ready by default. The measurement layer (steps 28-30) is a separate few-hour engineering task you do once and then read forever.
Do I need to optimize for every AI engine, or can I prioritize?
Prioritize by measurable referral share. Through Q1 2026, ChatGPT drives roughly 60-65% of AI-engine referral traffic, Perplexity 15-20%, Claude 10-12%, and Gemini 5-7% across cookieless analytics reporting. The good news is that the checklist is engine-agnostic — a first-token answer, clean schema, and a comparison table help you across all of them because they run similar extraction logic on the same open web. There is no meaningful "optimize for Perplexity specifically" step that does not also help ChatGPT. The one place engines diverge is crawler permissions in robots.txt, where you allow each engine's named bot individually.
Will this checklist still be valid in 2027?
The structural steps will age well; the specific thresholds will drift. First-token answers, schema, clean HTML, topical authority, and revenue measurement are durable because they reflect how retrieval and ranking fundamentally work. What will change: the exact optimal answer length, which engines read llms.txt, the precise referral-share split, and the named user-agent strings in robots.txt. I update this page when those drift, and the visible updated date reflects real revisions. Treat the ranking as stable and the numbers as a 2026 snapshot you should re-check against your own data.
Does adding schema guarantee AI citations?
No. Schema is necessary but not sufficient. The Princeton GEO paper and downstream Ahrefs and Semrush studies all found schema correlates strongly with citation rate but does not cause it alone [1][5][6]. The full set — schema plus first-token answer plus entity disambiguation plus genuine content quality — produces the lift. A perfectly-marked-up thin page does not get cited; a deeply-researched page without schema gets cited but less often than the same page with schema. Ship both, and never ship schema without a matching visible block.
Should I start with new content or retrofit existing pages?
Both, in a specific order. For existing content, the highest-ROI retrofits are: add first-token answers to your top 20 trafficked posts, add FAQPage and Article schema to all evergreen content, and add Organization sameAs site-wide. For new content, ship every applicable step from the start by baking them into your template. Avoid wholesale rewrites of pages that already rank well — the marginal GEO lift on a page that already ranks is small, and you risk losing existing SEO equity for an uncertain gain.
How is the impact rating on each step derived?
It is practitioner observation, not a controlled experiment, and I label it that way deliberately. "High" means I have seen the step move citation rate by roughly 2x or more in testing across multiple properties, or it is a precondition whose absence zeroes out everything else (clean HTML, intent match). "Medium" means a measurable but smaller effect. "Low" means real but often lost in noise. Where the rating is backed by published research — the Princeton paper's per-tactic lift measurements, for instance — I cite it. Where it rests on my own measurement, I say so. Nobody publishes hard CTR numbers for AI engines yet, so anyone claiming precise percentages per step is guessing with more confidence than the data supports.
What single thing should I ship this week if I can only do one?
Step 1 on your top five trafficked pages: a structured first-token answer in the first 40-80 words. Thirty minutes per page, highest-confirmed-lift change on the list, fastest signal. Pair it with FAQPage schema (step 2) if you have a second hour, and you have done the two interventions that move the needle most within 14 days. Everything else compounds from there. Do not start with llms.txt, an entity graph, or Reddit seeding — those are real but they are not where the leverage is.
How does this checklist interact with E-E-A-T?
It converges with it almost entirely. E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is Google's quality framework, and the checklist's confirmed steps — attributed quotes, author schema, original data, honest caveats, comprehensive coverage — are direct E-E-A-T signals. The same content patterns that prove authority to a human Quality Rater prove it to an LLM retrieval pipeline. In practice, optimizing for this checklist and optimizing for E-E-A-T are roughly 85% the same work. A page that scores well on one tends to score well on the other.
Where does measurement fit if I am just starting out?
Instrument it in parallel, not after. The common failure is to spend three months shipping steps 1 through 27, then turn to measurement and discover you have no baseline and no way to attribute the traffic you have already earned. Ship step 28 (crawler logging) in week one — it is ten minutes. Stand up step 30 (revenue attribution) in weeks three to four, while the content steps are still in flight. By the time citations start producing clicks, the measurement is already catching them. Measurement built after the fact always loses the early data, which is exactly the data that proves the program is working.
For the narrative version of these tactics, see the GEO tactics playbook. For the factor-level breakdown of what AI engines weigh, see AI search ranking factors 2026. For getting cited specifically, how to get cited by AI engines and how to rank in ChatGPT. For the measurement layer that powers step 30, how to measure GEO ROI, the llms.txt revenue impact analysis, the revenue attribution architecture, and the practical track-ChatGPT-traffic guide.
Related reading from the Attrifast research stack
To dive deeper, explore the revenue attribution architecture that powers step 30.