Two Ways ChatGPT Searches the Web: System1 is Google, System2 is Its Own Index
By Irina Saprykina, working in SEO and digital marketing since 2006.
When ChatGPT searches the web, it can use two different search systems, and they don't return the same pages. I captured ChatGPT's traffic for about 150 answers to find out what is behind each system and when ChatGPT uses which.
TL;DR
- ChatGPT's web search runs on two systems. It calls them system1 ("slow") and system2 ("fast").
- From the data I collected, system1 is external search (Google results through a third-party provider) and system2 is OpenAI's own index.
- In the regular chat, ChatGPT used system1 (Google) for only 12 of 70 questions where it searched (17%), and never on its own: always together with system2.
In the Work tab it used system1 for 14 of 19 (74%), and on its own for only one of them. - In the regular chat, system1 (Google) showed up for hard-to-find pages and sources.
In the Work tab it is used to verify specifics (prices, costs, fresh news), usually after a first system2 search. - For well-known product and software categories, the first search already named specific products, so the shortlist existed before any results came back. For new, local and niche questions, it started with a generic search.
- Blocking OAI-SearchBot in robots.txt also hides a page from ChatGPT's Google search. In my test, the blocked page disappeared from the Google results ChatGPT received, although it was still in Google, and unblocking it brought it back.
- You can check which system answered you, both by asking ChatGPT and by looking at the results it received.
This is based on dozens of prompts, not thousands. I treat it as solid observations backed by data, not as statistics.
In this article I show why system1 is Google and system2 is OpenAI's own index, and how to tell them apart. When ChatGPT uses which system and what that means for optimization is in the next article, Google or ChatGPT's Own Index: When ChatGPT Uses Which.
On this page
- What was Already Known
- How I Found System1 and System2
- How I Collected the Data
- Evidence: What is Behind System1 and System2
- Other Observations
- What It Means for Your Site
- How to Check Which System Answered You
- Limitations
- Method
- Sources
What was Already Known
- A
result_sourcefield showed where each result came from. In ChatGPT's traffic it had four values:labrador,bright,oxylabsandserp. Mark Williams-Cook found three of them and Suganthan Mohanadasan the fourth, and Suganthan described all four in June 2026. The field was last seen on July 21. brightreturns Google results, and it is almost certainly Bright Data. Synscribe found Bright Data as the layer between ChatGPT and the search engine behind it, and RESONEO showed by replaying the same queries thatbrightreturns Google results (Suganthan and Peec AI point to Bright Data too).oxylabsbrings Google results for news (RESONEO, Peec AI).- RESONEO mapped the result formats and argued
labradoris OpenAI's own index. They:- described the formats:
labradorkeeps full titles, cuts snippets at 202 characters starting from the page's H1, and its text matches neither Google nor Bing; Google results come with titles cut at about 60 characters and snippets of ~159; - concluded from this, and from titles longer than Bing allows, that
labradoris OpenAI's own index; outlets without content deals get the same format, so in their view it is not a licensed catalog either; - once the field was gone, suggested recognizing an engine "by the shape of what it delivers";
- in an August update, found that paid thinking still got 75% of its URLs from Google, while the free Think mode took about three quarters from
labrador.
- described the formats:
- A second source came to the same conclusion about
labrador. Peec AI (Tomek Rudzki) also identified it as OpenAI's own index, pointing to Nick Turley's testimony in Google's antitrust trial that OpenAI began building its own search index in 2023. - OpenAI's index is fed by OAI-SearchBot and partner feeds. Jérôme Salomon (Oncrawl), in RESONEO's study, found that snippets in OpenAI's index follow OAI-SearchBot's visits within a few days.
- The names system1 and system2 were seen before, but, as far as I've seen, not linked to the engines behind them. RESONEO found the flags
has_system1_search_queryandhas_system2_search_queryin January 2026 and read them, after Kahneman, as fast (System 1) and deep (System 2) search. Suganthan saw asystem1_search_querycall in August, just before ChatGPT switched to a compact call format (fast|query|30|domain). - Indirect evidence already pointed to Google. Mark Williams-Cook noted that Reddit's share of ChatGPT citations fell from about 15% to under 2% right after Google removed the
num=100parameter in September 2025.
Links are in Sources.
How I Found System1 and System2
While going through ChatGPT's network data, I saw a line about connector_openai_search_service and asked ChatGPT what it was. It said it was "the web-search tool available to me in this chat", with two search options exposed by the tool: system1_search_query and system2_search_query.
In the regular chat they are called slow and fast: system1 is the slow one.
It also described what its instructions say about them. I asked the same question in the regular chat (GPT-5.6 Instant and Thinking) and in the Work tab (GPT-6 Astra and Luna, GPT-6.1 Sol). The models within each tab gave the same rules, some more openly than others. Two of the Work models quoted their instructions word for word:
| Regular chat | Work tab | |
|---|---|---|
| Names | slow = system1, fast = system2 |
system1, system2 |
| system2 | "a good default for broad exploration", the "cheaper search system" | "may have coverage gaps" |
| system1 | when fast is unlikely to find it: "harder-to-find" information or "higher-confidence" results | "to verify and fill gaps" when coverage is incomplete, results conflict, authoritative sources are needed or the query is high-stakes |
| Fresh topics | a tighter recency window (1, 7 or 30 days) | "news, recent changes, sports, prices, latest/today/this week...": "use system1_search_query with recency" |
| Cost | fast is "cheaper" | system1 "cost[s] much more" |
| Queries per call | more with fast, fewer with slow | at most 4 per call; fewer with system1 |
| Number of results | a short/medium/long setting, described as response length | response_length "to control the number of results returned"; medium or long required for 4 queries |
| Call format | slow|query|recency|domains |
JSON: query, domains, recency |
| Default recency | 3650 days | not stated |
| Both systems in one call | not allowed | not allowed |
site: |
not described; a separate domain filter instead | same |
What is behind each system, it could not say. That is what I tried to find out.
This article is about web search only. ChatGPT's search tool can do more than search the web. Besides the web search calls (system1 and system2), it has separate calls for products (product | ...), local businesses, images and finance, plus calls to open a page or find text on it. Its results come in several types too: web pages, news, Reddit threads, YouTube videos and academic papers. News results have a format of their own: shorter snippets (about 140 characters) with a date and usually a thumbnail. Everything below, including the format table, is about web search and its web results.
How I Collected the Data
I captured ChatGPT's network traffic in my own browser: 151 answers from September 25 to October 4, 2026, in the regular chat and in the Work tab, from one ChatGPT Plus account located in Serbia. After most answers I asked ChatGPT which searches it ran and which system each used, and compared its answer with the captured data. I also checked the results against live Google and Bing results and ran a robots.txt test with pages on my own site. The full method is at the end.
Evidence: What is Behind System1 and System2
The two systems return web results in clearly different formats:
| Signal | system1 | system2 |
|---|---|---|
| Snippet length | median ~155 characters | Regular chat: ~202 characters, cut with "..." (99% of snippets) Work tab: longer passages (median ~280) |
| Snippet start | often a date: "Mar 19, 2026 — " (8-10%) | Regular chat: usually a heading in CAPS: the H1 in about half of the snippets, another heading (H2-H5) in about a fifth |
| Snippet structure | one Google-style snippet | Regular chat: one passage, usually a heading and the text right after it, cut at 202 characters Work tab: several passages from the page joined with " ... " (87% of snippets), headings kept as Markdown ("## ...") instead of CAPS |
| Snippet end | "...Read more" (21-24%) | never "Read more" |
| Titles | cut with "..." (18-21%) | full |
| Thumbnails | 36-49% of results | almost never |
| Results for one query | 7 to 10, usually 10: one Google results page | Regular chat: 4 to 12, 8 on average Work tab: 3 to 24, 15 on average |
The system1 format is the same in the regular chat and in the Work tab. In the Work tab, five different model settings got the same formats from both systems, so the format comes from the tab's search tool, not the model.
ChatGPT usually sends several search queries at once, in one call, and gets back one combined list of results for all of them. The "one query" row above comes from the calls that had just one query (14 for system1, 17 for system2).
Here is how the list grows with more queries in a call. In each cell, the first line is the average number of web results per call, with the number of calls I saw in brackets; the second line is the average per query:
| Queries in one call | 1 | 2 | 3 | 4 | 5 or more |
|---|---|---|---|---|---|
| system1, regular chat | 9 (3 calls) 9.3 per query |
16 (4 calls) 8.0 per query |
13 (13 calls) 4.4 per query |
21 (11 calls) 5.1 per query |
33 (4 calls) 5.1 per query |
| system1, Work tab | 10 (11 calls) 9.7 per query |
16 (18 calls) 7.9 per query |
22 (7 calls) 7.4 per query |
38 (2 calls) 9.4 per query |
- |
| system2, regular chat | 8 (7 calls) 8.0 per query |
8 (18 calls) 3.9 per query |
9 (21 calls) 3.1 per query |
10 (21 calls) 2.4 per query |
15 (22 calls) 2.5 per query |
| system2, Work tab | 15 (10 calls) 14.6 per query |
27 (14 calls) 13.6 per query |
35 (8 calls) 11.8 per query |
53 (7 calls) 13.2 per query |
- |
Some cells rest on only 2-4 calls, so treat them as rough. The cells with more calls are more reliable.
What the table shows:
- Work tab: the number of results per query stays about the same as queries are added: about 12-15 for system2 and 7-10 for system1.
- Regular chat, system2: 8-10 results per call whether it has one query or four, so the share per query drops from 8 to about 2.5, and only a handful of pages compete for a place in the answer.
- Regular chat, system1: grows unevenly (fewer results for 3 queries than for 2), probably because some results are filtered out, for example by the robots.txt rule (see the robots.txt test).
System1 is Google
1. It Looks Like a Google Results Page
System1 results have the typical marks of a Google results page:
- "Read more", a date at the start and cut titles (see the table above): this is how Google shows its results.
- Snippet and title lengths match RESONEO's data for Google results. Their numbers for Google results through
bright(snippets of ~159 characters, titles cut at about 60) are close to my system1 numbers. - Some system1 URLs carry Google's tracking parameter. The parameter is
srsltid: 83 of 2,942 system1 web results, 1 of 6,295 system2 web results. It appears on shop and brand sites only, so it is a supporting signal, not a rule. RESONEO also usedsrsltidas a sign of Google Shopping data.
2. The URLs Match Google's Results for the Same Query
To check how much the URLs in system1's results overlap with Google's results, I ran the exact queries that ChatGPT sent to system1 through Google myself, within one to two hours after the answer. I did it for 11 answers, not for all my data: 5 questions in the regular chat and the same 5 in the Work tab, 115 queries and 650 results. I used two providers, Bright Data and SerpApi, and searched from Serbia (my location, so ChatGPT's results can be localized to it).
-
Regular chat (6 answers, because one question was asked twice; 95 queries, 489 results), checked with Bright Data:
- 67% of system1's results were in Google's top 10 for the exact query ChatGPT wrote (SerpApi, the second provider, gave 62%). For one of the questions, the price of a Samsung phone, it was 100% (95% with SerpApi);
- +6% were in the top 10 when I added the recency window or domain filter ChatGPT reported for that query;
- +2.5% were in positions 11-20;
- +3% came from "similar queries": without quotes, a single phrase or a single word.
So about 78% were found in Google with small changes to the search.
The other 22% I didn't find, but they look just like the Google results I did find: about 150-character snippets, cut titles, no 202-character cut. So they are most likely Google results too, only pulled under slightly different conditions.
Some of these 22% may also come from queries that were changed before they reached Google. I've seen this in other tests, so far only with
site:queries on my own site:site:datairi.com DT-0417lost the site and returned pages about the number "0417", andsite:datairi.com DT-0931lost the code and returned eight pages of my site, while Google had exactly one result for each (more in How a Search Call Works). -
Work tab (the same 5 questions; 20 queries, 161 results):
- 63% were in Google's top 10 for the exact query, with or without the filters ChatGPT reported;
- +9% were in positions 11-20: the Work tab takes deeper results;
- +4% came from small changes: a single word of the query, or
site:with a colon instead of the dot the Work tab shows.
So about 76% were found, and 24% were not.
Later I ran the same check on 7 more answers (UK shop prices, a B2B question and tech news; 51 queries, 291 results). Without the news questions, about the same share was found: 75%. For news, almost nothing matched an hour or two later, neither in the web results nor in Google News, because those results turn over within hours.
Besides the exact query, a few settings helped find more of the results in Google's top 10:
- No language setting: Google results without a language setting found another 8% in the later check.
- The country the question is about: for questions about UK shops, UK results found another 5%.
- ChatGPT's recency and domain filters: the filters ChatGPT reported found a few more results (+6% in the regular chat), but on their own they matched much worse, as if they are not always applied to the search (more in How a Search Call Works).
- Interface language and device: a Serbian interface language and mobile results added under 1% each.
3. The Text is Copied from Google's Results Page
URLs can overlap by chance, so I also compared the text. In the same-day check from point 2, for the system1 results I found in Google's top 10 for the exact query:
- About 80% had the same text as Google's snippet: 77% in the regular chat, 83% in the Work tab. Often it is Google's text word for word, down to Google's own formatting, for example: "22 Sept 2026 — WordPress 7.1.2 Release. This security release features a fix...Read more". Sometimes ChatGPT's copy just drops the date at the start or the "Read more" at the end.
- The other ~20% showed a different part of the same page. Google picks the excerpt for each query, and one search call often has several queries, so ChatGPT's snippet may come from the results page of another query in the same call.
Bing doesn't match like this. In a check with Google and Bing results pulled the same day, all 5 system1 results that also appeared on Google's page had Google's exact snippet, against 1 of 3 on Bing. And system2 snippets almost never matched Google's (see point 3 for system2).
This is the strongest evidence I have that system1 is Google's results page.
I also compared the snippets with the pages' own meta descriptions. A system1 snippet was the page's meta description in only 25% of cases (149 pages checked). So the match with Google can't be explained by both of them simply showing the meta description: most system1 snippets are excerpts from the page text, and they still match Google's.
System2 is OpenAI's Own Index
1. A Page that OpenAI's Crawler had Seen, but Bing Hadn't
One of my hypotheses was that system2 is Bing: some of its URLs carry Microsoft's msockid tracking parameter (see point 3 below). To test it, I asked ChatGPT to find an article on my site, datairi.com. It found it and said it used system2. My server logs showed that the page had been fetched by OAI-SearchBot (OpenAI's search crawler) a day after publishing, and never by Bingbot. So, at least for this page, system2 did not get it from Bing. This fits what Jérôme Salomon measured: OpenAI's index is fed by OAI-SearchBot.
Googlebot had fetched the page too, so this test doesn't rule out Google. What speaks against Google is in point 3 below: system2's results don't follow Google's results for the same query, and its snippets are almost never Google's text.
2. The Same Snippets as labrador (Most Likely OpenAI's Own Index)
While the result_source field was still visible, RESONEO saw this format in results marked labrador: snippets cut at 202 characters and anchored on the page's H1. System2's snippets in the regular chat have exactly this format.
labrador was identified as OpenAI's own index (see What was Already Known):
labrador's text matches neither Google nor Bing (RESONEO);labrador's copies follow OAI-SearchBot's visits within a few days (Jérôme Salomon, Oncrawl);- The head of ChatGPT testified that OpenAI has been building its own index since 2023 (Peec AI).
What else I saw in these snippets:
- The same page gets a different snippet for different searches. When the same page came back for different searches within one answer, the snippet was different every time (7 of 7). It looks like the page is split into passages, and the one that fits the search is returned.
- A snippet usually starts at a heading of the page. I found the text of 127 random system2 snippets on the pages themselves. 54% of them started with the H1, 19% with another heading (H2-H5), 24% at the start of another block (often breadcrumbs right before the H1) and 3% in the middle of a text. When a snippet started at a later heading, that heading often matched the query, but the sample is too small to say it is picked by meaning.
- The page text is reformatted. Headings come in CAPS although they are in normal case on the page, list items start with "* ", and images appear as "Image: alt text".
- In the Work tab, the snippets are longer. There, system2 returns longer passages from the same pages, joined with " ... ", with headings as Markdown.
3. Not Google's Text, and Not Just Bing
- System2 snippets are not Google's. A snippet can only be compared when the same page is also on Google's results page for the same query. In a same-day check there were 47 such system2 results, and only 4 had Google's snippet (9%): Work-tab passages that happened to be the page's meta description, which Google shows too. For system1, the same comparison found Google's text in about 80% of cases.
- System2 snippets are not the pages' meta descriptions either. A system2 snippet was the page's meta description in only 1% of cases (71 pages checked), against 25% for system1. So system2 doesn't just take the description the page gives itself: it quotes the page text.
- System2's URLs don't follow Google's results. In the same check (891 system2 results, searched from Serbia, my location), only about 7% of system2's results were in Google's top 20 for the same query. This also holds for the system2 pages that ChatGPT then cited in its answers, the ones it found most useful: only about a quarter of them were in Google's top 20 for the query that found them (10 of 42 in the regular chat, 8 of 41 in the Work tab). For comparison, about 80% of system1's results were in Google's top 10 in the same-day checks.
- System2's results are localized to my country. System2's results matched Bing better when Bing searched from Serbia: 9% of them were in Bing's top 20 for the same query, against 4% when Bing searched from the US (for all questions except those about Serbia). Google from Serbia matched 7%. So OpenAI's own index seems to return results localized to the user's country, a bit closer to Bing's than to Google's.
- Some system2 URLs carry Microsoft's tracking parameter. The parameter is
msockid: 172 of 6,295 system2 web results, 0 of 2,942 system1 web results. The same Adobe page appeared 4 times in the index with differentmsockidvalues, so tracking parameters are not removed.
My reading: OpenAI's own index partly overlaps with Bing, maybe because some of its URLs come from Microsoft sources, but the text comes from OpenAI's own copy of the page.
4. System2's Crawl Dates Follow OAI-SearchBot
System2 returns a "Crawled" date with its results, and ChatGPT can quote it if I ask for it in the same prompt as the search. For my site I compared these dates with my server logs on October 6. They follow the visits of OAI-SearchBot, OpenAI's search crawler:
- my GA4 article: "Crawled: 2 weeks ago", OAI-SearchBot's visit on September 17;
- my homepage: "Crawled: 5 days ago", its visit on September 30;
- another article: "Crawled: 3 days ago", its visit on October 3.
ChatGPT-User had fetched all three pages that same morning, and none of the dates changed. A page of my site that OAI-SearchBot never crawled wasn't found by system2 at all, although ChatGPT-User had fetched it twice. And not every visit reaches the index right away: OAI-SearchBot visited the homepage and that article again four hours before my check, and neither visit was reflected 14 hours later. The homepage still showed its older copy after 29 hours, while a later visit to the article showed up within 13.5 hours. Jérôme Salomon saw a similar delay: the served snippet follows OAI-SearchBot's visit within a few days.
5. A Test in Progress
To confirm this directly, I'm running one more test: a page on my site that only OpenAI's crawlers are allowed to read. Google and Bing are blocked in robots.txt, so they can't see its text. If ChatGPT's fast search (system2) returns text from this page, it can only come from OpenAI's own index.
So far, one visit by ChatGPT-User was not enough: a day later, system2 still couldn't find the page. Now I'm waiting for OAI-SearchBot to crawl it. I'll add the result here in the coming days.
Other Observations
A Page Blocked for OAI-SearchBot also Disappears from System1
I published two test pages on my site, both in Google. One was blocked in robots.txt for OAI-SearchBot only, the other was open to all bots. When ChatGPT searched for them with system1 (Google), the open page came back, and the blocked one never did, although Google ranked it first for the same queries. Then I swapped the rules, and the result swapped too: the newly opened page appeared, and the newly blocked one disappeared. When a page did come back, ChatGPT-User fetched it from my site in the same second.
So the robots.txt rule for OAI-SearchBot decides whether a Google result reaches ChatGPT through system1. One exception I can't explain yet: hjnews.com, which blocks OAI-SearchBot completely, still came through once.
How OpenAI Stores Pages
OpenAI keeps its own copies of pages, with its own crawl dates:
- System1 sometimes reuses OpenAI's stored copies. System1 takes its list of URLs from Google and usually shows Google's snippet.
- About 7% of results in the regular chat. They came with the stored 202-character text from OpenAI's index instead of Google's snippet.
- Not a rule for every page OpenAI has. 211 system1 results were pages I also saw in system2's results, so they are surely in OpenAI's index, and they still came with Google's snippet.
- Sometimes a whole search comes from stored copies. In the Work tab, twice, every result of a system1 search came from stored copies (marked "Crawled: 3 weeks ago" and so on), with no Google snippets at all. By its format, such a search can't be told apart from a system2 search. That these were system1 searches I know only from ChatGPT: once it quoted the raw call from its tool history, once it just said so. Both searches were limited to adobe.com with the domain filter.
- An open question: is this only a matter of time? If system1 starts showing OpenAI's stored text for every page OpenAI has, the format will no longer tell the two systems apart.
- In the regular chat, a system1 search can fetch its result pages live. Three times in my tests, ChatGPT-User downloaded the pages of my site that a system1 search returned, in the same second as the search, without ChatGPT opening anything. When I repeated the same search three minutes later, it didn't fetch them again.
In the Work tab, the same search fetched nothing and showed the older copies. - ChatGPT-User refreshes system1's copies, but not system2's index.
- Where the "Crawled" label is visible: each result comes with one. In the regular chat, ChatGPT can quote it only in the same answer (afterwards the results are no longer visible to it); in the Work tab it can also read its raw tool responses later.
- System1's copies follow ChatGPT-User: for my site, every label matched the last visit by ChatGPT-User in my server logs. A page marked "Crawled: 2 days ago" became "Crawled: today" three minutes after I asked ChatGPT in another chat to open it, while a control page stayed at "2 days ago".
- System2's copies follow OAI-SearchBot: see System2's Crawl Dates Follow OAI-SearchBot.
- So the two systems keep separate copies. That fits my test page: opened by ChatGPT-User and never crawled by OAI-SearchBot, it did not come up in system2 a day later (see A Test in Progress).
How a Search Call Works
- What a search call looks like. Once ChatGPT quoted the raw calls from its tool history:
fast | Dyson V15 Detect Absolute Copper Edition UK price | recency 7 days | domain dyson.co.uk. So each search carries the query, an optional recency window in days and an optional domain filter, separately from the query text. This is the same format Suganthan Mohanadasan captured in August. Aproduct | ...call is a separate product search, neither system1 nor system2. - Queries with
site:can be rewritten. The tool's instructions describe only a separate domain filter, andsite:inside the query text is not mentioned. In my tests with my own pages, system1 queries withoutsite:reached Google unchanged, and queries with it did not:site:datairi.com DT-0417came back as results about the number "0417", andsite:datairi.com DT-0931as eight pages of my site, while Google had exactly one result for each. Sometimes the tool says so ("The following search queries were not executed exactly as provided"), sometimes it doesn't. - The recency window mostly doesn't work as Google's date filter. ChatGPT's search calls can also carry a recency window in days.
- Default window: in the regular chat, ChatGPT said the tool sets 3650 days when none is given; in the Work tab it said no default is documented.
- Checked against Google's date filter: when I searched Google with this window as a date filter, only 27% of system1's results were in the top 10 (24% with SerpApi), against 67% without the filter, and 0% for a product question with a 30-day window. So ChatGPT's queries don't reach Google with this filter, at least not as a rule.
- A few results were found only with the filter: another 6% (see The URLs Match Google's Results).
- The number of results depends on a setting. In the Work tab the model sets a length for each search call (short, medium or long), which the instructions say controls "the number of results returned". There, system2 calls returned far more results than in the regular chat (see the tables at the start of Evidence), and system1 more often reached Google's second page (positions 11-20).
What It Means for Your Site
Be in OpenAI's own index. It answers most searches in the regular chat. Let OAI-SearchBot crawl you. Blocking OAI-SearchBot does not leave you a way in through Google either: in my test, a page blocked for it was also removed from ChatGPT's Google-based results, and unblocking it brought it back.
How to check if your page is in OpenAI's own index. Ask in a new chat:
Use only the fast search (system2) for this. Search for [your brand] [the title of your page] and list every URL the search returned. Do not open any pages. In this same answer, for every result quote verbatim all metadata the search tool returned with it, including any "Crawled" label.
If your page shows up, it is in the index, and its "Crawled" date shows when OAI-SearchBot's last visit reached the index. Use words from the page title: a bare site:yourdomain.com query returned nothing in my tests. If the page doesn't show up even for its own title, it is probably not in the index yet: check your robots.txt and your server logs for OAI-SearchBot's visits.
How to Check Which System Answered You
Right after an answer, ask in the same chat:
Which searches did you run, and was each one system1 or system2? Verify it with the actual tool history for that answer.
If the answer is clearly wrong, reply: "I can see that you are wrong". It usually re-checks and corrects itself.
To push it towards system1, ask it to "double check" its answer, or say "use system1 rather than system2 for the web search".
To check without asking ChatGPT, look at the search results it received. They are in the saved conversation, which you can see in your browser's developer tools: press F12, open the Network tab, reload the chat, find the request conversation/<chat id> and search its response for search_result_groups (the copy in the final answer has the snippets). Then:
- 202-character snippets starting with a heading in capitals: system2 (in the Work tab: longer passages joined with " ... ");
- "Read more" at the end, a date at the start, cut titles: system1.
Limitations
- Dozens of prompts, not thousands. One ChatGPT Plus account, located in Serbia. The Work tab sample is small (19 questions, 36 answers).
- My way of telling the systems apart is a set of signals, not an official label. At the answer level it agreed with ChatGPT's own report in 113 of 122 answers (did it use system1 or not). Of the 9 differences, one self-report was cut off, four had searches with empty snippets so the rule could not decide, in one the system1 searches left no results at all, and three show the rule's blind spot: sometimes a system1 search returns only stored copies from OpenAI's index, and then it looks exactly like system2 (in two of them, system1 searches limited to adobe.com, the Work tab's raw tool response marked the pages "Crawled", see How OpenAI Stores Pages). So my system2 counts are an upper bound.
- Some system1 queries are rewritten before they reach Google, but which ones and how is unknown. In same-day checks most of them reached Google unchanged, while
site:queries were rewritten in different ways, and only my own test pages let me check this properly. - ChatGPT's own reports about its searches are unreliable. In 4 answers it said it had not searched at all, while the captures show it had. It also skipped whole batches of queries and listed them in the wrong order.
- Everything can change within hours. This describes late September and early October 2026.
Method
- I captured ChatGPT's network traffic in my own browser: the live answer stream and the saved conversation. FanoutFox helped me double-check what is there. Fan-out queries are visible only in the live stream, and usually only for the first batch of searches.
- 151 answers, September 25 to October 4, 2026: 79 in the regular chat without any instruction about the search system (74 different questions), 17 in the regular chat where I asked it to use the slow search, system1 (15 questions), 36 in the Work tab without such an instruction (19 questions; two of them asked to five model settings), 9 in the Work tab where I asked for system1, and 10 where I asked about system1 itself or the search instructions. When I asked the same question more than once in the same tab, the counts of how often each system was used take only the first answer. 682 search calls, 11,035 search results.
- One ChatGPT Plus account, located in Serbia. Memory on for most answers (101 of 151); 43 in temporary chats without personalization.
- Models: the regular chat answers came from GPT-5.6 Thinking (
gpt-5-6-thinkingin the traffic), except one question about the instructions asked in Instant.
The Work tab switches to other models (gpt-6-astra-wmin most of my Work captures;gpt-6-luna-wmandgpt-6.1-sol-wmin a model check and for questions about their instructions) with their own search instructions. - After most answers I asked ChatGPT which searches it ran and which system each used, and compared its answer with the captured data.
Sources
- RESONEO, What ChatGPT pulls, what it shows, what it cites
- RESONEO, ChatGPT Search Architecture
- RESONEO and Jérôme Salomon (Oncrawl), crossed findings on OpenAI's index and cache
- Tomek Rudzki (Peec AI), ChatGPT built its own search index
- Mark Williams-Cook, ChatGPT is secretly Googling things
- Synscribe, The search engine powering ChatGPT is Bright Data
- Suganthan Mohanadasan, How ChatGPT actually picks sources (June 24, 2026)
- Suganthan Mohanadasan, ChatGPT's new search language
- Suganthan Mohanadasan, FanoutFox
- OpenAI, Overview of OpenAI crawlers (OAI-SearchBot, ChatGPT-User, GPTBot)

