How to Write Content That Gets Cited by ChatGPT and Google AI Overviews: A GEO On-Page Guide (2026)

I made a robots.txt mistake on this exact site a few weeks ago, and it's a decent illustration of how easy it is to get GEO wrong without realizing it. I'd deliberately blocked GPTBot and ClaudeBot because I didn't want this content training anyone's model for free. Fine, reasonable call. What I hadn't checked was whether I'd also accidentally blocked the other bots, the ones OpenAI and Anthropic use specifically to fetch pages for live citations. I hadn't. But I only found that out by going line by line through the file, not by assuming "block the AI crawler" meant one thing.

That's really the whole problem with most GEO advice floating around right now. It gets treated as one lever (write "good" content, done) when it's actually three separate things that all have to work together: whether the crawler can reach your page at all, whether the page is structured so a model can lift a clean answer from it, and whether the model has any reason to trust what it finds once it's there. Mess up any one of those and the other two don't matter much. This is a walkthrough of all three, using the actual fixes I made on this site rather than the usual generic checklist.


Illustration of a content page structured with headings and FAQ schema being read and cited by AI search engines like ChatGPT and Google AI Overviews

GEO, SEO, and AEO Aren't Three Different Things

Generative Engine Optimization, or GEO, is the practice of structuring your content and your technical setup so that an AI model is more likely to cite you when it answers a question, whether that's ChatGPT, Google's AI Overviews, Perplexity, or Claude. You'll also run into the term Answer Engine Optimization, or AEO, used in more or less the same breath. If you want the pedantic distinction: AEO leans a bit more toward direct-answer formats like featured snippets and voice search, GEO is the broader umbrella for AI-citation behavior generally. In practice, for a working blog, you'll be doing both at once with the same set of changes.

Traditional SEOGEO / AEO
Optimizes for a ranked position on a results pageOptimizes for being cited inside a generated answer, where there's no fixed position at all
Success looks like ranking #1–10Success looks like being one of the handful of sources a model actually quotes
Keyword density and backlinks do a lot of the workClean, self-contained answers and machine-readable structure do a lot of the work
A dense, hard-to-skim page can still rank fineA dense, hard-to-skim page rarely gets lifted for a citation

Under the hood, they share nearly all the same fundamentals: fast pages, clean markup, actual expertise on the page. GEO just adds a second reader you're writing for: a model that's going to summarize you on someone else's behalf, whether you like it or not.

What Actually Gets a Page Lifted for a Citation

I went through what OpenAI, Google, and Anthropic have each published on this, plus a stack of the pages that already rank well for AI-citation-heavy queries, and the traits that keep showing up aren't complicated on their own. Doing all of them consistently, across an entire site, is where the actual work is.

Write each section so it could stand alone

When a model pulls a citation, it's usually grabbing one paragraph or one short section, not your whole page. If the real answer to "how do I calculate X" is scattered across three paragraphs with the number itself buried somewhere in the middle, you either get skipped or misquoted. A useful test: could someone read only this one section and walk away with the complete answer? If not, it needs tightening.

Phrase headings the way people actually ask the question

"How is AI-assisted revenue recognition different from tracking deferred revenue in QuickBooks?" beats "Comparison with QuickBooks" as a heading, and it's not close. Then answer it in the first sentence under that heading, before you add the caveats and nuance. This one change, question-shaped heading, direct answer first, is probably the single highest-leverage thing in this entire article, because it's exactly the shape a model needs to extract an answer cleanly.

Put your actual experience in the text, not just the bio

There's a real, measurable difference in how models treat "payroll can get complicated for small firms" versus "having reconciled payroll-linked withholding entries during tax audit assignments, I've seen where this actually breaks." The second one is specific in a way that's hard for a summarization model to paraphrase away without losing the substance, which is exactly why it tends to get quoted rather than rewritten. If you've done the work firsthand, say so in the sentence, not just in an author bio nobody reads.

Match the format to the question

Comparison tables get lifted for "X vs Y" queries. Numbered steps get lifted for "how do I" queries. Genuine FAQ blocks get lifted for direct questions. Defaulting to prose for everything is the most common way people leave this on the table.

FAQ Schema Is Doing More Work Than People Give It Credit For

If you only make one technical change after reading this, make it this one. FAQ schema (technically the FAQPage structured data type) tells a crawler, in plain machine-readable terms, "here is a question, and here is its complete answer," which is more or less exactly the shape a model wants when it's deciding what to cite. It's also one of the few structured data types Google explicitly builds rich results around, so it's doing double duty.

Here's what that actually looks like, pulled from a real FAQ on one of the accounting posts on this site:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do small business clients actually need to follow ASC 606, or is that only for public companies?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "ASC 606 is technically required for GAAP-compliant financial statements regardless of company size, though many small private companies use cash or modified-cash basis accounting where it doesn't strictly apply. It matters in practice the moment a client needs GAAP-compliant financials, for a bank loan, an SBA application, or a sale of the business."
      }
    },
    {
      "@type": "Question",
      "name": "How is AI-assisted revenue recognition different from tracking deferred revenue in QuickBooks?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "QuickBooks can hold a deferred revenue balance once you've told it what it is, but it doesn't determine that balance for you from contract language. The AI agent's role sits upstream of the bookkeeping software: reading the actual contract and proposing how much should move from deferred revenue to recognized revenue each period."
      }
    }
  ]
}
</script>

In Blogger specifically: open the HTML view in the post editor and paste the script block anywhere in the body (right after your visible FAQ section works well), since it keeps the schema text and the on-page text easy to keep in sync. No template edit needed; Blogger doesn't strip application/ld+json tags. Run it through Google's Rich Results Test after publishing to confirm it actually parses, since a typo in the JSON will fail silently otherwise.

A few ways this quietly breaks:

  • The schema text doesn't match the visible page text word for word: both Google and AI crawlers can flag or just ignore a mismatch like this
  • You mark up a question that isn't genuinely answered as its own standalone thing anywhere else on the page
  • You bolt FAQ schema onto a page that isn't structured as an FAQ, purely chasing the rich snippet

None of This Matters If the Crawler Can't Get In

This is the part almost nobody covers properly, mostly because "AI crawler" gets treated as one bot per company, and it just isn't anymore.

Training bots and citation bots are different bots, with different names

OpenAI, Anthropic, and Google each run at least two separate crawlers: one that collects training data, one that fetches pages for real-time search and citation, and robots.txt controls them independently:

CompanyTraining crawler (block this if you don't want to feed model training)Search / citation crawler (leave this allowed if you want to be cited)
OpenAIGPTBotOAI-SearchBot, ChatGPT-User
AnthropicClaudeBotClaude-SearchBot, Claude-User
GoogleGoogle-ExtendedGooglebot (unchanged, also what powers AI Overviews)
AppleApplebot-ExtendedApplebot

Blocking the training bot does not block the search bot. If the goal is "keep this out of model training, stay citable in live answers," the pattern looks like this:

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Google-Extended
Disallow: /

User-agent: Googlebot
Allow: /

One extra note if you're on Cloudflare: their managed "AI Crawl Control" feature writes its own content-signal block into your robots.txt automatically, on top of whatever rules you'd otherwise set. Check the actual dashboard under Domain → AI Crawl Control → Overview before assuming the file alone tells the full story. It shows real allowed and blocked request counts per bot, which is honestly a faster way to confirm your setup is doing what you think it's doing than reading the raw file.

llms.txt, even without a formal standard yet

There's no ratified spec for llms.txt as of this writing, but publishing one at your domain root (a plain-text summary of your key pages, written for a model rather than a person) costs almost nothing and gives crawlers that do check for it a faster route into your content than parsing full HTML.

A five-minute self-check worth doing today

  1. Open yourdomain.com/robots.txt directly in a browser and actually read every line: don't assume, check
  2. Confirm any blanket Disallow: / rules only apply to bots you genuinely mean to block
  3. On Cloudflare, cross-check the AI Crawl Control dashboard against the file itself
  4. Confirm your sitemap is current and every URL in it has at least one internal link pointing to it. A page that only sitemap.xml knows about tends to get discovered late, if ever

A Working AEO Checklist for 2026

  • Lead every section with the answer itself, save the caveats and context for after it
  • Use real, specific numbers instead of vague claims: "62% of retail investors already use AI for research" cites far better than "many investors use AI"
  • Keep one topic per URL. Splitting a broad topic across several thin pages dilutes the single-answer clarity a model is looking for; one well-structured page usually beats three shallow ones
  • Build comparisons as actual HTML tables, not prose describing a comparison. Tables are dramatically easier for a model to parse and quote accurately
  • Go back and refresh dates and numbers when they go stale; freshness seems to matter more for the query types where AI Overviews and citations show up most
  • Interlink your own related posts deliberately. A tightly connected cluster on one topic reads as more authoritative, to search engines and models both, than the same posts sitting isolated

Do You Actually Need a Bigger Budget or a Dedicated Team?

No, and it's worth saying plainly, because a lot of what's written about GEO comes from tool vendors who have an obvious reason to imply otherwise. For a solo blogger or a small firm's marketing effort, this is almost entirely a structural and technical exercise: heading structure, FAQ schema, a correctly configured robots.txt, deliberate internal linking, none of which needs a paid platform to execute. The manual tracking method in this site's AI visibility tools guide is genuinely enough until you're managing this across dozens of client sites, or competing in a category where well-funded competitors are already running dedicated monitoring. Spend the budget fixing the structural gaps in what you've already published first. A monitoring subscription is a later purchase, not a starting one.

How Do You Actually Know If Any of This Is Working?

Structural changes take a while to show up, and there isn't a single dashboard that confirms a citation the clean way a rank tracker confirms a position. Two things worth doing in the meantime:

  • Run the same 10–15 prompts weekly across ChatGPT, Perplexity, and Gemini, and track whether the pages you've restructured start showing up where they didn't before. The full method is in the AI visibility tools guide.
  • Watch the AI Overviews surface in Search Console. Newer reporting views break out AI Overviews impressions and clicks separately from standard search. Treat that trend line alongside your manual prompt log, not instead of it.

Either way, treat this as a trend line, not an exact measurement. The same prompt can return a different answer twice in a row, so one check tells you a lot less than a consistent weekly one does.

Frequently Asked Questions

What is GEO (Generative Engine Optimization)?

GEO is the practice of structuring content and technical signals so an AI model is more likely to cite you when generating an answer, across platforms like ChatGPT, Google AI Overviews, Perplexity, and Claude.

What's the difference between GEO, SEO, and AEO?

SEO optimizes for a ranked position on a results page. GEO and AEO both optimize for being cited or quoted inside a generated answer instead, where there's no fixed position, and the two terms are used almost interchangeably in practice.

Do I need FAQ schema for AI citations to work?

It's not strictly required, but it's one of the highest-leverage single changes available, since it explicitly marks the boundaries of a question and its complete answer, exactly what a model needs to lift a clean citation.

Why does citation authority matter for generative engine optimization?

Models weight specific, first-hand content more heavily than generic summary-style prose, because specific claims are harder for a summarization model to paraphrase away without losing accuracy, which makes them more likely to get quoted with attribution rather than rewritten.

Do I need extra budget or a dedicated team for AEO?

No. For most small sites, this is a structural and technical exercise: headings, schema, robots.txt, internal linking, that doesn't require a paid platform. A monitoring subscription is a reasonable later purchase, not a starting requirement.

How can I track whether my content is getting cited by ChatGPT?

Run a consistent set of prompts manually across ChatGPT, Perplexity, and Gemini on a weekly schedule, and cross-check against the AI Overviews surface in Search Console. The full method is in the AI visibility tools guide.

What's the fastest way to check if AI crawlers can even reach my site?

Open yourdomain.com/robots.txt directly and read every Disallow rule line by line, checking it against the specific bot names for each company, since training bots and search bots are named differently and controlled independently. On Cloudflare, cross-check against the AI Crawl Control dashboard's real traffic numbers too.

This reflects on-page and technical practices as of mid-2026. AI search platforms change crawler behavior and ranking signals often enough that it's worth revisiting your robots.txt and schema setup periodically, rather than treating this as a one-time fix.


About the author: Muhammad Faisal Gurmani is a CA Finalist completing his articleship at Zahid Jameel & Co., Chartered Accountants, and the founder of Clarity With AI, where he writes practitioner guides on AI tools and automation. He manages the technical AI-search infrastructure, including llms.txt automation, robots.txt configuration, and IndexNow submission, for claritywithai.org directly.