Get Found · 3 / 6

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.

Citation auctionOne-sentence answerFAQ generatorCrawler roster
Search gives links. AI gives answers

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.

DimensionSEO (search engines)GEO (AI engines)
What the user seesA row of links to pick fromOne answer — AI already picked for them
What you fight forRank and clicksBeing cited, recommended, treated as the source
How content is consumedThe user comes in and reads the pageAI lifts the one passage that stands on its own
Infrastructuresitemap, robots, structured dataAll 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.

Try it · Stand where the AI stands, pick a citation

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.

Citation auction, live Viewed 0 / 3
User question: how should a solo developer price a product?
Tap each candidate to see what the AI keeps or drops
Candidate 1 · A product blogDropped
Pricing is both an art and a science. As we mentioned in the previous post, many factors shape your decision. Before we dive in, let's recap what a value proposition is…
After this paragraph, the question hasn't been answered at all. It is warming up, citing its own previous post, and promising to "dive in." AI can't lift a single sentence that stands on its own, so it walks away. A lot of articles are written entirely in this "coming right up" voice.
Candidate 2 · A solo developer's postmortemCited
The usual solo-developer pricing is three tiers: a free tier that pulls people in with the core features, a standard tier at 60–80% of comparable products (in 2026, personal productivity tools typically sit at 30–60 yuan / month), and a pro tier with team features. I raised my tool from 19 to 39 yuan / month; conversion fell from 2.1% to 1.7%, but revenue went up 60%.
This one gets cited because it is self-contained: lift it out and it is still a complete answer — a concrete method, a price range, first-hand numbers. That is how "according to one indie developer's live test" gets written.
Candidate 3 · A highly upvoted forum replyDropped
Great question, and the folks above all have a point. I'll just add: there really is no standard answer — it depends on your users. I've been burned before; long story, lots of tears. If you're curious, check the pinned post on my profile.
Conversational tone is fine. The problem is zero information density: no numbers, no method, and the real content is parked behind "check my pinned post." AI will not follow that jump for you. Anything outside the paragraph might as well not exist.
All three viewed — the pattern is clear: AI picks the passage it can lift on its own, and that still holds after the lift. That is the entire meaning of GEO's first lever, "self-contained paragraphs." Practice it next.
Lever 1 · Put a "one-sentence answer" under every H1

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.

Opening ER: from warmup prose to answer prose Two-step rewrite
This page's opening (first paragraph under the H1)
In today's fast-moving internet era, APIs have become a vital way for systems to talk to each other. As businesses keep scaling, how to keep services stable has become a topic well worth exploring in depth. This article will walk you through every aspect of rate limiting, step by step.
Citability Very low

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.

Lever 2 · Add FAQ structured data on Q&A pages

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.

FAQPage generator Fill it in
Edit the two boxes — the code updates live. Paste it in the page head or at the end of the body
Copied — paste it into your 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.

One rule, parked here while we're at it: structured data must match what is visible on the page. Don't stuff Q&A into JSON-LD that isn't on the page — that is two different versions for the engine and the user. Next lesson explains why you must not cross that line.
Lever 3 · llms.txt: a sitemap you hand to AI engines

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:

# Xiaoshan Academy > Free hands-on AI courses, from zero to Agent development. ## Courses - [What is a token](https://xueai.app/slides/zero-q-token.html): Explains tokens and the context window with a taxi-meter metaphor - [Why Agents get stuck](https://xueai.app/slides/agent-3.html): Loop-cause debugging and three ways to cut losses - … (317 lessons in total; each line is a title plus one-sentence description)

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.

Lever 4 · Know the AI crawlers that come for you

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.

AI crawler roster Met 0 / 6
Tap a card to see who it is and what it wants
GPTBot
OpenAI
Collects training corpus for models. If it visits often, your content is entering future models' knowledge.
OAI-SearchBot
OpenAI
Serves ChatGPT search, separate from the training crawler. If you want to be found in ChatGPT, don't block it.
ClaudeBot
Anthropic
Collects training corpus for Claude. Crawl cadence is usually restrained.
PerplexityBot
Perplexity
Serves the answer engine's live retrieval. Every Perplexity answer carries citations — the easiest place to watch GEO land.
Google-Extended
Google
A switch that controls whether your content may be used to train Gemini. Blocking it does not affect regular search indexing.
Bytespider
ByteDance
The crawler behind Doubao. A regular on Chinese sites, and the crawl volume is often startling.
You've met all six — go take attendance in the logs. Many analytics tools drop all bot traffic by default, which is throwing away GEO's only dashboard. Archive these UAs on their own and watch daily crawl volume. A rising curve is direct evidence that your content is entering AI indexes. This site's "AI crawls" admin page is exactly that — we take it apart next lesson.

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.

Four levers, one cheat sheet
LeverHow long, onceHow to check
One-sentence answer blockTwo or three sentences per page; backfilling the archive takes a few daysLift a random paragraph and ask: does it stand alone?
FAQPage structured dataA script job, half a dayGoogle rich-results test passes
llms.txt / llms-full.txtA script job, half a dayReachable at the root, updates with the build
Date signalsA script job, two hoursSpot-check that JSON-LD dates match git history
Quiz · AI retold your tutorial. Cry or laugh?
AI retold your tutorial in full. The user never clicked through. What does that mean for you? Single choice
This is the most common anxiety of the GEO era. Worth thinking through
APure loss: AI stole the traffic. Block every AI crawler in robots
BDepends on the content: tutorials retold buy you a byline; products and first-hand experience are what should pull people onto the site
CWho cares — traffic was never worth much anyway
DGo complain that the AI vendor infringed
Key Takeaways

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.