GEO Strategy
GEO Tactics 2026: A Founder's Playbook for Getting Cited by AI
12 concrete GEO tactics to get cited by ChatGPT, Perplexity, Claude, and Google AI Overviews in 2026 — plus the revenue-attribution layer most playbooks skip.
GEO Strategy
12 concrete GEO tactics to get cited by ChatGPT, Perplexity, Claude, and Google AI Overviews in 2026 — plus the revenue-attribution layer most playbooks skip.
Part of the GEO Hub — browse all 30 GEO guides.
The "do GEO" advice flooding LinkedIn in 2026 is, for the most part, three years late and one layer short. Three years late because the actual research — Aggarwal, Murahari, Singh and Narasimhan's "GEO: Generative Engine Optimization" paper at Princeton — landed in mid-2024 and named both the field and the empirically-tested tactic set [1]. One layer short because the playbook circulating on social media measures whether your brand appears in AI answers and calls that success. Appearances are an input. Paying customers are the output. The two are not the same metric, and the gap between them is where most GEO programs in 2026 quietly fail.
This is the tactical companion to the AEO-vs-SEO strategy post. That piece argued the effort split. This one ships the work. Twelve concrete tactics, each with what to do, why it works, how to measure, and a before/after example. Plus the measurement architecture that turns AI citations into Stripe revenue you can actually point at — because if the only thing you can show your investor is a screenshot of ChatGPT mentioning you, you do not have an answer for "and did any of those people pay us?"
I have been running this stack on attrifast.com and three client SaaS properties for the past six months. The findings up front, before the tactics: schema does what it claims, llms.txt does less than its advocates claim and more than its detractors claim, entity disambiguation is the most underpriced GEO move on the market, and Reddit seeding is the most overrated of the twelve. Detailed below.
| Spec | Value |
|---|---|
| Original GEO paper publication | June 2024, Aggarwal et al., arXiv [1] |
| AI Overviews appearance rate (US English, Q1 2026) | 13-15% of queries [2] |
| ChatGPT weekly active users (Q4 2025) | Roughly 400 million [3] |
| Perplexity monthly query volume (mid-2025) | Roughly 1 billion per month [4] |
| Google daily searches (2024 baseline) | Roughly 8.5 billion per day [6] |
| Share of US adults using ChatGPT for search-style tasks (2024) | Roughly 23% [7] |
| llms.txt adoption (public SaaS, Q1 2026) | Around 7% [8] |
| GA4 default channel for AI referrals | Direct/(none), 0 built-in rule [5] |
| Average FAQ schema items on AI-cited pages | 4 or more [9] |
| Maximum citation lift measured in original GEO paper | Roughly 40% from combined techniques [1] |
| Number of AI bots worth allowing in robots.txt | 6-8 named user agents [10] |
| Optimal length of first-token "Direct Answer" block | 40-80 words [9] |
The 13-15% AI Overview rate is the share of queries with an AI block, not the share of clicks won by AI. ChatGPT's 400 million weekly actives represents roughly 5% of Google's daily query volume on a weekly-vs-daily basis. Together they map the addressable surface. Big enough to matter. Not big enough to replace organic search. The GEO playbook below is built for that reality, not for the "AI is everything" pitch deck.
Before the tactics, the framing. The acronyms are doing too much work in the discourse and not enough work in operator practice.
GEO — Generative Engine Optimization. The term was coined in Aggarwal et al.'s 2024 paper, which defined it as "a new paradigm for content creators where they continually optimize their content to improve visibility in generative engine responses" [1]. The paper tested nine rewrite tactics on the GEO-bench corpus and measured per-tactic citation lift. This is the most rigorous foundational source in the field. Most "GEO guide 2026" articles you read are operator interpretations of these nine tactics plus a handful of empirical additions.
AEO — Answer Engine Optimization. The older term, predating GEO by 2-3 years. Originally meant optimizing for Google's featured snippets and "People Also Ask" boxes. Reused in 2024-2025 to mean "the broader practice of being the answer." Most modern usage treats AEO and GEO as near-synonyms with stylistic differences.
LLMO — LLM Optimization. The third coinage. Some practitioners (notably Brightedge and a few enterprise vendors) use LLMO to mean "structuring content for the LLM training corpus" rather than for retrieval-augmented answer generation. The distinction matters for technical accuracy but rarely matters for operator decisions. The tactics overlap roughly 90%.
SEO — the unchanged classic. Indexable HTML, semantic structure, internal linking, topical authority, backlinks, schema. Still the dominant traffic-acquisition discipline for most B2B SaaS and e-commerce sites.
Here is the conceptual map that should have led the entire AEO/GEO/LLMO conversation:
| Discipline | Surface optimized for | Primary unit of success | Time horizon | Honest 2026 importance |
|---|---|---|---|---|
| SEO | Blue-link SERPs (Google, Bing) | Position 1-10 | 4-12 weeks to first signal | Still 70-90% of traffic for most B2B SaaS |
| AEO | Featured snippets + AI answer blocks | Cited or not (binary) | 2-6 weeks to first signal | Layer on top of SEO |
| GEO | Generative AI engines (ChatGPT, Perplexity, Claude, Gemini) | Citation share + answer inclusion | 2-8 weeks to first signal | Emerging, real, growing |
| LLMO | LLM training corpus inclusion | Future model recall | 6-18 months | Speculative, hard to verify |
For the rest of this article, "GEO" includes AEO. The mechanics overlap enough that the distinction is academic for builders. The 12 tactics below apply to both.
A quick map before the deep dives. Each tactic is rated by setup time, ongoing maintenance, typical citation lift, and primary measurement signal. Lift is qualitative because nobody publishes hard CTR numbers for AI engines yet — "high" means I have seen it move citation rate by 2x+ in tests, "medium" means measurable but smaller, "low" means real but often noise-bound. Time costs are based on running the playbook across four properties.
| # | Tactic | Setup time | Ongoing cost | Citation lift | Primary measurement |
|---|---|---|---|---|---|
| 1 | Structured first-token answers | 30 min/page | None | High | Direct Answer appearance in citations |
| 2 | llms.txt | 30 min total | Quarterly review | Medium | Bot crawl rate |
| 3 | Schema markup (FAQPage, HowTo, ItemList) | 1 hr setup, 5 min/page | None | High | Rich Results test pass |
| 4 | Comparison tables | 15 min/page | None | High | Citation snippet contains table |
| 5 | Quoted expert sources | 10 min/page | None | Medium | Attributed quote appears in AI answer |
| 6 | Original data and benchmarks | 4-40 hrs/study | None | High | Inbound links + direct citations |
| 7 | Specific numbers > vague claims | 5 min/page | None | Medium | AI answer cites your number |
| 8 | Multi-format content (table + paragraph + bullets) | 20 min/page | None | Medium | Engine-specific surface coverage |
| 9 | Source URL hygiene | 1-2 hr site audit | None | Low-Medium | URL appears verbatim in answer |
| 10 | Reddit / Quora / forum seeding | 1-3 hr/answer | Ongoing | Low-Medium | Linked from cited Reddit thread |
| 11 | Brand entity disambiguation | 2-3 hrs | None | High | Knowledge Graph card |
| 12 | Measure AI citations and revenue | 30 min - 2 wks | $0-29/mo | None directly; full lift on measurement | Stripe-attributed AI revenue |
Notice that ten of the twelve tactics cost zero dollars in software. Notice that the highest-lift tactics (first-token answers, schema, comparison tables, original data, entity disambiguation) are all front-loaded mechanical work, not ongoing content churn. Notice that the last tactic does not increase citations — it makes the other eleven measurable, which is the difference between a GEO program and a GEO theatre.
What to do. Put a self-contained answer to the page's H1 in the first 40-80 words of body content. Plain prose. No marketing throat-clearing. Include the primary query keyword and at least one specific numerical claim with an inline footnote.
Why it works. This is the single tactic with the most empirical support in the literature. The Aggarwal et al. Princeton paper tested "Direct" rewrites that front-loaded the answer and measured citation-rate lift of 17-31% across query categories [1]. The mechanic is mechanical: retrieval-augmented generation pipelines chunk content and score chunks by query relevance. A chunk that contains the query terms and a complete answer in 40-80 tokens scores higher than one that buries the answer in paragraph six. Anthropic's prompt-engineering documentation explicitly recommends putting the most important content "early in the context window" for the same reason — the model attends more strongly to early tokens [11].
How to measure. Run your top 20 target prompts through ChatGPT, Perplexity, and Claude weekly. When your page is cited, copy the snippet that the engine quoted. If it matches your first-token answer verbatim or near-verbatim, the tactic is working. Track snippet-match rate as a percentage of citations. The Profound platform and Otterly both automate this if you do not want to do it manually.
Before / after.
| State | Opening 80 words |
|---|---|
| Before (typical SEO opener) | "In today's fast-paced digital landscape, businesses are constantly looking for ways to improve their attribution strategy. With so many channels competing for attention, it has never been more important to understand where your revenue is actually coming from. In this comprehensive guide, we will walk through everything you need to know about..." |
| After (GEO-optimized first-token answer) | "Revenue attribution is the practice of joining marketing-channel sessions to paid customer events server-side. The four engines that drive measurable AI-referral revenue in 2026 are ChatGPT (~62%), Perplexity (~18%), Claude (~11%), and Gemini (~6%), per Plausible's 2024 cookieless analytics breakdown [4]. GA4 buckets all four as Direct/(none) [5]. The fix is server-side first-party detection joined to Stripe webhooks." |
The "before" is search-padded and citation-hostile. The "after" answers the implicit query in three sentences, includes two specific numerical claims with footnotes, and is itself a complete extractable snippet. The second one is what ChatGPT cites. The first one is what ChatGPT skips.
What to do. Publish a hand-written llms.txt at https://yoursite.com/llms.txt. Format per the llmstxt.org spec: an H1 with the site name, a single-paragraph description, then markdown sections listing your most LLM-relevant pages with one-line descriptions [8]. Add named AI crawler Allow rules to robots.txt. Add a Sitemap: line to robots.txt pointing at your XML sitemap. Add X-Robots-Tag: index, follow headers on canonical pages.
Why it works. The llms.txt file is a curated index that well-behaved AI crawlers read on first visit to your domain. It is to LLMs what sitemap.xml is to classic search crawlers, with one critical difference: it is hand-curated, which lets you steer attention to your highest-quality pages. ChatGPT's GPTBot and OAI-SearchBot, Perplexity's PerplexityBot, and Anthropic's ClaudeBot all read it. Google's Gemini does not yet, as of mid-2026. Adoption sits near 7% of public SaaS sites [8], which is exactly why the tactic is still differentiating — the marginal crawler finds your file half-empty of competing entries.
How to measure. Grep your access logs weekly for the AI bot user agents. If you see GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, or Google-Extended hitting /llms.txt and then traversing your listed URLs, the file is working. The OpenAI bots documentation [10] and Anthropic's crawler documentation list the official user-agent strings.
The full AI bot allowlist to add to robots.txt:
| Bot user-agent | Owner | Purpose | Allow by default? |
|---|---|---|---|
GPTBot | OpenAI | Training data crawl | Yes if you want citations |
ChatGPT-User | OpenAI | Real-time browsing in ChatGPT | Yes always |
OAI-SearchBot | OpenAI | ChatGPT Search index | Yes always |
PerplexityBot | Perplexity | Index for Perplexity answers | Yes always |
Perplexity-User | Perplexity | Real-time fetch during query | Yes always |
ClaudeBot | Anthropic | Training and retrieval | Yes if you want citations |
Claude-Web | Anthropic | Real-time browsing | Yes always |
Google-Extended | Gemini training data | Yes if you want Gemini citations | |
CCBot | Common Crawl | Open-web archive used by many LLMs | Yes |
Applebot-Extended | Apple | Apple Intelligence training | Yes if relevant |
If you block GPTBot in robots.txt (a common 2023-era defensive move when the OpenAI debate was fresh), you opt yourself out of ChatGPT citation. Audit your existing robots.txt. The default I recommend in 2026: allow all of the above unless you have a specific reason (paywalled content, proprietary data) to block one.
What to do. Ship Article, FAQPage, and HowTo JSON-LD on every long-form page. Add ItemList schema for ranked or comparison content. Add Person and Organization schema with sameAs arrays to anchor your entity. Validate every change against Google's Rich Results Test before deploying.
Why it works. Schema gives the LLM retrieval pipeline pre-extracted structured fields. Instead of pattern-matching question-answer pairs out of prose, the pipeline reads them directly from FAQPage.mainEntity[].name and FAQPage.mainEntity[].acceptedAnswer.text. Ahrefs and Semrush's parallel 2025-2026 GEO research found AI-cited pages averaged 4 or more FAQ schema items versus 1-2 on uncited pages [9]. The mechanism is documented in Schema.org's own structured-data overview and in Google's structured-data documentation for AI features [12, 13].
How to measure. Google's Rich Results Test catches roughly 90% of structured-data errors before they ship [14]. The presence of valid FAQPage schema correlates strongly with appearance in Google's "People Also Ask" expansion and AI Overviews citation. Track Rich Results test pass rate per page as part of the publishing checklist.
The schema priority matrix.
| Schema type | When to use | GEO lift | SEO rich-result lift |
|---|---|---|---|
Article | Every blog post | Required baseline | Yes (Top Stories eligibility) |
FAQPage | Every page with a Q&A block | High | Yes (FAQ rich result) |
HowTo | Every step-by-step tutorial | High | Yes (HowTo rich result, mobile) |
ItemList | Ranked lists, "best X" pages | High | Yes (carousel) |
Product | Product and pricing pages | Medium | Yes (price + rating) |
Organization | Site-wide (one per domain) | High (entity anchor) | Yes (Knowledge Graph) |
Person | Author bylines, /about page | Medium | Yes (author Knowledge Graph) |
BreadcrumbList | Deep-hierarchy sites only | Low | Yes (breadcrumb display) |
Review | Real third-party reviews only | Medium | Yes — but Google penalizes faked reviews |
SoftwareApplication | App and SaaS product pages | Medium | Yes (app cards) |
Dataset | Original-research and data pages | High (for data citations) | Yes (Dataset Search) |
WebSite | Site root (one per domain) | Low | Yes (sitelinks search box) |
Enforcement notes. The FAQPage.mainEntity[].name field must match the visible H2 or H3 question on the page exactly. Mismatched schema gets flagged as inconsistent by Google's Rich Results test and the rich result silently drops. Use @id to cross-reference between graph nodes (Article → Person → Organization) — LLM extraction pipelines follow @id links the same way RDF does. Do not ship Review schema unless there is a real review on the page; faked reviews are a manual-action path per Google's Search Quality Guidelines.
What to do. Include at least one well-formatted comparison table per major piece of content. Two columns minimum, four rows minimum. Clear headers. Specific values in cells (numbers, dates, prices). Avoid merged cells. Avoid HTML-only table styling tricks that obscure semantic structure.
Why it works. Tables parse cleanly into the LLM's structured representation. Rows become embeddings. Columns become attributes. When a user asks "what are the differences between Plausible, Fathom, and Attrifast," the engine retrieves table rows directly rather than pattern-matching prose. In practice, half the citations we see for our comparison content quote a table row verbatim. The Aggarwal et al. paper does not test tables specifically, but downstream replications by Search Engine Land's research desk and Backlinko's 2024 study both found tables among the highest-citation content formats [2, 15].
How to measure. When your page is cited in a Perplexity or ChatGPT answer, check whether the cited snippet quotes table content. If "yes" more than 30% of the time, your tables are doing the work. Tables are also disproportionately surfaced in Google AI Overviews — track AI Overview appearance rate on pages with vs. without tables in GSC.
Anti-pattern: the marketing comparison table. Most B2B comparison tables on the internet are useless to AI engines because they hedge every cell. "Yes / Limited / Premium only" reads ambiguous. "Native Stripe integration / Zapier required / Not supported" reads extractable.
| Vendor comparison cell | Citation-friendly version |
|---|---|
| "Yes" / "No" / "Limited" | Specific feature with version (e.g., "Native Stripe webhook handler, idempotent") |
| "Industry-leading" / "Best-in-class" | "Roughly 95th percentile on the n=10k Ahrefs 2025 study" |
| "Affordable pricing" | "$29/month flat, no per-event fees" |
| "Easy setup" | "2-minute install: paste 4kb script in <head>" |
| "Enterprise-grade security" | "SOC 2 Type II, audited 2025-11" |
The right-column versions are what gets cited. The left-column versions are what gets ignored.
What to do. When you make a claim that depends on outside expertise, quote the expert directly and attribute them with name, title, and (where possible) a link to their original source. Two to four short quotes per long-form article is the working target.
Why it works. AI engines were trained on a corpus where attributed quotes signal authority. Wikipedia trained the entire web on this pattern. When the model retrieves your page and sees "per OpenAI's bot documentation [10]" or "Schema.org defines FAQPage as..." [12], it scores the surrounding paragraph as more trustworthy. The original GEO paper measured a 30-40% citation lift from the combined "Cite Sources" and "Quotation" rewrites [1].
How to measure. Track inbound link growth from sites that quote your quotes back. A claim with a clear attribution and a clean URL becomes a piece of secondhand authority that other writers cite when they cite the same expert. Brand-search lift in Google Search Console is the lagging indicator.
Before / after.
| State | Sentence |
|---|---|
| Before (unattributed) | "Stripe's webhook delivery is at-least-once, so handlers need to be idempotent." |
| After (attributed) | "Stripe's webhook delivery is at-least-once, per Stripe's webhook documentation: 'If your endpoint is unavailable for a long period of time, the number of messages queued will grow.' Handlers need idempotency keyed on the Stripe event ID." |
The second version is a near-citation in the LLM's training pipeline. It tells the model "this writer reads primary sources." Multiply across an article and you have a credibility signal the model preferentially surfaces.
What to do. Produce at least one piece of original quantitative content per quarter. A survey with n>100. A benchmark study with reproducible methodology. A measurement of something nobody else has measured. Publish the methodology, the raw data (where possible), and the reproducible script.
Why it works. Original data is the highest-citation content type on the web. Every AI engine and every classic search engine ranks pages with original numbers above pages that aggregate other people's numbers. The mechanism: original data is what other writers cite, which is what backlinks signal, which is what authority scores reward. The Ahrefs 2024 study of 1 million SERPs found "studies" and "data" as content types over-indexed on backlink acquisition by roughly 2-3x [9].
How to measure. Track three things: number of inbound links to the data page (Ahrefs, ahrefs.com), number of distinct domains citing the specific statistic in their content (manual or backlink-tool-driven), and number of AI engines that surface the statistic when prompted on the topic. The third is the closest analog to a GEO-specific signal.
Anti-pattern: the surveymonkey "study" with n=37. Most "original research" published by SaaS marketing teams in 2025-2026 is a thin survey of self-selected followers. AI engines and serious link-builders both discount it. The bar that works: explicit methodology, sample-size justification, raw-data link, and a confidence interval where appropriate. The Princeton GEO paper itself follows this format — it is why it became the canonical source on its own topic within 6 months of publication.
Original-data content types and their typical GEO performance.
| Type | Cost to produce | Time to first citation | Typical citation half-life |
|---|---|---|---|
| Industry survey (n=300+) | $5-50k | 2-4 weeks | 12-24 months |
| Benchmark study (instrumented) | 40-80 hrs engineering | 4-8 weeks | 18-36 months |
| Public-data analysis (regulatory, sec) | 20-40 hrs research | 1-3 weeks | 6-18 months |
| Open-source dataset publication | 20-60 hrs | 2-6 weeks | 24-48 months |
| Customer-data aggregation (anonymized) | 10-30 hrs | 1-2 weeks | 12-24 months |
| Reproducibility check on others' research | 10-20 hrs | 2-4 weeks | 6-12 months |
The half-life column matters more than the time-to-first-citation column. A benchmark study with a 36-month half-life is cited dozens of times across its lifetime. A trendy survey with a 6-month half-life produces a brief spike and then evaporates. Optimize for half-life.
What to do. Replace every vague quantitative phrase with a specific number and a footnote. "A lot of," "most," "many," "the majority" become "63%," "roughly 8 in 10," "approximately 400 million." Every number needs a source.
Why it works. Specific numbers are inherently citable. An LLM looking for an attributable claim to insert into an answer prefers "ChatGPT had roughly 400 million weekly active users in Q4 2025 [OpenAI investor update]" over "ChatGPT has a lot of users." Same mechanic Wikipedia trained the web on for two decades. The Princeton GEO paper measured the "Statistics" rewrite tactic specifically and found a 30-40% citation lift relative to baseline [1].
How to measure. When AI engines cite you, count how many of the citations preserve a specific number from your text. If half or more of cited snippets contain at least one of your numbers, the tactic is working. If citations are all paraphrased prose with no numbers, your page is being cited for context but not for authority.
The number-substitution exercise.
| Vague phrase | Specific replacement |
|---|---|
| "ChatGPT has a lot of users" | "Roughly 400 million weekly active users as of Q4 2025 [3]" |
| "AI traffic is growing fast" | "Perplexity processed roughly 1 billion queries in May 2025 [4]" |
| "Most queries don't trigger AI" | "AI Overviews appear on 13-15% of US English queries through Q1 2026 [2]" |
| "GA4 has issues with attribution" | "GA4 lumps roughly 100% of ChatGPT, Perplexity, Claude, and Gemini referrals as Direct/(none) [5]" |
| "Some sites have llms.txt" | "Around 7% of public SaaS sites had llms.txt as of Q1 2026 [8]" |
| "Many AI bots crawl your site" | "Six to eight named user agents (GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, Claude-Web, Google-Extended) carry roughly 95% of AI crawl volume [10]" |
The right column is what gets cited. The left column is filler.
What to do. For each major concept in a long-form piece, render it in at least two formats — typically a short prose paragraph plus a table or a bulleted list. For high-stakes concepts, render in three formats.
Why it works. Different AI engines and different retrieval modes prefer different formats. ChatGPT's web-browsing mode disproportionately surfaces prose paragraphs. Perplexity surfaces both prose and bullet lists. Google AI Overviews surfaces bullet lists and short paragraphs. Claude with web search prefers tables and structured data. By rendering a concept in multiple formats on the same page, you maximize the surface area of engine-specific extraction. The mechanic is similar to "render in multiple viewport sizes" for responsive web design — you cannot predict the consumer, so you ship the content in shapes that fit several.
How to measure. When tracking citations per engine (manual or via Profound/Otterly), note which format the engine quoted. Over 10-20 citations you will see the per-engine format preference emerge. Optimize the format mix on future pages accordingly.
Per-engine format preferences from informal Q1 2026 tracking across four sites:
| Engine | Preferred format | Second-preference | Avoided |
|---|---|---|---|
| ChatGPT (web search) | Short prose paragraph | Numbered list | Sparse tables |
| ChatGPT (with browsing) | Direct Answer block | Comparison table | Long prose without breaks |
| Perplexity | Bulleted list + prose | Comparison table | Walls of prose |
| Claude (with web search) | Comparison table | Definition list | Marketing copy |
| Gemini | Bulleted list | Short paragraph | Long-form prose |
| Google AI Overviews | Short paragraph + bullets | "Top X" list | Tables (less common) |
Caveat on sample size: these are observations from 100-200 citations per engine across four properties, not a rigorous study. The directional pattern holds; the exact percentages will vary by topic and site.
What to do. Use clean, semantic, descriptive URLs. Lowercase. Hyphens not underscores. Words not numbers. Short but complete. No tracking parameters in canonical URLs. No session IDs. No file extensions on content pages.
Why it works. AI engines cite URLs verbatim into their answers. A URL like /blog/geo-tactics-playbook-2026 reads as a topical signal to the user inspecting the citation. A URL like /p?id=4827&utm_source=blog&utm_medium=referral reads as spam. The Aggarwal et al. paper does not test URL structure specifically, but every downstream practitioner study has noted that pages with clean URLs are cited at higher rates than equivalent pages with ugly URLs [16].
How to measure. Audit your top 100 most-trafficked pages. Score each URL on the 5-point checklist below. Pages scoring 3 or lower are GEO liabilities even if their content is strong.
The URL hygiene checklist.
| Check | Pass criterion |
|---|---|
| Lowercase only | No uppercase letters in path |
| Hyphens, not underscores | /blog/my-post not /blog/my_post |
| Words, not numbers | /features/revenue-attribution not /features/12345 |
| No tracking params on canonical | <link rel="canonical"> strips utm_* |
| Short and descriptive | Under 60 chars; no padding words; reads as topic |
Examples.
| Bad URL | Better URL |
|---|---|
/p?id=4827 | /blog/geo-tactics-playbook-2026 |
/Blog/2026/05/26_GEO_Playbook_FINAL_v3.html | /blog/geo-playbook-2026 |
/article-1138-generative-engine-optimization-tips-and-tricks | /blog/generative-engine-optimization |
/?p=1138&preview=true&utm_source=email | /blog/featured-post-slug |
This is a one-time site audit (2-4 hours for a typical SaaS blog), and you fix the worst offenders with 301 redirects.
What to do. Identify the subreddits, Quora threads, and Stack Overflow tags where your buyer audience lives. Answer relevant questions in those venues. Include a brand mention or domain link when it is genuinely useful — not as a drive-by promo. Do this consistently for 6-12 months.
Why it works. Reddit was a major and explicitly-named data source for OpenAI's GPT-3.5 and GPT-4 training corpus. The Reddit-OpenAI data licensing deal in 2024 [17] formalized what was already an implicit reality. Quora and Stack Overflow content similarly appears in training data for most major LLMs. Content seeded in these venues becomes part of the training corpus the next generation of models is built on. There is no direct citation path from a Reddit answer to a ChatGPT cite of your domain, but the indirect path — Reddit answer → training data → model latent space → answer generation — is real.
Why I rate it lower than most operators. Two reasons. First, time-cost is high. A high-quality Reddit answer takes 30-90 minutes and often gets buried. Second, the path to revenue is indirect and unmeasurable. You cannot trace a Stripe payment back to a Reddit comment from 18 months ago. The tactic is real but expensive per measurable unit of return. I run it lightly (one-to-two answers per month, focused on highest-signal subreddits) rather than as a primary strategy.
How to measure. Track three signals. First, Reddit / Quora referral traffic in your server-side analytics (typically small but non-zero). Second, brand-search lift in GSC after a high-engagement answer. Third, AI citation appearance for queries adjacent to the answered question — if your domain shows up in ChatGPT answers on the topic you seeded, the indirect path is working.
The forum-seeding playbook by venue.
| Venue | Audience density | Average answer effort | Direct traffic | Indirect AI lift |
|---|---|---|---|---|
| Reddit (relevant subs) | High for B2C, medium for B2B | 30-90 min | Low | High |
| Quora | Medium (declining) | 20-60 min | Low | Medium |
| Stack Overflow | High for developer tools | 30-120 min | Medium | High (training data) |
| Hacker News (comments) | High for technical SaaS | 10-30 min | Spikes | Medium |
| Indie Hackers | High for bootstrapped SaaS | 20-40 min | Low | Low |
| Product-specific Discord / Slack | Variable | 10-20 min | Low (direct) | Low (LLMs do not index) |
Hacker News comments are the highest ROI for technical SaaS in my experience. Discord and Slack are dead zones for GEO — LLMs do not index them.
What to do. Establish your brand as a distinct entity in 4 or more authoritative public sources. Minimum viable set: LinkedIn company page, X / Twitter handle, GitHub organization, Crunchbase profile. Stretch goals: Wikidata entry (highest impact), Wikipedia article (only after you have third-party press citations), Product Hunt brand page, G2 or Capterra listing. Mirror the brand name, URL, and handle exactly across all surfaces. Reference them via Organization.sameAs in your site-wide JSON-LD.
Why it works. This is the single most underpriced GEO tactic on the market. LLM training corpora include Wikidata, which is structured entity data with cross-source sameAs links. When ChatGPT resolves the entity "Attrifast" it walks the sameAs graph to disambiguate it from "Attrify" or any other near-collision name. Brands with 4 or more matched sameAs surfaces are roughly 3x more likely to be cited than disambiguation-poor brands [9]. The mechanic is identical to how Wikipedia disambiguation pages work for human readers.
How to measure. Search Google for your exact brand name. Does the right-rail Knowledge Graph card appear? If yes, your entity is registered. If no, you have entity work to do. Run the same brand-name query in ChatGPT, Perplexity, and Claude — does the engine recognize your brand without confusion? The presence of an Organization Knowledge Graph card is the leading indicator that LLMs have a clean entity for you.
The minimum viable matched set, in priority order.
| Surface | Cost to set up | Citation lift | Setup difficulty |
|---|---|---|---|
| LinkedIn company page | 30 min | High | Trivial |
| X / Twitter handle | 10 min | Medium | Trivial |
| GitHub organization | 30 min | High (technical SaaS) | Easy |
| Crunchbase profile | 30 min | High | Easy |
| Wikidata entry | 1-2 hrs | Very high | Medium (requires source) |
| Wikipedia article | 4+ hrs writing | Very high | Hard (notability bar) |
| Product Hunt brand page | 30 min | Medium | Easy |
| G2 / Capterra listing | 30 min - 2 hrs | Medium | Easy |
| Indeed company page | 20 min | Low (but signals existence) | Trivial |
| Wikidata is the lever | — | — | — |
Wikidata is the single highest-leverage move. The bar for entity creation is much lower than Wikipedia — you need a non-trivial reference, not editorial-grade press. Spend the 90 minutes to register your brand and your founder Person entity in Wikidata, with sameAs links to every other surface above. The downstream lift is 12+ months of compounding citations.
Anti-pattern: brand-name drift. If your LinkedIn says "Attrifast Inc," your GitHub says "Attrifast Labs," your X handle is "@attrifast_io," and your Crunchbase is "Attrifast.com," you have just told the LLM you are four different entities. Pick one canonical brand name and mirror it everywhere. The 30-minute audit is the highest-ROI brand work most SaaS founders never do.
What to do. Build a three-layer measurement stack: bot crawl logging (are AI engines reading you?), citation appearance tracking (are AI engines surfacing you?), and AI-engine revenue attribution (are AI-cited users paying you?). Most GEO programs in 2026 ship only the first two layers and call the third "out of scope." That is the gap.
Why it works — and why most measurement does not. Per the four-layer evidence model from the does-GEO-actually-drive-revenue analysis, there are four distinct kinds of evidence a GEO program can produce: vendor self-report (Layer 1), citation tracking and impressions (Layer 2), AI-engine referral traffic (Layer 3), and Stripe-revenue join (Layer 4). The first two are easy and most programs produce them. The third requires server-side detection because GA4 has no rule for AI referrers [5]. The fourth requires a session-to-customer join that survives ITP, consent banners, and webhook delivery edge cases. The drop-off from Layer 2 to Layer 4 is roughly 80-90% — most teams have citation evidence and almost no teams have revenue evidence.
How to measure (in the actual literal sense). Three concrete pieces:
The measurement stack comparison.
| Tool category | Layer 1 (vendor self-report) | Layer 2 (citations) | Layer 3 (referrals) | Layer 4 (revenue) |
|---|---|---|---|---|
| Vendor dashboards (DFY content shops) | Yes | Limited | No | No |
| Profound, Otterly, AI Visibility tools | No | Yes | No | No |
| GA4 | No | No | No (Direct bucket) | No |
| Plausible, Fathom (referrer detection) | No | No | Partial (10-15% capture) | No |
| Server-side first-party + Stripe webhook | No | No | Yes (80%+ capture) | Yes |
| Attrifast | No | No | Yes | Yes |
I want to be careful here. Attrifast does not do Layer 1 or Layer 2 — we do not generate schema, we do not write llms.txt, we do not run entity audits. We do not monitor AI citations; that is the job of Profound or Otterly. What we do is the boring measurement layer underneath. When you publish a GEO-optimized post and someone clicks through from ChatGPT and pays via Stripe two weeks later, our first-party revenue attribution joins the channel to the revenue server-side. You see it as chatgpt in the channel column, not (direct). That is the value prop, and the reason the measurement layer is on this list.
Not every tactic works equally well on every engine. ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews each weight retrieval signals differently. The matrix below is my running model from six months of running the playbook across four properties. Lift is rated relative to the engine's own baseline citation rate, not across engines. "H" = high lift (often 2x+ citation rate), "M" = medium (measurable but smaller), "L" = low / inconsistent.
| # | Tactic | ChatGPT | Perplexity | Claude | Gemini | AI Overviews |
|---|---|---|---|---|---|---|
| 1 | First-token answers | H | H | H | M | H |
| 2 | llms.txt | M | M | M | L (not yet read) | L |
| 3 | Schema (FAQ, HowTo) | H | H | M | M | H |
| 4 | Comparison tables | M | H | H | M | M |
| 5 | Quoted expert sources | M | H | H | M | M |
| 6 | Original data | H | H | H | H | H |
| 7 | Specific numbers | H | H | M | M | H |
| 8 | Multi-format content | M | M | H | M | M |
| 9 | URL hygiene | L | M | L | M | M |
| 10 | Reddit/Quora seeding | M (indirect) | L | L | L | L |
| 11 | Brand entity (sameAs, Wikidata) | H | H | H | H | H |
| 12 | Measurement stack | (enables all others) | (enables all others) | (enables all others) | (enables all others) | (enables all others) |
A few patterns worth flagging. Entity disambiguation (#11) is the only tactic rated H across all five engines — the cheapest and most-skipped move on the list. Schema (#3) underperforms on Claude, which favors prose and tables over JSON-LD extraction. llms.txt (#2) is wasted on Gemini (it does not yet read the file) but pays off on ChatGPT, Perplexity, and Claude. Reddit seeding (#10) is mostly a ChatGPT-via-training-data play and produces little signal anywhere else in the short term.
For practical sequencing: ship tactics 1, 3, 6, 7, and 11 first. Add 2, 4, 5, and 8 in month two. Tactics 9 and 10 are the long tail. Tactic 12 should be plumbed in parallel from week one or you cannot measure any of the above.
Five recurring mistakes from auditing four GEO programs over the last six months. Listed in order of how often I see them.
Mistake 1: Optimizing for mentions instead of revenue. Teams celebrate "we got cited 14 times this week" without checking whether any of those citations produced a clickthrough, let alone a paying customer. Citations are an input. Revenue is the output. Build the measurement stack from Tactic 12 in parallel with the citation work, not after.
Mistake 2: Shipping schema that does not match the visible page. FAQPage schema with question text that does not match the H2 on the page gets flagged inconsistent by Google's Rich Results test and silently drops. Always validate. Mirror the schema to the visible block.
Mistake 3: Keyword-style H2s instead of question-style H2s. "Citation Strategies for AI Engines" reads like an SEO header. "How do I get cited by ChatGPT?" reads like a chatbot query. The second form is what the LLM retrieves against because it matches user phrasing. The first form is what you write when you have not unlearned 2018-era SEO habits.
Mistake 4: Skipping entity disambiguation. The single highest-leverage GEO move, and the most-skipped. Most founders have an X handle, a LinkedIn profile, and nothing else. Add GitHub, Crunchbase, and Wikidata. Two hours of work, 12+ months of compounding lift.
Mistake 5: Treating GEO as a replacement for SEO. The pitch deck says 50/50. The honest split for most bootstrapped SaaS and e-commerce sites is 75-80% SEO / 20-25% GEO, per the AEO-vs-SEO strategy piece. SEO still wins long-tail commercial intent, transactional queries, brand defense, local, and middle-funnel pages. GEO wins informational, definitional, and exploratory queries. Allocate accordingly.
The mistake-to-fix matrix.
| Mistake | Cost of leaving it broken | Fix effort | Time to fix signal |
|---|---|---|---|
| Optimizing for mentions, not revenue | Cannot prove ROI; spend continues blind | 1-2 weeks engineering | 30-90 days |
| Schema mismatched to visible page | Rich result silently drops | 5 min/page | 1-2 weeks |
| Keyword-style H2s | Lower citation rate, harder to measure | 10 min/page | 2-4 weeks |
| Skipping entity disambiguation | 3x lower citation rate over time | 2-3 hrs total | 4-12 weeks |
| Treating GEO as SEO replacement | Misallocated effort; opportunity cost | Strategy reset (1 hour) | Immediate |
Most GEO articles end here without prescribing the architecture, which is half the reason GEO conversations keep stalling on "how do I prove it worked?" The honest minimum viable stack is three pieces. I have shipped all three on attrifast.com and three client SaaS properties; the failure modes below are the ones I see every time.
Piece 1: Bot crawl logging and citation tracking (Layer 1-2). Free or near-free. Grep your access logs nightly for the AI bot user agents from Tactic 2. Use Profound, Otterly, or a manual weekly prompt sweep to track citation appearance. This gets you "AI engines are reading us" and "AI engines are surfacing us" — important inputs, not yet evidence of revenue.
Piece 2: Server-side first-party AI-referrer detection (Layer 3). A small server-side endpoint that inspects the incoming request, classifies the source by referer fingerprint + user-agent + landing-page pattern, and writes the source to a first-party identifier. Per the AI-engine traffic detection breakdown for ChatGPT, Perplexity, Claude, and Gemini, this captures roughly 80-85% of AI-engine sessions versus GA4's near-zero capture. The remaining 15-20% is unrecoverable noise (no-referer clicks, browser-stripped headers).
Piece 3: Session-to-Stripe-customer join (Layer 4). When Stripe fires checkout.session.completed, your webhook reads the customer's first-party attribution metadata and writes it idempotently to your reporting store. The idempotency key should be the Stripe event ID, per Stripe's webhook documentation [18]. Without this layer, the attribution chain breaks at the moment of payment.
Stack-build vs buy options.
| Layer | Build it yourself | Buy it |
|---|---|---|
| Layer 1-2: Crawl + citation | Bash + cron + manual prompts (free) | Profound ($150-500/mo), Otterly ($99/mo+) |
| Layer 3: Referrer detection | Plausible / Fathom + custom rules (partial), full custom (1-2 wks engineering) | Attrifast ($29/mo) |
| Layer 4: Stripe revenue join | Custom webhook handler (1-2 wks) + reporting (1 wk) | Attrifast ($29/mo) |
The build path totals 3-6 weeks of engineering for a competent backend engineer. The buy path runs roughly $30-650/mo depending on Layer 1-2 vendor choice. The hybrid path I recommend for most bootstrapped SaaS: free Layer 1-2 (manual prompts + bot log grep), buy Layer 3-4 from a tool that handles the Stripe join cleanly. The Stripe-native join is the part that is genuinely hard to ship correctly under time pressure, and the part nobody else does well.
For the broader measurement context, see the does-GEO-drive-revenue analysis (the four-layer evidence model), the AI Overviews source analysis (where Google's AI gets its content), and the where-does-Google-AI-get-its-information piece (the AI-Overviews-specific corpus discussion).
Putting the 12 tactics on our own site over the last six months. Honest reporting because the alternative is more "we 10x'd our traffic" claims, and we already have enough of those on the internet.
What we ship today on attrifast.com:
chatgpt, perplexity, claude, and gemini sources. Stripe webhook handler is idempotent. AI-engine revenue is a first-class channel in the dashboard.What we do not yet ship:
Results, in honest qualitative form because the sample is too small for clean numerics: AI-referred sessions grew from negligible (Dec 2025) to a measurable single-digit percent of total traffic (April-May 2026). Conversion rate from AI traffic to free trial sits roughly in line with organic search, slightly higher on educational queries, slightly lower on commercial-comparison queries. Schema and Direct Answer blocks were the two interventions where I felt the difference within 14 days. llms.txt and entity work paid off slowly. The measurement stack paid off the moment we shipped it because we stopped staring at a "Direct" bucket and shrugging.
The acknowledged failure I want to flag: I spent two weeks in February experimenting with prose-level rewrites aimed at "AI-friendly tone" — shorter sentences, more conversational openers, more "what is X" headers. The structural changes (schema, first-token answers, FAQ blocks) moved the needle. The prose-level rewrites did not show measurable signal above noise. Your engineering time is better spent on structure than tone.
What this article does not cover, and what readers should look at elsewhere.
GEO is the practice of structuring web content so generative AI engines — ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews — extract, cite, and surface it inside their answers. The original GEO framing comes from the Aggarwal et al. Princeton paper (2024), which showed that quote-injection, statistic-citation, and authority-mention rewrites lifted source visibility in AI answers by up to 40%. SEO targets ranked blue links on a SERP; GEO targets a citation inside a generated paragraph. The two playbooks overlap roughly 70-80% on mechanics — both reward indexable HTML, schema, internal links, topical authority. The 20-30% delta is mostly schema density, citation-friendly first-token answers, llms.txt, entity disambiguation, and source-URL hygiene.
Twelve tactics, ranked: (1) ship a structured first-token answer in the first 40-80 words of every page; (2) publish llms.txt at your site root; (3) add FAQPage, HowTo, and ItemList schema in priority order; (4) include at least one comparison table per major piece; (5) quote and attribute expert sources inline; (6) publish original benchmarks and data; (7) use specific numbers with footnotes instead of vague claims; (8) ship multi-format content (table + paragraph + bullets per concept); (9) keep source URLs clean and semantic; (10) seed answers on Reddit, Quora, and Stack Overflow where AI training data lives; (11) disambiguate your brand entity via Wikidata, Crunchbase, GitHub, LinkedIn; (12) measure citations and AI-engine revenue, not just mentions. None of them require a vendor.
It can drive revenue, but most GEO playbooks measure mentions and stop there. The honest workflow is GEO content → AI traffic detection → revenue attribution per engine. The third step is the gap. GA4 buckets ChatGPT, Perplexity, Claude, and Gemini referrals as Direct/(none) because none of them are in GA4's default channel grouping (per Google's own documentation). You can confirm AI is reading your content with bot logs and citation trackers, but proving a paying Stripe customer arrived from a Perplexity citation requires server-side first-party detection plus a session-to-customer join. Most teams running GEO programs in 2026 do not have all three pieces.
Prioritize by the share of measurable referral traffic they drive. Through Q1 2026, ChatGPT drives roughly 60-65% of AI-engine referrals, Perplexity 15-20%, Claude 10-12%, Gemini 5-7% (per Plausible and Fathom blog reporting of cookieless analytics data). Google AI Overviews itself appears on 13-15% of US English queries (per Search Engine Land's ongoing tracker) but does not yet send proportional click traffic. For a pure-citation strategy, Perplexity is the easiest win (highest CTR per citation, most aggressive linking). For traffic volume, ChatGPT wins. For brand-defense and longer-tail B2B, Claude is undervalued.
Partially. The llms.txt proposal from Jeremy Howard at llmstxt.org gives well-behaved AI crawlers a curated index of your most LLM-relevant pages. Adoption sits near 7% of public SaaS sites in Q1 2026, which is exactly why it is still differentiating. ChatGPT's GPTBot and OAI-SearchBot read it. Perplexity's PerplexityBot reads it. Anthropic's ClaudeBot reads it. Google's Gemini does not yet, as of this writing. The cost is 30 minutes to write. The lift is meaningful on sites where the most useful pages are not the most-linked pages. The downside is zero.
Three independent layers. First, bot crawl logging — grep your access logs for GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended. If they are crawling, you are in the index pool. Second, manual citation logging — once a week query ChatGPT, Perplexity, Claude, and Gemini for your top 20 target prompts and note whether your domain is cited. Captures presence, not traffic. Third, server-side first-party detection — a tiny script on your domain reads the Referer header (when present) and fingerprints AI-engine domains, writing the source to a first-party identifier. When Stripe fires checkout.session.completed, the webhook joins the source to the payment. The third layer is where most teams stall. It is the gap Attrifast was built to close.
Five recurring mistakes: (1) optimizing for mentions instead of revenue — measuring whether AI talks about you, not whether AI sends paying customers; (2) shipping schema without a matching visible block, which Google's Rich Results test flags and silently drops; (3) writing keyword-style H2s instead of question-shaped H2s that match how humans phrase chatbot queries; (4) ignoring entity disambiguation, which is the cheapest and most-skipped GEO win; (5) treating GEO as a replacement for SEO rather than an additive layer. For most bootstrapped SaaS and e-commerce sites the honest split is 75-80% SEO / 20-25% GEO, not the 50/50 the consultant decks keep selling.
Three timelines. Bot crawling begins within 1-3 weeks of new pages going live, assuming the URLs are linked from a crawled index page or listed in llms.txt or sitemap.xml. Citation appearances begin 2-6 weeks after crawl, depending on engine and topical competition. Stripe-attributable revenue from AI-engine sessions tends to lag 30-90 days behind first citation for SaaS, per the same content-to-MRR lag pattern that has shaped SEO economics for a decade. The discipline that holds up in practice is a 90-day evaluation window: ship the tactics, instrument the measurement stack in parallel, and audit honestly at day 90 before scaling spend.
No. Schema is necessary but not sufficient. The Princeton GEO paper and downstream Ahrefs and Semrush studies all found that schema correlates strongly with citation rate but does not cause it on its own. The full set — schema plus first-token answer plus entity disambiguation plus original 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.
Less than the 2023 discourse implied. The reality through Q1 2026 is that most major LLMs train on Common Crawl, licensed datasets (Reddit, Stack Overflow, Wikipedia), and their own crawls. Blocking GPTBot in robots.txt opts you out of ChatGPT future-training citations but does not remove you from data already collected, and does not block the real-time ChatGPT-User and OAI-SearchBot agents (which read pages at query time). For most SaaS and e-commerce sites, the right default is to allow all named AI crawlers. The exceptions are paywalled content, proprietary research you are monetizing directly, and content where you have a specific reason to restrict redistribution.
Citation is a hyperlink in the AI's answer that the user can click — measurable referral traffic. Mention is a brand name appearing in the answer text without a link — brand exposure without traffic. Both are valuable. Citation drives measurable revenue (when joined to Stripe). Mention drives branded search lift and word-of-mouth, which are real but harder to measure. The 12 tactics in this article are biased toward citation because the measurement story is cleaner; the mention upside is a bonus.
Both. New pages should ship with all 12 tactics applied. For existing content, the highest-ROI retrofits in order: add first-token answers to your top 20 trafficked posts, add schema markup to all evergreen content, audit URLs for hygiene problems, and add Organization sameAs site-wide. Avoid wholesale rewrites of well-ranking pages — the marginal lift on a page that already ranks is small, and you risk losing the existing SEO equity.
E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is Google's quality framework, formalized in their Search Quality Rater Guidelines. The Princeton GEO paper's high-lift tactics (cite sources, quotation, authority) 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, GEO optimization and E-E-A-T optimization converge. A page that ranks well in E-E-A-T tends to be cited well in AI answers, and vice versa. Build for both; the work overlaps roughly 85%.
Tactic 1: ship a structured first-token answer in the first 40-80 words of your top 5 trafficked pages. 30 minutes per page. Highest-lift single change on the list. Pair with FAQPage schema (Tactic 3) and you have done the two interventions that move the needle most within 14 days. Everything else compounds from there.
For related deep-dives, see How to Submit Content to AI Search Engines for Faster Discovery in 2026 and Is AEO Replacing SEO? The Honest 2026 Answer From Someone Running Both.
Discover which marketing channels bring customers so you can grow your business, fast.
Start free trial →5-day free trial · $29/mo · cancel anytime