How answer engines choose which sources to quote

Updated Published 9 min read

In short

Answer engines quote passages they can reach, lift whole and trust. In practice that means four things: allowing retrieval crawlers in robots.txt, opening with a self-contained answer short enough to quote, attributing claims to primary sources, and including specific figures. No technique guarantees a citation — these remove the reasons an engine skips you.

Key points

  • Retrieval crawlers and training crawlers are different agents: blocking GPTBot affects model training, while blocking OAI-SearchBot removes you from ChatGPT's live answers.
  • An engine quotes passages, not pages — a long introduction can leave a correct answer unquotable because no self-contained extract exists.
  • Aggarwal et al. (KDD 2024) found citing sources, adding quotations and adding statistics produced the largest visibility gains among the interventions they tested.
  • An unattributed claim on an unfamiliar domain is the weakest possible evidence; the same claim with a primary source and a date is something an engine can repeat safely.
  • No tool can tell you whether an engine will cite you. Anything claiming otherwise is selling an unfalsifiable promise.

When someone asks ChatGPT or Perplexity a question, the model does not rank ten blue links. It retrieves a handful of documents, pulls specific passages out of them, and assembles an answer — usually citing a few of the sources it used. Whether you are one of them comes down to a different set of properties than classic SEO optimises for.

This guide covers what those properties are, what the published evidence supports, and — just as important — what nobody can honestly promise.

What nobody can promise you

Start here, because the category is full of claims that cannot be tested. No tool, plugin or agency can tell you whether an answer engine will cite your page. Citation depends on the exact prompt, the other documents retrieved alongside yours, and ranking behaviour inside systems nobody outside those companies can observe. It also varies between runs of the same prompt.

What can be established is the opposite and more useful thing: the reasons an engine would skip you. Those are observable, fixable, and the rest of this guide is about them.

1. Reachability: can the engine fetch you at all?

Before content quality matters at all, a crawler has to be allowed in. This is where the most common and most self-defeating mistake lives, because the major vendors run two different kinds of crawler under similar names.

Training crawlers collect content used to train models. GPTBot (OpenAI), ClaudeBot (Anthropic) and Google-Extended (Google) are in this group. Blocking them keeps your content out of training data. Whether you want that is an editorial and commercial judgement, and there is a reasonable case either way.

Retrieval crawlers fetch pages to answer live questions. OAI-SearchBot, Claude-SearchBot and PerplexityBot are in this group. Blocking these removes you from the answers themselves.

The failure mode is a site owner who reads about AI scraping, adds a robots.txt rule intending to opt out of training, and catches the retrieval crawler in the same block. The site then does everything else right and remains invisible, because it made itself unfetchable. If you check one thing after reading this, check that.

2. Extractability: is there a passage worth lifting?

An answer engine does not quote a page. It quotes a passage. That distinction has a practical consequence most writing advice misses: a page can contain exactly the right answer and never be used, because the answer only makes sense after three paragraphs of context.

The single most effective structural change most pages can make is an opening that directly answers the question implied by the title, short enough to stand on its own. Not a summary of what the article will cover — the actual answer, in a form someone could paste into a reply without editing it.

Two related habits help for the same reason:

  • Question-shaped headings. People prompt in questions. A heading reading "How do I verify hreflang is working?" matches the shape of a prompt far more closely than "Verification".
  • Self-contained sections. Avoid "as described above" and pronouns that reach back across headings. Each section should survive being read alone, because that is how it will be read.

3. Attribution: is the claim traceable?

This is where the published research is most useful. Aggarwal et al., GEO: Generative Engine Optimization (KDD 2024), tested a range of content interventions against generative engines and measured their effect on visibility. Among the interventions tested, citing sources, adding quotations and adding statistics produced the largest gains.

That result is intuitive once you consider the position the engine is in. It is assembling an answer it will be held to, from documents of unknown reliability. An unattributed assertion on an unfamiliar domain is the weakest possible evidence. The same assertion, traced to a primary source with a date, is something it can repeat without exposure.

Practically: cite the source you already used. Most factual claims in most articles came from somewhere — a spec, a vendor's documentation, a study. Linking it costs a sentence and converts an assertion into evidence.

4. Specificity: is there anything concrete to quote?

Vague copy is unquotable copy. "Significantly faster" gives an engine nothing to lift; "cuts median response time from 800ms to 210ms" is a passage that can be dropped into an answer verbatim.

This is the same finding as above from a different angle — the statistics result in the KDD paper — and it is the easiest to act on, because in most cases the number already exists and simply was not written down.

5. Machine-readable structure

Two mechanisms let a site describe itself without an engine having to infer everything from prose.

Structured data (schema.org JSON-LD) states what a page is, who wrote it, and when it last changed. A dateModified matters more than it used to: an engine choosing between two sources on a fast-moving topic has an obvious reason to prefer the one that can prove it is current.

llms.txt is a proposed convention — a plain-text file at the site root listing what the site covers, with links and one-line descriptions. It is not a standard and no engine is obliged to read it. It is also nearly free to publish, and it gives a model a map of the site without crawling every page. Treat it as cheap insurance rather than a lever.

What to do, in order

  1. Check your robots.txt for retrieval crawlers. Everything else is wasted while you are unfetchable.
  2. Rewrite your best pages' opening paragraphs into self-contained answers. Highest return per hour of any item here.
  3. Add the citations you already have — the sources you used but did not link.
  4. Add the numbers you already know.
  5. Emit dateModified and keep it honest.
  6. Publish an llms.txt. Cheap, quick, no downside.

You can check most of this on any URL with the AI Visibility Checker, which reports each of these signals for a page and lists which AI crawlers the site blocks.

A note on how to read any of this

The evidence base for generative-engine optimisation is thin compared to two decades of search-engine research — one widely cited paper and a great deal of vendor assertion. The recommendations above are the ones that either have published support or follow directly from how retrieval works.

Be sceptical of anyone, including us, who tells you more than that. If a claim about AI visibility cannot be traced to a measurement or a mechanism, it is a guess wearing a confident tone.

Sources

Technical claims in this guide are drawn from the primary documentation and specifications below, each confirmed live on the date shown.

  1. GEO: Generative Engine Optimization Aggarwal et al., KDD 2024. Accessed .
  2. OpenAI Crawlers and User Agents OpenAI. Accessed .
  3. Does Anthropic crawl data from the web, and how can site owners block the crawler? Anthropic. Accessed .
  4. PerplexityBot Perplexity. Accessed .
  5. Google crawlers — Google-Extended Google Search Central. Accessed .
  6. The /llms.txt file proposal llmstxt.org. Accessed .

FAQ

Can I make ChatGPT cite my website?
You cannot make it. You can remove the reasons it would skip you: allow retrieval crawlers such as OAI-SearchBot in robots.txt, open pages with a short self-contained answer, attribute claims to primary sources, include specific figures, and emit structured data with a dateModified. Anyone promising guaranteed citations is selling something unfalsifiable.
Should I block GPTBot?
That depends on how you feel about your content being used in model training, and it is a legitimate choice either way. What matters is not blocking OAI-SearchBot by accident at the same time — that is a different agent that fetches pages to answer live questions, and blocking it removes you from ChatGPT's answers entirely.
Does llms.txt actually do anything?
It is a proposed convention rather than a standard, and no engine is obliged to read it. Publishing one costs very little and gives a model a cheap map of what your site covers, so it is reasonable insurance — but treat anyone presenting it as a decisive ranking factor with suspicion.
Is generative engine optimisation different from SEO?
They overlap but optimise for different things. Classic SEO aims to rank a page. GEO aims to have a passage quoted. That changes the emphasis: extractability, attribution and specificity matter more, and much of traditional on-page optimisation is neither here nor there. A page can rank well and still never be quoted.
How long does it take to see a difference?
There is no reliable published figure, and anyone quoting you one is guessing. Retrieval crawlers re-fetch on their own schedules and answers vary between runs of the same prompt, which makes attribution of any change genuinely difficult. Treat the work as removing known obstacles rather than as a campaign with a measurable start and end.

Check any URL against everything in this guide — crawler access, extractability, attribution and structured data — in a few seconds.

Run the free checker
Go multilingual free
Open source · your data stays yours
Start free