How does ChatGPT search pick the sources it cites?
Last updated October 14, 2026. Written by the Third Coast AI team.
ChatGPT search picks its sources by deciding whether a question needs the web at all, sending one or more short search queries to a search index rather than to the open web, reading the top results it gets back without executing any JavaScript, and writing an answer with inline citations to the handful of pages that supported specific sentences, so a company is cited when its page is reachable by OAI-SearchBot, present in the index ChatGPT searches, readable in raw HTML, and the clearest answer to one of the queries the model generated. OpenAI's own documentation states that sites opted out of OAI-SearchBot "will not be shown in ChatGPT search answers," which makes crawler access the first thing to check and the easiest thing to get wrong.
This page explains each of those steps using OpenAI's published crawler and web search documentation, then adds what the independent studies measured about how ChatGPT's citations behave. It is the companion to our step-by-step guide, which covers what to do about it.
Which OpenAI crawler decides whether you can be cited?
OAI-SearchBot, and not GPTBot, which is the one most people have heard of. OpenAI's crawler documentation lists three agents with three jobs. GPTBot is "used to crawl content that may be used in training our generative AI foundation models," and disallowing it "indicates a site's content should not be used in training." OAI-SearchBot is "used to surface websites in search results in ChatGPT's search features," and the documentation says plainly that "sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers." ChatGPT-User is used for certain actions a person triggers inside ChatGPT and custom GPTs, and because those fetches are user-initiated, "robots.txt rules may not apply."
| Agent | Purpose (OpenAI's wording) | Honors robots.txt | Effect of blocking |
|---|---|---|---|
| GPTBot | "crawl content that may be used in training our generative AI foundation models" | Yes | Content excluded from future training; no stated effect on search answers |
| OAI-SearchBot | "surface websites in search results in ChatGPT's search features" | Yes | "will not be shown in ChatGPT search answers" |
| ChatGPT-User | "certain user actions in ChatGPT and Custom GPTs" | "may not apply" | Live fetches when a person pastes your link may still occur |
Two details from the same documentation matter in practice. OpenAI publishes the IP ranges for each agent (searchbot.json, gptbot.json and chatgpt-user.json on openai.com), and a CDN or firewall rule that blocks by IP will block OAI-SearchBot even when robots.txt allows it, which is the failure we find most often on sites behind aggressive bot protection. And OpenAI's crawler documentation says it "can take ~24 hours from a site's robots.txt update for our systems to adjust," so a fix is not instant and a test the same afternoon can mislead.
Does ChatGPT crawl the whole web itself?
Not in the way Google does, and this is the point that changes the strategy. OpenAI's web search tool guide describes the model sending the query to a web search tool "which returns the response based on top results," and it says the model "can choose to search the web or not based on the content of the input prompt." OpenAI's help materials describe ChatGPT search as drawing on third-party search providers as well as content from partners, which is consistent with what practitioners observe: ChatGPT's citations track the results of a conventional search index for the short queries the model writes, rather than a fresh crawl of everything OAI-SearchBot has ever fetched. The practical consequence is that the health of your site in a search index you may never look at still shapes whether ChatGPT can find you, and that the queries being answered are the model's rewrites, not the buyer's words.
We treat that rewriting step as the core of the work. When we run a client's prompt bank with retrieval on, we capture the hidden sub-queries the engine issues behind each buyer question and the decision factors it uses to pick a winner, and those short queries are what your pages need to answer. A page written for "best IT managed services provider" will be retrieved for one query; a page that also states response-time commitments, pricing structure, certifications and local coverage in separate passages is retrieved for several.
Why does JavaScript matter so much for ChatGPT?
Because the fetchers do not run it. Vercel's December 2024 crawler study, built on request logs across its network, concluded that "none of the major AI crawlers currently render JavaScript," naming OpenAI's OAI-SearchBot, ChatGPT-User and GPTBot along with Anthropic's ClaudeBot and Perplexity's PerplexityBot, and it measured GPTBot at 569 million fetches in the sampled month against 4.5 billion for Googlebot. The same study found ChatGPT's crawler spending 34.82% of its fetches on pages that returned a 404, which says something about how it discovers URLs and argues for clean internal linking and a current sitemap.
For a company this means anything injected after load, including tab content, accordion bodies, pricing tables pulled from an API and whole pages built client-side, is invisible to ChatGPT's retrieval. The test is simple: view the page source (not the inspector) and search for the sentence you want cited; if it is not there, ChatGPT cannot quote it. The JavaScript page goes through the fixes.
Sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers.
OpenAI crawler documentation
How do citations appear in a ChatGPT answer?
As inline links on specific sentences, with a fuller list behind them. OpenAI's web search tool guide says that "by default, the model's response will include inline citations for URLs found in the web search results," that each citation carries "the URL, title and location of the cited source," and that a separate sources list "returns the complete list of URLs the model consulted," where "the number of sources is often greater than the number of citations." In the consumer product this shows up as a small set of linked sources on the answer and a longer list behind a sources button, and the pages that get the visible inline citation are the ones whose wording supported a particular sentence.
That distinction between consulted and cited is why the structure of a page matters. The model reads more pages than it credits, and it credits the passage that let it write a sentence with confidence, which in the Princeton researchers' experiments (Aggarwal and colleagues, KDD 2024) meant pages with quotations, statistics and cited sources were up by roughly 41%, 33% and 28% in generated-answer visibility. A page that is consulted and not cited has been read and found less quotable than a rival.
Do ChatGPT's citations change between runs?
A great deal, and more than Google's. Sistrix's May 2026 citation drift study measured ChatGPT search replacing as much as 74% of its cited sources week to week across 82,619 prompts, against about 5% for AI Overviews. Profound's July 2025 volatility study compared identical prompts a month apart on roughly 80,000 prompts per platform and found 54.1% of ChatGPT's cited domains had changed. SparkToro's January 2026 study of 2,961 prompt runs found less than a 1 in 100 chance that ChatGPT or Google's AI returns the same brand list twice for the same question. None of that means the engine is random; it means visibility in ChatGPT is a rate measured over repeated runs, and a single screenshot is not a result. Glenn Gabe's April 2026 documentation of a site whose ChatGPT visibility fell after Google demotions is a reminder that the underlying index moves too.
- Allow OAI-SearchBot in robots.txt and confirm your CDN or firewall does not block OpenAI's published IP ranges, then wait a day before testing.
- Put every sentence you want cited in the raw HTML, and check with view-source rather than the browser inspector.
- Keep the site healthy in the conventional index: no orphan pages, a current sitemap, few 404s, since Vercel measured a third of ChatGPT's fetches hitting dead pages.
- Write passages that answer the short queries the model generates, with a number or a named source in each, and phrase headings as buyers ask.
- Measure with repeated runs across your prompt bank, and report the share of runs where you are named, not one answer.
Frequently asked questions
Not according to OpenAI. GPTBot governs training data, and OAI-SearchBot governs search results. OpenAI's documentation says sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers, so that is the one to allow.
No. Vercel's December 2024 log study found none of the major AI crawlers, including OpenAI's three agents, render JavaScript. Content that appears only after scripts run is invisible to ChatGPT's retrieval.
OpenAI says it can take about 24 hours for its systems to adjust after a robots.txt change, and then the page has to be re-fetched and present in the index ChatGPT searches, so allow days rather than hours before re-testing.
Because the model decides whether to search, rewrites the question into short queries, and samples from the results each run. Sistrix measured up to 74% of ChatGPT's cited sources changing week to week, which is why we report visibility as a rate across repeated runs.
No. With search on, the answer draws on live pages and shows citations. With search off, the model answers from training data, where third-party mentions and reference sites matter more than your own pages. Our prompt bank is run with retrieval on.