ChatGPT picks its sources through hidden retrieval pipelines, not a single ranking list. Underneath each answer, it stamps every web result with an internal result_source label: Labrador, Bright, Oxylabs, or SERP. Which pipeline serves your page decides whether you get fetched and cited, and that pipeline can change between two identical prompts.
OpenAI has never documented any of this. What we know comes from two practitioners who stopped reading ChatGPT's answers and started reading its network traffic. The picture that emerged is messier, and more useful, than the usual "write good content and post on Reddit" advice.
What is the result_source field?
In July 2026, Suganthan Mohanadasan spent two days logging the raw JSON that ChatGPT sends to the browser underneath its replies, from a single logged-in Pro account across a few dozen searches, mostly SaaS and tech queries. He logged roughly 1,240 source records. Every web result came stamped with a field he named as the key to the whole system: result_source.
That field held one of four values. Each names a different pipe that ChatGPT uses to fetch the open web. A page does not "rank" in ChatGPT the way it ranks in Google. It gets fetched through one of these pipes, and only fetched pages can be cited. This is the mechanic almost nobody in the generative engine optimization niche had described at the plumbing level, and it reframes the whole question of visibility.
One more structural finding matters before the labels: ChatGPT fans a single question out into many searches. On reasoning-model tasks, Mohanadasan saw it fire roughly 15 to 40 sub-queries from one prompt, including targeted probes like site:domain.com/pricing. You are not competing to win one query. You are competing across dozens of them, some of which check your own site directly.
The four retrieval pipelines, decoded
Here is what each result_source value turned out to be, based on Mohanadasan's network-traffic analysis. Bright and Oxylabs are not internal OpenAI names. They are two of the largest commercial web-scraping and proxy vendors on the market, and their labels sitting inside ChatGPT's traffic tell you OpenAI is buying open-web fetching from third parties.
| result_source | What it is | Where it showed up |
|---|---|---|
labrador | An allowlist of established publishers and reference sites: Reuters, The Guardian, WSJ, FT, Wikipedia, arXiv | News, reference, high-trust answers; larger content snippets (~1,080 chars) |
bright | Bright Data, a commercial web scraper | Shopping, finance, weather, local, commercial queries |
oxylabs | Oxylabs, a rival commercial scraper | Regional and local press, some open web |
serp | An open-web baseline | Mostly news results (Yahoo, StreetInsider) |
The split between them isn't cosmetic. Labrador results arrived with much larger text snippets, which means licensed and reference sources give the model more to quote from. Commercial questions ("best CRM," "cheapest flight") leaned on the scraper pipes. News leaned on SERP and Labrador. If you sell software, your queries are disproportionately routed through Bright, a scraper that only sees what it can fetch and parse from your live HTML.
Does Bright or Labrador win? It depends what you count
This is where the two studies diverge, and the disagreement is the interesting part.
In Mohanadasan's sample, "bright did the bulk of the fetching," especially on commercial, shopping, finance, and weather queries. So a naive read is: Bright dominates.
Then Chris Green ran a bigger test. He fired 1,000 prompts up to 10 times each and captured 9,946 completed search runs, reported by Search Engine Land. In his dataset the split of primary sources was Labrador 88.1%, Bright 9.9%, Oxylabs 1.7%, and SERP 0.3%. So a naive read of Green is: Labrador dominates, and it isn't close.
Both are right, because they counted different things. Mohanadasan measured fetch volume, every page pulled across a tech-heavy two-day sample. Green measured the primary source, the lead citation that anchors the answer. ChatGPT fetches widely through the scraper pipes, then tends to promote a licensed or reference source to the front of the citation. Fetching is broad. Crediting is narrow, and it skews to Labrador.
That distinction is the practical lesson. Getting fetched is table stakes, and any scrapable page can clear it. Getting promoted to primary source is the harder, more valuable outcome, and the pipeline built for it favors established publishers and reference material. Mohanadasan himself flagged the caveat plainly: the structural findings, the fields and how they behave, are firm; the exact numbers and percentages are directional, drawn from small samples on single accounts.
Why your ChatGPT citation isn't stable
The uncomfortable finding from Green's study: 11.6% of prompts changed their primary search source across repeated runs. Same prompt, different day, different pipe. When the pipeline switched, the cited pages moved with it. URL overlap between runs fell from 0.273 to 0.149, roughly a 45% drop, and domain overlap fell from 0.265 to 0.155, about 42%. Roughly half your citations can turn over when the pipe changes underneath you.
It gets less stable. In a follow-up ten days later, Mohanadasan found a fifth result_source value he had never seen: bing. It was reproducible across prompts on his account, but not everyone's. He watched the same review URL (bobvila.com/reviews/best-electric-mower/) reach one user through bright and another through bing in the same week. Meanwhile oxylabs vanished from his own traffic and serp came back. OpenAI is cohort-gating these pipelines, rolling them out to some accounts and tiers and not others.
The takeaway both researchers land on: "there's no single ChatGPT visibility result to measure." If you audit your brand from one Pro account in one country, you are measuring a cohort-specific experience, not universal ChatGPT behavior. Vary the account tier and the geography before you declare a win or a crisis. This is the same measurement humility we argued for in the AI referral traffic breakdown: the channel is real, the single-number dashboards mostly aren't.
Fetched is not cited, and not every prompt gets searched
Two more findings sharpen the target. First, plenty of pages get fetched and never cited. In Mohanadasan's sample, Reddit was pulled 278 times and cited 11 times; YouTube was fetched 201 times and cited zero. Both counts are directional, from a small sample, but the pattern is instructive: the model grabs a lot of material to read, then quotes a fraction of it. A citation is a two-stage win. You have to be fetchable, then you have to be quotable once fetched, which is where clean, extractable facts beat a video or a sprawling forum thread.
Second, ChatGPT doesn't search at all for many prompts. It answers from its own weights when it decides the question isn't worth a live lookup, and Green's runs included prompts where no search fired. That is the ceiling on this entire channel: you can only be cited on the queries that trigger retrieval in the first place, which skew toward the current, the commercial, and the specific. Evergreen definitional questions the model already "knows" often produce no citation opportunity for anyone.
What this means for getting cited
The pipelines are undocumented and shifting, so you can't optimize for a specific one. You can optimize for the constant that every pipeline shares: it has to fetch and parse your page as plain text, and it gives up when it can't. That is a narrower, more testable job than "make great content."
Concrete, based on the documented behavior:
- Put facts and numbers in plain HTML. Never behind a script, a PDF, or an image. If your pricing or specs render through JavaScript, the scraper reads the page and gives up when it can't parse them. Static, crawlable facts are the price of entry.
- One strong page per claim. A single authoritative URL for a claim beats several thin pages competing for the same fetch. This is where classic SEO discipline and AI visibility line up.
- Earn coverage where the promoted sources live. Labrador favors established publishers and reference sites, and it supplies most primary citations. Third-party mentions on review sites, trade press, and Reddit feed the pipes that credit sources, not just the ones that fetch them.
- Make your own pages the answer to
site:probes. ChatGPT checks your pricing and product pages directly during its fan-out. A clean, factual/pricingpage can win the sub-query about your own product before a competitor's roundup does.
None of that is new SEO, exactly. It's the same substance-over-tricks work covered in the guide to getting cited by ChatGPT and the intro to answer engine optimization, with one added constraint the pipeline decode makes concrete: if a scraper can't read it, it doesn't exist. Write for a machine that fetches through a proxy, parses HTML, and moves on.
The honest summary is that ChatGPT's source selection is a moving target you can influence but not pin down. You can't pick your pipeline. You can make sure that whichever pipe shows up, your facts are sitting in plain text where it can grab them.
- https://www.searchenginejournal.com/how-chatgpt-actually-picks-sources-i-read-the-network-traffic-not-the-outputs/580895/
- https://suganthan.com/blog/how-chatgpt-picks-sources/
- https://suganthan.com/blog/how-chatgpt-picks-sources-part-2/
- https://searchengineland.com/chatgpt-citations-change-hidden-search-pipelines-481843
- https://brightdata.com/blog/comparison/bright-data-vs-oxylabs
- https://oxylabs.io/
