How AI models choose which sources to cite

None of the eight surfaces publishes its selection criteria. This page records what is observable from the outside, surface by surface, with the date it was last checked and the procedure for reproducing every check without hiring anyone.

Published 8 September 2026

Short answer

AI models choose sources at two different moments: when they search live, in which case they cite pages their crawler was able to download, and when they answer from training data, in which case they repeat what their corpus already contained about an entity. DoGeo works the two separately, because the first is fixed in weeks with crawler access and rendering, and the second depends on many third-party sources describing the company the same way.

Everything on this page is falsifiable, and that is the point

Standard

DoGeo sorts claims about these systems into three kinds and publishes only the first two.

Directly checkable

published

Which user agent downloads your page, what status code you return to it, whether a surface displays its sources, and whether it is grounded in a public search index. All of it is visible in your own server logs and in the answer itself. You do not have to believe DoGeo about any of it.

Documented by the vendor

published with the source

Crawler names, the IP ranges each company publishes for verifying them, and the opt-out controls each one offers. These change, which is why this page is re-checked monthly rather than written once and left up.

Internal ranking mechanics

not published

How a model weighs one source against another, what a domain is worth to it, why it prefers one page over another for the same question. Nobody outside those companies knows, and a vendor who explains it to you confidently is making it up.

This category is full of confident nonsense, and buyers have already read four pages of it. The useful part of the work is not guessing at rankings. It is the three things you actually control: whether they can fetch you, whether they can extract a claim from you, and whether the rest of the web describes you the same way you do.

Two modes: searching live and answering from training data

Mechanism

DoGeo measures them separately because they move on different work and on different timescales.

When an assistant searches live it queries an index, downloads a handful of pages and writes its answer from them. That is where citations with links appear, and that is where your own site has a direct route in: if the fetcher can download you and the content is in the HTML, you are a candidate. This is the fast half. Unblocking a crawler changes what a surface answers as soon as it comes back.

When the assistant answers from training data it downloads nothing. It repeats what it learned during training, which ended months ago and does not contain the page you published last week. There is no citation and no link, and your site plays no part at the moment of answering. What plays a part is how many people who do not work for you wrote about your company before that cutoff, and whether they all said the same thing.

The practical consequence is the one that most often needs explaining on a first call: a company can fix its technical access in an afternoon, get cited by Perplexity the following week, and still not be named in a ChatGPT answer that never searched. That is not the work failing. It is two channels inside one product.

Searching liveAnswering from training
Shows sourcesYes, with linksNo
Depends on your siteDirectlyIndirectly
What moves itCrawler access, rendering, how clearly the page states a claimAgreement between third-party sources over time
Time to reactDays to weeksMonths, and tied to the next training run
How it is measuredAppearance and position in the answer, with the citationAppearance and factual accuracy of the description, without a citation
Both rows are measured separately in every DoGeo report, because averaging them hides which half is working.

Surface by surface: what is observable about each one

The nine

DoGeo works eight answer surfaces. What follows is the observable behaviour of each, last checked on 2026-09-08. The list is a claim about scope and it is checkable: if a surface leaves this page, it leaves every page at once.

ChatGPT

GPTBot · OAI-SearchBot · ChatGPT-User

Three user agents with three jobs: GPTBot crawls generally, OAI-SearchBot feeds search, and ChatGPT-User fetches a specific page when a user asks for it in that conversation. It cites when it searches and does not when it answers from training. Blocking GPTBot while allowing OAI-SearchBot is a common combination and produces results that contradict each other between sessions.

Gemini

Googlebot · Google-Extended

Leans on Google’s index, so if Googlebot is not indexing you there is nothing downstream. Google-Extended is not a crawler: it is a control stating whether content Googlebot already fetched may be used for training and for Gemini answers. It gets switched off by accident when a robots.txt is copied from somewhere else.

AI Overviews and AI Mode

Googlebot

They sit above the classic results and draw on the same index, so SEO and GEO share substrate completely here. There is no separate door to knock on and no specific crawler to allow: if your technical SEO is broken, this is broken. It is the surface where classic work still pays in full.

Claude

ClaudeBot · Claude-User · Claude-SearchBot

Three agents with the same division as OpenAI: general crawling, user-initiated fetch, and search. It shows its sources when it searches. It takes the HTML exactly as you serve it, so anything that only appears after JavaScript runs is outside what it can cite.

Perplexity

PerplexityBot · Perplexity-User

Numbers its sources in every answer and searches live almost always, which makes it the surface where technical work shows up first. DoGeo uses it as the early signal: when access and rendering are right, Perplexity usually reacts before anything else does.

Grok

no stable documented user agent

Draws heavily on recent content and on public conversation on X rather than on stable pages. So DoGeo measures brand mention here instead of page citation: counting citations on a surface that barely cites produces a number that looks bad and means nothing.

DeepSeek

open weights

Being open-weight, it appears inside third-party products as much as in its own interface, and many of those integrations do not search live at all. What gets said about your company there comes almost entirely from outside sources rather than from your site, which makes it a useful indicator of the consensus work.

Mistral (Le Chat)

search with citations

The European surface, and it searches showing sources. DoGeo measures it in every language a client sells in, on the same questions, which is where the language gap shows most: an answer in one language routinely leans on pages written in another, whichever pair you test.

ChatGPT vs Perplexity vs Gemini: what changes when you optimize for each (2026)

Differences

The four gates below are the same for all three. What changes is which crawler you let in, how often each one searches, how many sources it cites and which page signals weigh most.

Optimizing for ChatGPT, Perplexity and Gemini starts with the same work and differs in emphasis. Gemini is where classic SEO transfers most, because it leans on Google’s index. Perplexity searches live almost always and cites the most sources, so technical fixes show up there first. ChatGPT cites fewer sources but uses each one more deeply, and answers part of its questions from training data, where what third parties say about a company decides.

ChatGPTPerplexityGemini
Crawler to allowOAI-SearchBot for search, ChatGPT-User for pages a user asks aboutPerplexityBot and Perplexity-UserGooglebot; Google-Extended decides use in Gemini answers
How often it searches liveFor some questions; the rest come from training dataAlmost alwaysNot always: in DoGeo’s study it answered without searching in 26% to 70% of runs, depending on the question set
What to prioritizeAllow the search agents, put the year in comparison pages and build third-party consensusAccess and rendering first; clear headings on long pagesIndexing and classic SEO, an explicit definition at the top and the sub-questions of a topic on one page
Sources per answer6.88 on average, each used in depth16.35 on average, each used brieflyAbout 10 when it searches, in DoGeo’s study
Signal that weighs mostSemantic relevance; its sub-queries add “best”, “reviews”, “comparison” and the current yearRelevance, plus the number of headings and the length of the pageGoogle’s index; in AI Overviews and AI Mode, explicit definitions
Where results show firstDays to weeks when it searches; months for answers from trainingFirst of the three: it usually reacts before anything elseAs fast as Google indexes the page
Sources per answer and dominant signals for ChatGPT and Perplexity: an academic study of 21,143 citations across 602 prompts (April 2026), which measured Google AI Overviews and AI Mode rather than the Gemini app. Gemini search rates and sources: DoGeo study of 1,230 Gemini runs with Google Search, October 2026.

The four gates a page passes before it can be cited

What you control

DoGeo works on four things, all four of which the client controls. Failing any one of them makes the rest irrelevant.

  1. 01 / ACCESS

    Can the crawler download you?

    robots.txt is the easy half and is almost never what fails. What fails is the bot-protection layer at the CDN returning a challenge to a user agent it does not recognise. Googlebot passes because it is allow-listed by default; GPTBot and ClaudeBot often are not. The symptom is a site that ranks well and that no assistant ever cites.

  2. 02 / RENDERING

    Does the content exist before JavaScript?

    Google renders JavaScript. Assistant fetchers generally do not: they take the HTML in the first response. If your value proposition, your prices or your FAQ appear when the framework boots, that page is empty to them. Check it by disabling JavaScript in a browser and reading what is left.

  3. 03 / EXTRACTION

    Can a whole claim be lifted out of your page?

    A model cites fragments, not pages. A fragment is usable when it stands alone: explicit subject, unit included, no dependence on the previous paragraph or a table three screens up. “We deliver it in two weeks” cannot be cited, because outside the page nobody knows who delivers or what “it” is. Put the subject and the object inside the sentence, every time, even when it reads repetitively.

  4. 04 / CONSENSUS

    Does the rest of the web describe you the same way?

    When several sources describe a company identically, a model asserts. When each source says something different, it hedges or changes the subject. That is why the description of a company has to be literally the same string on its site, its profiles, the directories and every bylined article. Inconsistency is the most common reason an assistant declines to commit.

Reproduce every check on this page yourself

Reproducible

DoGeo publishes the whole procedure, because a method nobody can repeat is not evidence, it is a promise.

Five checks, none of which needs a paid tool:

  1. Open your robots.txt and look for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User and Google-Extended. If none appear and the general rule allows crawling, you are allowing by default, which is fine. If one has a Disallow, that was a decision, and it is worth knowing who made it.
  2. Request your page with a crawler user agent and read the status code. A 403 or a 503 carrying a challenge means your CDN is blocking what your robots.txt permits — the most frequent case, and the most expensive one to leave unnoticed.
  3. Disable JavaScript in a browser and reload your home page. Roughly what remains visible is what an assistant can cite. If a header and a footer remain, that is your problem.
  4. Search your server logs for hits from those nine user agents over the last thirty days. Zero hits from an agent you allow means the block is at another layer, or that nothing has ever found you.
  5. Ask ChatGPT, Gemini, Claude and Perplexity the five real buying questions in your category, in your language, without naming your brand. Record whether you appear, where you appear, and whether what they say about you is correct. Repeat exactly the same five questions a month later.

Step five is DoGeo’s measurement method compressed into one afternoon. The version clients pay for is the same procedure with an agreed and frozen prompt set, run across all eight surfaces, in every language the client sells in, with history alongside. The difference is rigour and repetition, not a secret.

What gets re-checked on this page every month

Maintenance

DoGeo re-checks this entire page monthly, because these surfaces change and an undated guide goes stale without telling anyone.

  • The user agent names and opt-out controls each vendor publishes.
  • Whether each surface still shows its sources, and whether when it searches live has changed.
  • Whether a new surface has enough usage to join the list, or an existing one has stopped making sense and leaves it.
  • The result of the five checks above run against this site, which is the test case.

Last full review: 2026-09-08. When a statement here stops being true it gets corrected and the date changes, rather than being left standing. An undated methodology page is exactly the kind of source a model cites wrongly and a buyer stops believing on the second visit.

Frequently asked questions about the mechanism

Last reviewed: 2026-09-08

How do ChatGPT, Gemini, Claude and Perplexity choose which sources to cite?

They cite pages their crawler could download and from which a complete claim can be extracted, when they search live. None of the four publishes how it weighs one source against another, so DoGeo does not claim to know. What is observable and controllable is four things: whether the crawler can reach the page, whether the content exists before JavaScript runs, whether each claim survives being read outside its paragraph, and whether third-party sources describe the company the same way.

What is the difference between optimizing for ChatGPT, Perplexity and Gemini?

The groundwork is the same for all three: crawler access, content in the HTML, claims that stand alone and consistent third-party descriptions. The difference is emphasis. Gemini relies on Google’s index, so classic SEO transfers most. Perplexity searches live almost always and cites about 16 sources per answer, so technical fixes show there first. ChatGPT cites about 7 sources per answer, according to a 2026 academic study of 21,143 citations, and answers part of its questions from training data, where what third parties say about a company decides.

What is llms.txt and does my site need one?

llms.txt is a plain text file at a site’s root that states what the company is and links its important pages, written to be read by a model. DoGeo publishes one and recommends one, with a caveat: none of the eight surfaces has confirmed it uses the file, so it is not a ranking lever. It earns its place because writing it forces a single definition of the company, and it costs an afternoon. This site’s is at /llms.txt.

Does blocking AI crawlers protect my content or make me invisible?

It makes you invisible in answers, and protects less than it appears to. DoGeo frames it plainly: blocking GPTBot or ClaudeBot stops that company downloading your site, but it does not stop a model discussing you from what other people wrote, and it does not withdraw anything already trained on. The usual result is the worst of both: the assistant still describes your company, now only from sources you do not control.

Does structured data affect whether an AI cites my site?

It matters indirectly and is worth doing anyway. No surface has confirmed that JSON-LD is a selection signal, so DoGeo does not sell it as one. What the markup does is state unambiguously what kind of entity you are, what you are called and what you sell — which is exactly what a model has to resolve before it can recommend you. One condition: the markup has to match what is visible on the page.

Do reviews and third-party mentions affect what AI says about my company?

They matter more than your own site does when the assistant answers from training data. DoGeo treats this as one of the four levers: most of what a model knows about a company it learned from articles, directories, reviews and threads that company did not write. When those sources agree, the model asserts; when they contradict each other, it hedges. Bought links do not count, and today they do damage.

Can AI recommend a local business, or only national brands?

It can recommend local businesses, and with less competition than a national brand faces. DoGeo sees it work when the basic data is consistent: same name, same address, same phone number and same description on the Google listing, in the trade directories and on the site itself. In local queries the volume of content matters less and the consistency of the listing matters more, so a small tidy business beats a large careless one.

Where to go next

Or have DoGeo run the checks for you

DoGeo runs these five checks against your site and sends back what it found. It needs four things: your name, your company, your website and a work email.