Classic SEO optimises for a position in a list of links. Generative engines do not publish a list — they publish an answer, assembled from sources they decided they could repeat safely. Getting into that answer is a different problem, and it rewards different work.
The terminology has not settled. GEO (generative engine optimization) usually means being cited inside a generated answer. AEO (answer engine optimization) means being the direct answer to a question — a featured snippet, an AI Overview, a voice result. LLMO gets used for both. The distinctions matter less than they sound, because the same underlying work serves all three: content a machine can parse without guessing, claims it can attribute, and a site it can actually reach.
What a generative engine is deciding
When a model composes an answer it is repeatedly making one judgement: can I say this, and attribute it, without being wrong? Everything that raises its confidence in your page raises your chance of being quoted. Everything ambiguous is a reason to reach for a different source instead.
That is why the tactics below look less like keyword work and more like editorial hygiene. You are not persuading a ranking function. You are removing the reasons a careful reader would decline to cite you.
The parts that actually move the needle
Answer the question in the first paragraph
Extraction favours self-contained passages. A paragraph that only makes sense after three preceding ones is a paragraph a model cannot lift. Put the claim first, then the reasoning.
Serve real HTML
Most AI crawlers do not execute JavaScript. Content that appears only after hydration is, to them, an empty page. Server-render anything you want quoted.
Let the retrieval crawlers in
OAI-SearchBot, Claude-SearchBot and
PerplexityBot fetch pages so a model can cite them. Blocking those
removes you from AI answers, whatever you decide about training crawlers.
Publish an llms.txt
A Markdown map of your important pages at /llms.txt. Not a ratified
standard and no engine promises to read it — but it is one file, and agents
reading documentation have been observed following it.
Date and source your claims
A figure with no date and no source is a figure a model has to hedge around. One that says when it was measured and by whom can be repeated verbatim, with a citation, which is exactly the outcome you want.
Be quotable off-site too
Most brand mentions inside AI answers come from third-party pages, not your own. Documentation, package registries, standards bodies and forums carry weight your own marketing copy does not.
The part almost everyone skips
Every checklist above is about making a claim easier to extract. Almost none of them make it easier to verify — and verification is the step where a model decides whether to use your page or work around it.
Structured data helps with the first problem. Schema.org tells a consumer that this string is a price and that one is a rating. What it does not carry is where the number came from, how confident you are in it, when it stops being true, or whether a person measured it and a model inferred it. Those are the questions a system has to answer before it repeats a claim in its own voice.
That gap is what AODM was built to close. The same fact, with the metadata a consumer needs in order to rely on it:
<aodm:fact id="temp-rise" about="engine" valid-from="2026-01-15">
Temperature rise under sustained load.
<aodm:value number="1.2" unit="Cel" tolerance="0.1"/>
<aodm:source uri="https://example.com/report-24" retrieved="2026-01-15"/>
<aodm:confidence value="0.9"/>
</aodm:fact>
A system reading that can attribute the number, state its precision, check whether it has expired, and decide how much weight to give it. A system reading the same sentence as prose has to infer all four, and inference is where citations turn into misquotations.
To be clear about the boundary: AODM does not produce rich results in Google and is not a ranking signal anywhere. Use Schema.org for that. AODM is for the layer underneath — making the claims on your page checkable rather than merely readable.
A practical order to do this in
- Check what the crawlers see. Fetch your own page with JavaScript disabled. If the content is missing, nothing else on this list matters yet.
- Fix robots.txt. Decide separately about training crawlers and retrieval crawlers. Most sites want to allow the second group even if they block the first.
- Restructure your top ten pages so each section leads with its answer.
- Add Schema.org where it applies — Article, FAQPage, Product, Organization — and make sure every FAQ answer in the markup also appears as visible text on the page.
- Publish llms.txt. Ten minutes, and it costs nothing if it turns out to be ignored.
- Add provenance to the claims that matter — the numbers, the dates, the things a reader would want a source for. This is where AODM starts paying.
- Measure differently. AI answers often produce no click at all, so referral traffic understates the effect. Watch brand searches and direct visits, and periodically ask the engines themselves what they say about you.
Questions people actually ask
What is generative engine optimization (GEO)?
GEO is the practice of structuring content and site signals so that generative AI systems — ChatGPT, Claude, Perplexity, Google AI Overviews — surface and cite your material in their answers. It differs from classic SEO in what it optimises for: not a click on a ranked link, but an accurate quotation inside someone else's answer.
What is the difference between GEO, AEO and SEO?
SEO optimises for a position in a list of links. AEO (answer engine optimization) optimises for being the direct answer to a question, in a featured snippet, an AI Overview or a voice result. GEO optimises for being cited inside a generated answer. They overlap heavily, and the same work — clear structure, verifiable claims, crawlable HTML — serves all three.
What is llms.txt and do I need one?
llms.txt is a plain Markdown file at your site root that gives AI systems a curated map of your most important content, in the same spirit as robots.txt and sitemap.xml. It is not yet an official standard and no major engine guarantees it is read, but it costs almost nothing, and documentation-heavy sites report that coding agents follow it. This site serves one at /llms.txt.
Should I block AI crawlers in robots.txt?
That depends on which crawler. Training crawlers such as GPTBot, ClaudeBot and Google-Extended feed model training. Retrieval crawlers such as OAI-SearchBot, Claude-SearchBot and PerplexityBot fetch pages so an AI can cite them right now. Blocking the retrieval crawlers removes you from AI answers entirely, so if visibility is the goal, allow those even if you block training.
Does structured data help with AI search?
Yes, though not as a ranking lever. Structured data makes your claims unambiguous, which raises the chance a model extracts them correctly and lowers the chance it paraphrases you into something you did not say. Provenance-carrying markup such as AODM goes further by letting a system check a claim's source, confidence and validity before repeating it.