ChatGPT Source Selection Is Mechanical — Build for It
TL;DR: ChatGPT routes every query through one of six internal buckets and pulls sources from four labeled pipelines — serp, labrador, bright, and oxylabs — before your page ever enters the picture. If your key facts sit behind JavaScript or inside images, the model gives up and cites a third party instead. This changes how operators in high-CAC verticals should structure content, pricing pages, and third-party coverage strategies.
The Four Pipelines Feeding ChatGPT’s Answers
A researcher spent several days reading raw network traffic from their own ChatGPT Pro account — not the polished output, but the JSON the engine sends to the browser after decryption. Across roughly 1,240 source records, a field called result_source appears on every web result the engine pulls. It takes four values, and each one tells you something actionable.
serp is the open web baseline, mostly news sources like Yahoo and StreetInsider. labrador is a licensed allowlist of established publishers: Reuters, the WSJ, the Guardian, Wikipedia, arXiv. Snippets from labrador run to about 1,080 characters — full article extracts, not summaries. bright is Bright Data, a commercial web scraper that dominates shopping, finance, weather, and commercial queries. oxylabs is a rival scraper, skewed toward regional and local press.
The licensed labrador tier includes publishers who have signed content deals with OpenAI. You are not getting onto that list by publishing more blog posts. The practical playing field for most operators is the scraped tier — bright and oxylabs — which means being cleanly and completely scrapable is not optional. Every important number or claim your brand owns needs to sit in plain HTML text. Not inside a PDF. Not rendered by a script. Not baked into an image.
For operators running iGaming acquisition programs or high-frequency trading promotions, this is the equivalent of knowing which ad exchange carries your inventory — you build for the pipes that actually deliver.
Six Query Buckets — and the One That Locks You Out Entirely
Before ChatGPT searches anything, it files your query into one of six internal buckets stored in a field called turn_use_case: instant search, shopping, text, local, thinking, and image generation. The bucket determines whether the engine searches the web at all.
The dangerous bucket is text. When ChatGPT classifies a query as text, it answers from training data and never opens a network connection. How-to questions, definitional queries, coding tasks, and translation requests all land here. So do some queries that feel current — “latest treatment guidelines for type 2 diabetes” was answered from training in this researcher’s tests, with no web fetch at all.
This matters to operators more than most SEOs realize. If your target keyword is a how-to or a definitional phrase, no amount of on-page optimization will get you cited — the model never looks. Spending budget on content for those queries is wasted unless you are playing a long game of building training data inclusion through Common Crawl visibility.
The thinking bucket is the opposite extreme. A single comparative product query in thinking mode triggered 15 to 40 sub-queries, including direct site: probes at vendor pricing pages, price guesses followed by confirmation searches, and recursive discovery of competitors the user never named. If you operate in a comparison-heavy category — brokers, software, legal services — the engine is actively reading your pricing page and checking it against third-party data. Before you spend on content, run a full content and technical audit to confirm the queries you’re targeting actually trigger a web fetch.
Fetched, Cited, and Mentioned Are Three Different Wins
This is the distinction most operators collapse into one, and getting it wrong wastes budget. Three outcomes are possible when ChatGPT encounters a source.
Fetched means the model pulled your page into context via the result_source pipeline. The reader never sees this. Cited means your URL is attached as a footnote behind a specific sentence in the answer. Mentioned means your brand name appears in the reply — often as a chip linking to your site — but it is not the source of any specific claim.
Reddit was fetched 278 times and cited 11 times in the researcher’s sample. YouTube was fetched 201 times and cited zero times. The reason is mechanical: a citation has to bind to text the model actually pulled. YouTube pages surface metadata, not transcripts. Reddit threads are full text. The implication for operators is direct — video content does not earn citations in ChatGPT, regardless of traffic volume. Text-based editorial, review-site content, and community discussion do.
Domain deduplication also matters: 20 thin pages from your site collapse into one result. One authoritative page per claim beats a stack of shallow ones. Operators running crypto exchange and token launch campaigns often flood the zone with thin landing pages — that strategy actively hurts citation potential in LLM-driven discovery.
What This Means for High-CAC Vertical Operators
Forex brokers, legal intake operations, crypto platforms, and iGaming operators all share one structural problem: they compete in categories where the model treats them as high-stakes commercial queries, triggers the thinking or instant-search bucket, and then reads their pages forensically for pricing and facts before checking third parties for opinions.
The thinking model’s own chain of reasoning — logged in plain text in the conversation — is explicit about this. For one SaaS pricing comparison, it found an official pricing page, decided it was current, and chose to cite it. For two others, it noted the pricing “doesn’t show up directly, possibly hidden with JavaScript,” fell back to G2, and cited that instead. The model wanted the brand’s own numbers. JavaScript got in the way, and a review platform got the citation.
For a forex broker or legal intake operator, this is a live revenue problem. If your fee structure, minimum deposit, or case evaluation process is loaded dynamically, ChatGPT will cite a competitor’s description of your product, or a review site that may be outdated. Plain HTML is not a technical nicety — it is a citation prerequisite. Operators investing in forex lead generation or law firm intake pipelines should audit every key fact page against this standard now.
Third-party coverage is the other lever. You cannot cite yourself — the model sources claims about you from review sites, Reddit threads, and comparison content. Operators who have invested in managed performance programs need to extend that investment to PR, G2 reviews, and structured presence on the sites the scrapers actually reach. Paid media alone does not move your citation rate in LLM answers.
Local Results Are Capped at Two
A config value in the traffic sets local_results_limit to 2. Ask ChatGPT for the best anything near a location and it returns two results. Not a top 10. Not a top 5. Two.
For operators with a local component — personal injury law firms targeting a metro, CDL recruiters covering a region — this means the margin for error is zero. You are either in the top two results the model surfaces for a local query, or you are not in the answer at all. Regional CDL recruitment campaigns that depend on local brand presence need to treat LLM local rankings with the same urgency as Google Local Pack positions. The structural work is similar: citations from local press, consistent entity data, and text-based review content that the scrapers can pull cleanly.
This also underscores why precise geographic audience segmentation matters more than ever. If two result slots exist per location query, operators who dominate third-party citations in a specific metro claim both by default. Broad national content strategies do not compete here — hyper-local editorial and review coverage do.
What You Cannot See — and What That Means
No ranking formula appears in the browser-side traffic. Domain authority scores, trust weights, and ranking algorithms stay on OpenAI’s servers. Anyone selling a “ChatGPT ranking factor” list is working from inference, not observation. The model’s own chain of thought — readable in the thinking bucket’s saved reasoning — is the closest thing to a sourcing explanation, and it is described in plain language: current sources preferred, official pages preferred for facts, third parties preferred for opinions, and JavaScript-hidden data simply skipped.
Personalization is also real. The researcher caught ChatGPT pulling from a user’s own past conversations and Gmail as personal_sources on one query. Two users asking the same question get different answers based on private context that no operator can optimize for. This is one reason third-party visibility scores vary — they are measuring a distribution, not a fixed state.
The structural findings from this analysis are solid: the pipelines exist, the buckets are real, the citation-versus-fetch gap is mechanical. The percentages are directional only — they come from a SaaS-heavy sample and need broader validation. Build your content architecture around the structure, not the specific numbers. Treat your pricing pages, spec sheets, and key fact pages as machine-readable documents first. Earn third-party citations on the sites the scrapers reach. And check whether your target queries actually trigger a web search before you build content for them.
Originally reported by Search Engine Journal, June 2026.
Get a playbook for your vertical
Forex lead gen
FTD acquisition, depositor funnels, regulated broker campaigns across Tier 1 & Tier 2 GEOs.
Explore → CryptoCrypto & Web3
Token launches, exchange user acquisition, DeFi protocol growth. Compliant campaigns only.
Explore → LegalLaw firm marketing
Mass tort, personal injury, immigration. High-intent lead gen for US law firms with $50K+/mo budgets.
Explore →