# Answer Engine Optimization

> How to get a page read, understood and cited by ChatGPT, Perplexity, Claude and AI Overviews — the whole AEO and GEO cluster in reading order.

**Canonical:** https://alexturik.com/aeo

Eleven articles on one question: what has to be true of a page before an AI answer engine will quote it. This is the reading order, and what each part is for.

## Every article in the cluster

### Skip the AI Visibility Checker: Audit Your Site by Hand

- **URL:** https://alexturik.com/blog/how-to-audit-ai-visibility
- **Markdown:** https://alexturik.com/blog/how-to-audit-ai-visibility.md
- **Published:** 2026-08-09

Run the same eight checks a paid AI visibility checker runs, for free: llms.txt, robots.txt, JSON-LD, and real 2026 baselines to compare your site against.

### GEO vs SEO vs AEO — What Actually Changes in Your Workflow

- **URL:** https://alexturik.com/blog/geo-vs-seo-vs-aeo
- **Markdown:** https://alexturik.com/blog/geo-vs-seo-vs-aeo.md
- **Published:** 2026-08-09

I scanned 93 pages ranking for AEO and GEO queries to see whether the people explaining the difference follow their own advice. Only 25.8% did.

### Embeddings: How AI Search Turns Your Page Into 384 Numbers

- **URL:** https://alexturik.com/blog/embeddings-how-ai-search-turns-your-page-into-numbers
- **Markdown:** https://alexturik.com/blog/embeddings-how-ai-search-turns-your-page-into-numbers.md
- **Published:** 2026-07-27 · **Updated:** 2026-08-09

AI search doesn't match keywords - it compares vectors. Turn your text into an embedding, run cosine similarity live, and watch stuffing win the wrong race.

### How I Added llms.txt to My Next.js Blog in 15 Minutes

- **URL:** https://alexturik.com/blog/how-i-added-llms-txt-to-my-nextjs-blog-in-15-minutes
- **Markdown:** https://alexturik.com/blog/how-i-added-llms-txt-to-my-nextjs-blog-in-15-minutes.md
- **Published:** 2026-05-09 · **Updated:** 2026-08-09

How llms.txt works, why 52.7% of pages ranking for AEO and GEO queries now serve one, and two ways to ship it on a Next.js blog in 15 minutes.

### The 3-Word Tag That Hides Your Best Pages from AI

- **URL:** https://alexturik.com/blog/the-3-word-tag-that-hides-your-best-pages-from-ai
- **Markdown:** https://alexturik.com/blog/the-3-word-tag-that-hides-your-best-pages-from-ai.md
- **Published:** 2026-05-08 · **Updated:** 2026-08-09

Three words in `<head>` can hide your best article from ChatGPT, Claude, and Perplexity — even if Google still shows it. The silent AEO killer.

### Recency and Authority — Two Fields AI Uses to Trust You

- **URL:** https://alexturik.com/blog/recency-and-authority-two-schema-fields-that-decide-ai-trust
- **Markdown:** https://alexturik.com/blog/recency-and-authority-two-schema-fields-that-decide-ai-trust.md
- **Published:** 2026-05-07 · **Updated:** 2026-08-09

Before quoting your article, AI runs two checks — is it fresh, and who wrote it. Both ride on machine-readable signals. Here's the canonical setup.

### How to Help AI Understand Your Content with JSON-LD

- **URL:** https://alexturik.com/blog/help-ai-understand-your-content-with-json-ld
- **Markdown:** https://alexturik.com/blog/help-ai-understand-your-content-with-json-ld.md
- **Published:** 2026-05-06 · **Updated:** 2026-08-09

LLMs ground answers in structured data. With schema.org markup, the model sees a typed object — author, date, headline. Here's the canonical setup.

### The Invisible Tags Shaping Your AI Citations

- **URL:** https://alexturik.com/blog/the-invisible-tags-shaping-your-ai-citations
- **Markdown:** https://alexturik.com/blog/the-invisible-tags-shaping-your-ai-citations.md
- **Published:** 2026-05-05 · **Updated:** 2026-08-09

title, meta description, og:image, canonical — four tags decide if ChatGPT and Perplexity render your brand on the citation card. The bundle.

### Semantic HTML — Skipping Headings Breaks AI Optimization

- **URL:** https://alexturik.com/blog/semantic-html-for-machines-heading-hierarchy
- **Markdown:** https://alexturik.com/blog/semantic-html-for-machines-heading-hierarchy.md
- **Published:** 2026-05-04 · **Updated:** 2026-08-09

AI crawlers parse your heading outline before anything else. Skip an H3 and you create a phantom node — here's how to keep structure clean for LLMs.

### The JavaScript Trap — Why AI Bots See Empty Pages

- **URL:** https://alexturik.com/blog/the-javascript-trap-why-ai-bots-see-empty-pages
- **Markdown:** https://alexturik.com/blog/the-javascript-trap-why-ai-bots-see-empty-pages.md
- **Published:** 2026-05-03 · **Updated:** 2026-08-09

AI crawlers don't run JavaScript. If your raw HTML is a hollow `<div id="root"></div>`, you're invisible to ChatGPT, Claude, and Perplexity.

### Why Your Site Doesn't Show Up in ChatGPT (or Perplexity)

- **URL:** https://alexturik.com/blog/why-your-site-doesnt-show-in-chatgpt-and-perplexity
- **Markdown:** https://alexturik.com/blog/why-your-site-doesnt-show-in-chatgpt-and-perplexity.md
- **Published:** 2026-05-02 · **Updated:** 2026-08-09

Three robots.txt strategies for AI crawlers, and the two configuration mistakes that quietly cut you out of ChatGPT, Claude, and Perplexity answers.


## What AEO actually is

Answer Engine Optimization is what you do so that a language model can read your
page, understand what it claims, and quote it correctly in an answer it gives
to someone who never sees your site.

That last clause is the uncomfortable part. Classic SEO ends with a click; AEO
often ends with a citation and no click at all. The work is still worth doing —
being the source an answer is built from is a different and more durable
position than being the tenth blue link — but it changes what you optimise for.
You are no longer competing for attention. You are competing to be
*quotable*.

## AEO, GEO, LLMO — is there a difference?

Mostly not, and the differences that exist are about emphasis rather than
technique.

| Term | Stands for | Emphasis |
|---|---|---|
| **AEO** | Answer Engine Optimization | Being the source a direct answer is built from |
| **GEO** | Generative Engine Optimization | Being represented well in generated text |
| **LLMO** | Large Language Model Optimization | Model-facing framing of the same work |
| **AI SEO** | — | Umbrella marketing term for all of it |

Anyone selling you a methodology that only works under one of these labels is
selling you a label. The full argument, with where the three genuinely diverge,
is in [GEO vs SEO vs AEO](/blog/geo-vs-seo-vs-aeo).

## The four things that have to be true

Every article below is one of four preconditions. They are ordered, because a
failure at any level makes the ones after it irrelevant.

**1 — The crawler can fetch it.** If robots.txt or a WAF blocks the agent, or
the page returns a shell, nothing else matters.

**2 — The crawler can read it.** HTML that arrives without JavaScript, no
`noindex`, real text rather than a rendering promise.

**3 — The machine can parse the structure.** A clean heading outline, JSON-LD
that says who wrote this and when, metadata that is not contradicting itself.

**4 — A retriever can use the chunk.** Sections that stand alone, because a
section is what gets retrieved — never the whole page.

Most sites fail at 2 or 4 while spending all their effort on 3.

## Reading order

### Start here — is anything reaching the crawler at all?

- [Why your site doesn't show in ChatGPT and Perplexity](/blog/why-your-site-doesnt-show-in-chatgpt-and-perplexity) — which bots exist, what each is for, and the robots.txt strategies that keep you visible without donating to a training corpus.
- [The JavaScript trap: why AI bots see empty pages](/blog/the-javascript-trap-why-ai-bots-see-empty-pages) — AI crawlers do not run your JavaScript. What each rendering mode actually hands them.
- [The 3-word tag that hides your best pages from AI](/blog/the-3-word-tag-that-hides-your-best-pages-from-ai) — `noindex`, how it gets into production by accident, and the `X-Robots-Tag` version you cannot see in the HTML.

### Then — can the machine parse what it fetched?

- [Semantic HTML for machines: heading hierarchy](/blog/semantic-html-for-machines-heading-hierarchy) — why a styled `div` is invisible to a chunker, and what each heading level claims.
- [Help AI understand your content with JSON-LD](/blog/help-ai-understand-your-content-with-json-ld) — Article and FAQPage in one `@graph`, and how to verify it.
- [Recency and authority: two schema fields that decide AI trust](/blog/recency-and-authority-two-schema-fields-that-decide-ai-trust) — `datePublished`, `dateModified`, and why an author string is not an author.
- [The invisible tags shaping your AI citations](/blog/the-invisible-tags-shaping-your-ai-citations) — title, description, canonical, Open Graph: the four lines the citation card is built from.

### Then — will a retriever pick your chunk?

- [Embeddings: how AI search turns your page into numbers](/blog/embeddings-how-ai-search-turns-your-page-into-numbers) — the mechanism underneath all of it, with a live [playground](/tools/embedding-playground) so you can watch keyword stuffing win retrieval and lose the citation.

### Then — make yourself easy to ingest

- [How I added llms.txt to my Next.js blog in 15 minutes](/blog/how-i-added-llms-txt-to-my-nextjs-blog-in-15-minutes) — the machine-readable index, and the `.md` mirrors that go with it.

### Finally — measure it

- [How to audit AI visibility](/blog/how-to-audit-ai-visibility) — the audit this site runs on itself, and the numbers it produced.
- [GEO vs SEO vs AEO](/blog/geo-vs-seo-vs-aeo) — where the three disciplines actually diverge, and where they are the same work under different names.

## Tools that do this work for you

- [AEO Checker](/extensions/aeo-checker) — a Chrome extension that scores the current tab on the parseability checks above: title and description length, robots directives, JSON-LD, `llms.txt`, heading structure.
- [Embedding Playground](/tools/embedding-playground) — compare texts by meaning in your browser, to see what a retriever sees.
- The [glossary](/aeo/glossary) — every term used across the cluster, defined once.

## FAQ

### What is Answer Engine Optimization?

The practice of making a page readable, parseable and quotable by AI answer
engines — ChatGPT, Perplexity, Claude, Google's AI Overviews — rather than
merely rankable by a search engine. In practice it is four things: the crawler
can fetch the page, it arrives as real HTML, its structure and metadata are
machine-readable, and each section makes sense read alone.

### Is AEO different from SEO?

The techniques overlap heavily; the success condition does not. SEO optimises
for a ranking that produces a click. AEO optimises for being the source a
generated answer is built from, which frequently produces a citation and no
click. Clean HTML, fast pages and structured data serve both. Keyword density
and link-building serve neither as much as their advocates claim.

### Is GEO the same thing as AEO?

Near enough that arguing about it is wasted time. Generative Engine Optimization
emphasises how you are represented inside generated text; Answer Engine
Optimization emphasises being the source of a direct answer. The work — clean
structure, real HTML, structured data, self-contained sections — is identical.

### Is SEO dead now that AI answers exist?

No, and the framing is a category error. The technical foundation of SEO —
crawlable, fast, well-structured pages — is precisely what AEO requires, so the
investment carries over intact. What is genuinely weakening is the assumption
that a ranking converts into a visit, because an increasing share of queries are
answered without one.

### Where should I start if I only fix one thing?

Check that a crawler receives your content at all. Disable JavaScript and reload
your most valuable page: if the article body vanishes, nothing further down the
list matters. That single check catches more real failures than every structured
data refinement combined.

### How do I measure whether any of this worked?

Google Search Console still shows impressions from AI surfaces, server logs show
which bots actually fetch you, and per-page parseability can be checked directly
with the [AEO Checker](/extensions/aeo-checker) extension. The method, and the
numbers it produced for this site, are in [How to audit AI
visibility](/blog/how-to-audit-ai-visibility).
