GEO: Get AI Engines to Cite You
More and more users skip the search box and drop the question straight into ChatGPT, Kimi, or Doubao. The answer is assembled by AI — whether your site shows up inside it is the new survival line. The craft has a name: GEO (Generative Engine Optimization). This lesson covers its four levers, each with a toy you can play with on the spot.
SEO and GEO fight for different things. A search engine hands the user ten blue links — you fight for rank. An AI engine hands over a finished answer — you fight for one citation, one byline inside that answer. The user may never click through to your site, but "according to [your site]" is the new kind of exposure.
| Dimension | SEO (search engines) | GEO (AI engines) |
|---|---|---|
| What the user sees | A row of links to pick from | One answer — AI already picked for them |
| What you fight for | Rank and clicks | Being cited, recommended, treated as the source |
| How content is consumed | The user comes in and reads the page | AI lifts the one passage that stands on its own |
| Infrastructure | sitemap, robots, structured data | All of that, plus llms.txt and cite-ready paragraph writing |
The good news: they don't conflict. Last lesson's minimum viable checklist is GEO's foundation — AI engines also start with crawl and index. This lesson is about the four levers that sit on top of that, unique to AI.
Before an AI engine answers, it retrieves a pile of candidate passages and picks the ones it can use as-is. You be the AI this time: the user asks "how should a solo developer price a product?" Three passages come back. Tap each one to see its fate and why.
The cheapest way to land a self-contained paragraph: right under each page's H1, answer the page's question in two or three sentences. What it is, why it matters, one line to remember. The rest of the body can unpack the details. The user gets value at a glance; AI gets a passage it can cite. Both win.
The page below is about "API rate limiting," and the opening is painfully typical. Tap the two buttons to see how two rewrites rescue it.
This "answer first" writing pairs with the description from lesson 2: the description is for the search-results page; the one-sentence answer block is for AI and for readers in a hurry. The "In one sentence" line under every course-page H1 on this site is that lever in production — injected in bulk by the build script.
If the page itself is a question and an answer (help docs, FAQs, this site's Beginner FAQ series), there is an almost free lever: FAQPage structured data. Drop a JSON-LD block on the page that declares, in a machine-readable format, "this is the question, this is the answer." The engine doesn't have to guess — it just takes it.
Don't let the words "structured data" scare you. It is just JSON in a fixed shape. Fill in your own Q&A below and generate a snippet you can paste straight into the page.
After you generate it, check it with Google's rich-results tester (search "rich results test" — first hit). After this site added FAQPage to 37 Beginner FAQ pages2026-08-10 change, those native questions like "What is a token" and "Why is AI customer service so dumb" became the easiest pages on the site for AI to cite.
robots.txt tells crawlers where they may and may not go. llms.txt does the opposite — it is a site guide you actively hand to AI: a Markdown file at the root that lists what you have, what each page covers, and where it lives. There is also a heavier companion, llms-full.txt, which concatenates the whole site's body into one big file so AI can read your site in a single pass.
To be honest: this is a 2024 community convention, not an official standard, and support across AI engines is uneven and still moving. But the cost is tiny (one script generates it), and the bet is a simple one: the cheaper it is for AI to understand you, the more likely you get cited. This site's llms.txt covers the titles and descriptions of all 317 lessons2026-08-10 snapshot; llms-full.txt stitches free-page full text with preview snippets from gated pages, about one to two megabytes.
llms.txt looks like this — you'll get it at a glance:
Same lesson, easy-to-miss lever: freshness signals. Put datePublished and dateModified in the JSON-LD. AI engines prefer content whose recency they can judge — especially questions like "is … still true in 2026?" Pull the dates from git history; one script does it. Don't type them by hand.
The most honest signal that GEO is landing: whether AI crawlers show up, and how often. They all leave a name in the request logs (User-Agent). Tap the six cards below and meet the usual visitors.
One last reminder, and a lot of people miss it: ChatGPT's web search leans heavily on Bing's index (public notes and webmaster experiments all point this way). So if Bing indexes little of you, ChatGPT can't find you. Last lesson had you submit Bing Webmaster — that was the setup. Next lesson uses this site's real numbers to show how wide the gap is.
Whether to block training crawlers (GPTBot, ClaudeBot) is a stance question, not a technical one: block them and your content stays out of future models' knowledge; don't, and you are feeding them for free. This site's choice is to let them all through, because the point of the free lessons is to be learned by more people (and more AIs). Weigh it for your own site — one line in robots.txt is the statement.
| Lever | How long, once | How to check |
|---|---|---|
| One-sentence answer block | Two or three sentences per page; backfilling the archive takes a few days | Lift a random paragraph and ask: does it stand alone? |
| FAQPage structured data | A script job, half a day | Google rich-results test passes |
| llms.txt / llms-full.txt | A script job, half a day | Reachable at the root, updates with the build |
| Date signals | A script job, two hours | Spot-check that JSON-LD dates match git history |
GEO fights for citations: users read the answer, not the links. You want to be the passage AI is willing to lift. Keep laying SEO's foundation; stack the four levers on top.
Self-contained paragraphs are the first lever: two or three sentences under the H1 that answer the question and still hold when lifted. Warmup prose and "check my pinned post" prose never get cited.
FAQPage on Q&A pages, llms.txt at the root, dates in JSON-LD: all three are one-shot script jobs. Once they're done, the cost for AI to understand you drops hard.
Crawler logs are GEO's dashboard: archive GPTBot, PerplexityBot and the other UAs and watch the curve. Also remember the hidden line: Bing's index count directly affects whether ChatGPT can find you.
Being retold by AI is not all bad: general knowledge buys a byline; products and first-hand experience stay as the reason to visit. Design content in layers — don't block crawlers with a blunt knife.
Sources: Original to Xiaoshan Academy's "Get Found" series. llms.txt is a 2024 community proposal (llmstxt.org); treat each engine's official docs as the source of truth for support. Site numbers in this lesson carry a snapshot date; the full change log is in lesson 4.