All promptsAI visibility

How LLM SEO works: the pipeline, stage by stage, with the guesses labelled

What happens between a question typed into an assistant and your name in the answer, traced stage by stage, with each stage marked documented or inferred.

Works in
ChatGPT, Claude, Gemini
You need
One question a buyer would ask an assistant · Your domain and the page that should answer it · What the assistant actually replied, if you have run it
Written for
how llm seo works
98A

Scored by our own engine

This page, run through the audit we sell. Measured 4 August 2026.

Score your own page →

LLM SEO is the work of being retrievable and quotable rather than only rankable. The mechanism has two paths: an assistant either answers from the model weights it was trained on, or it retrieves live pages and writes from those. Almost everything you can change sits on the second path, and the prompt below traces it stage by stage for one real query.

Two paths, and only one of them is yours

Ask an assistant a question and it either answers from memory or goes and looks.

What it answers from memory is a compressed statistical residue of training data. It has a cutoff, it carries no date, and it cannot be corrected by editing your site. This is why assistants confidently quote prices you stopped charging two years ago.

What it answers from retrieval is text fetched at that moment. That path has stages you can act on: whether a crawler is allowed to fetch you, whether your content exists before JavaScript runs, whether a passage on the page stands alone once it is cut out of the page around it.

OpenAI documents four separate crawlers, and the split is the useful part. GPTBot crawls for training. OAI-SearchBot surfaces sites in the search features. ChatGPT-User fetches a page when a user asks. They are different user agents, so allowing one and refusing another is a real decision rather than an all or nothing switch.

What is documented, and what everybody is guessing

Very little of the middle is published. Crawler behaviour is documented; selection is not.

OpenAI describes what each of its bots does and says nothing about how a page is chosen for citation. Google publishes a page on AI features stating there are no additional requirements or special optimisations for AI Overviews and AI Mode. Neither operator publishes how passages are ranked, cut or weighted.

So chunking, embedding, reranking and context assembly are all reasonable inferences from how these systems are built, and none of them is confirmed for any specific product. A stage nobody documents is a stage nobody can sell you a method for. That distinction is the whole point of the prompt, which forces the model to label each stage DOCUMENTED, INFERRED or UNKNOWN and then to list back everything it guessed.

The stage where most sites lose

It is stage three, and it is binary. A crawler that is blocked in robots.txt, or a page whose text only exists after React hydrates, never reaches the stages anybody argues about.

Check both before spending money on the rest: the render gap check and why AI crawlers see a blank page on a React site. Then take the vocabulary argument to AEO and GEO, which is which, and the research to what the GEO paper actually tested.

The prompt 499 words
You are explaining a retrieval pipeline to a technical marketer. Trace what
happens between the question below being typed into an assistant and a source
being named in the answer. Do not give me tactics. Give me the mechanism.

Walk the stages in order. For each stage, give exactly four things:

a) What happens, in two sentences of plain mechanism.
b) A confidence label, one of these three and nothing else:
   DOCUMENTED, meaning an operator has published this and you can name the
   document. INFERRED, meaning it follows from how these systems are built but
   no operator has confirmed it for this product. UNKNOWN, meaning nobody
   outside the company knows and anybody who says otherwise is guessing.
c) Whether I can influence it: fully, partly, or not at all.
d) If I can influence it, the specific lever, named as a file, a tag, a
   rendering decision or a third party source rather than as advice.

The stages, in this order:

1. Whether the assistant answers from the model weights alone or triggers a
   retrieval step, and what decides that.
2. What the retrieval step actually issues, and against what index.
3. How a candidate page is fetched, by which named user agent, and whether
   JavaScript is executed.
4. How the fetched page is cut into passages, and what the boundaries are.
5. How passages compete for a place in the context the model is given.
6. How the model composes the answer from that context, and what decides
   whether a source is named rather than silently used.
7. What the model can and cannot recall about my business with no retrieval at
   all, and why anything it recalls is undated.

Then close with three sections.

WHERE I AM PROBABLY LOSING. Given my domain, my page and the reply I pasted,
name the single stage where this specific query most likely fails, and say
what evidence in what I gave you points there. One stage, not a list.

THE CHEAPEST TEST. One concrete check I can run today that would confirm or
kill that hypothesis, with what a pass and a fail look like.

WHAT YOU JUST GUESSED. List every stage you labelled INFERRED or UNKNOWN,
restated in one line each, so I can see exactly how much of this trace is
reconstruction rather than documentation.

Constraints:
- Do not name a document unless you are confident it exists. If you cannot
  name one, the label is INFERRED, not DOCUMENTED.
- Do not invent statistics, percentages, ranking factors or weightings.
- Do not claim any assistant reads any particular file unless the operator
  documents it.
- Do not present this pipeline as identical across ChatGPT, Claude, Gemini and
  Perplexity. Say where they are known to differ and where you are assuming.

The question: [ONE QUESTION A BUYER WOULD ASK AN ASSISTANT]
My domain and the page that should answer it: [YOUR DOMAIN AND ONE PAGE URL]
What the assistant actually said: [PASTE THE REPLY, OR WRITE "not run yet"]

What to change

Everything in square brackets is yours to replace. Nothing else needs editing.

[ONE QUESTION A BUYER WOULD ASK AN ASSISTANT]
One question, not a keyword, and one that a stranger would plausibly ask. "Who does fractional CFO work for seed stage startups in London" traces cleanly. "Fractional CFO" traces nothing, because a bare noun does not trigger the same behaviour and the retrieval stage becomes unanalysable.
[YOUR DOMAIN AND ONE PAGE URL]
The domain plus the single URL you believe answers that question. Both are needed: the domain is what crawler access and rendering apply to, and the page is what stages four and five are about. Guessing the page defeats the closing sections.
[PASTE THE REPLY, OR WRITE "not run yet"]
Ask the question in ChatGPT with search on and paste the whole reply, citations included. This is the only real evidence in the run and it changes the closing diagnosis completely: an answer that cites three competitors and never fetches you is a different failure from one that fetches you and quotes you badly.

How to run it

  1. 01
    Ask the question in a real assistant first

    Open ChatGPT with search enabled, ask the question in a fresh chat, and copy the whole answer with its citations. Run it signed out or in a temporary chat, because memory and history change what you get and you want the answer a stranger would receive.

  2. 02
    Note which sources it named, before you run the prompt

    Write down the domains it cited. If they are directories, roundups and comparison posts rather than the companies themselves, that is already the answer to most of the question, and it tells you the work sits off your site rather than on it.

  3. 03
    Run the trace with all three inputs filled

    Paste the prompt with the question, your domain and page, and the reply. Running it without the reply still produces a usable mechanism walkthrough, and the closing diagnosis becomes generic, because there is no evidence for it to reason from.

  4. 04
    Read the "what you just guessed" section first

    It tells you how much of the trace is reconstruction. Retrieval internals are not published by any operator, so a trace with almost nothing marked INFERRED is not a better trace, it is a model that has quietly promoted its assumptions to facts.

  5. 05
    Check the two stages you can actually control

    Stage three is crawler access and rendering, and it is binary. Run the AI crawler check and the render gap check on the page you named. If a crawler is blocked, or the text only exists after JavaScript runs, no amount of work on stages four onward matters.

  6. 06
    Run the cheapest test and re-ask the question in a week

    Do the one check it named, fix what it finds, then ask the same question again from a fresh session. One re-ask proves nothing on its own, and a stable change across several asks over a couple of weeks is the only signal available to you, because none of this is reported anywhere.

Questions people ask

How does LLM SEO actually work?

It works on two separate paths. When an assistant retrieves, it issues a search, fetches candidate pages with a named crawler, cuts them into passages, puts some of those passages into the model context and writes an answer from them. When it does not retrieve, it answers from training data, which is undated and cannot be edited. Almost everything you can influence sits on the retrieval path.

Is LLM SEO the same as normal SEO?

It shares most of its inputs and differs in what counts as success. Both depend on a crawler reaching your page and understanding it. Classic SEO wins when the page ranks and somebody clicks. LLM SEO wins when a passage is lifted and your name appears in an answer the reader never leaves, which puts weight on structure and on what other sites say about you.

Do AI assistants run JavaScript when they fetch my page?

Mostly no. Treat every assistant crawler as a plain fetch of the HTML with no browser attached. Google is the exception and renders on a delay. This is why a site can rank acceptably on Google and be close to invisible in assistants, and it is the failure mode that is hardest to spot because every human who opens the page sees it working.

How does an assistant decide which source to cite?

No operator publishes this. OpenAI documents its crawlers and says nothing about how pages are selected for citation, and Google states that no special optimisation exists for its AI features. Anything more specific than that is inference. What is not in doubt is that a page a crawler cannot fetch, or cannot read without running JavaScript, is not a candidate at all.

Which crawler does ChatGPT use?

OpenAI documents four. GPTBot crawls content that may be used to train models. OAI-SearchBot surfaces websites in the search features. ChatGPT-User visits a page in response to something a user asked. OAI-AdsBot validates pages submitted as ads. They are separate user agents, so blocking training and allowing search is a decision you can make deliberately in robots.txt.

A new prompt, most days One working prompt for a real SEO or AI visibility job, what to change in it, and a worked example. No sequences, no offers dressed as newsletters.

Unsubscribe in one click. We never pass your address on.

Run your first audit
in about a minute

Free account, no card. Paste your URL and get a real, scored report of your AI and search visibility.

Measuring rankings in