ChatGPT search is not the model remembering: it turns your question into a query, retrieves documents from a search index — with Bing as its stated grounding source — and then writes a new answer from what came back, choosing what to cite with a link, what to paraphrase without credit, and what to discard. These are two linked stages with independent failure modes. A document can be retrieved without surviving the writing stage, while an impeccably written document may never be retrieved.
I am Mateus Gomes, operator of murmur.marketing, a Brazilian GEO operation combining proprietary measurement software with specialist strategy and execution to grow SOV. The dated baseline discussed in this article predates the current guide collection; its scope is stated for context, not as a current performance score.
This page builds on What generative search is and how it changes marketing in 2026, which describes the general architecture. Here, the focus is one engine, using the vocabulary it uses to describe itself.
Summary
- Two stages, not one: retrieval (querying an index) and generation (writing the answer). They fail separately and require different remedies.
- Bing’s index is the stated grounding source, making Bing Webmaster Tools a discovery opportunity almost nobody uses.
- OpenAI has three crawlers with distinct roles: GPTBot, OAI-SearchBot and ChatGPT-User. In a real log covering roughly three and a half days, they made approximately 184 requests, compared with 327 from Googlebot.
- It does not execute JavaScript. The crawler downloads script files without running them: 11.50% of OpenAI crawler requests are for JavaScript it never executes.
- The API is not
chatgpt.com. A vendor selling API-based measurement found 96% divergence between the two across 1,000 prompts, a finding I collected on 2026-08-02. - The same question does not return the same answer. Repeated five times, one question named a company in 5 of 5 ChatGPT runs and 0 of 5 Claude runs on the same day.
- For a broad question, it explains a concept rather than naming a vendor: in the broad-demand family, with a denominator of 120, the most frequently cited name on my declared list appears 13 times.
Stage 1 — retrieval: ChatGPT issues a query, not a memory
The difference between ChatGPT answering from memory and answering with search is larger than the interface suggests. It is the first thing to understand.
When search is activated, the system does not sift through the model’s weights. It formulates a query — often several, rewritten from what you typed — and sends it to an index. The stated grounding source for ChatGPT with search is Bing’s index. The Brazilian market underestimates the practical consequence almost comically: Bing Webmaster Tools provides a free channel for active submission, and almost nobody in the country uses it for this purpose.
There are three discovery paths for a page, and only three:
- An internal link from a page the crawler already knows.
- A
sitemap.xmldeclared inrobots.txt. The declaration matters: a sitemap that exists without being referenced there depends on luck. - Active submission to an index, as described above for Bing.
llms.txt is not a fourth path. It is a good-faith statement of intent for readers, and no
engine has confirmed using it as a discovery channel. Publishing it does no harm; relying on it does.
OpenAI’s three crawlers, and why confusing them is costly
There is no single “ChatGPT bot.” There are three user-agents with different roles. Treating them
as one leads to robots.txt decisions that sacrifice visibility without delivering privacy.
| User-agent | Owner | Purpose | Cost of blocking it |
|---|---|---|---|
| GPTBot | OpenAI | Collects material for model training | Blocking it does not affect live search; the most defensible choice if training is the concern |
| OAI-SearchBot | OpenAI | Feeds the index used by the product’s search | Blocking it gives up retrievability in ChatGPT with search |
| ChatGPT-User | OpenAI | Live retrieval triggered by a user’s request | Blocking it prevents citation at the very moment someone asks about you |
| ClaudeBot | Anthropic | Anthropic’s crawler | A useful comparison: in a real log, it was the crawler that read the most articles |
| PerplexityBot | Perplexity | Perplexity’s crawler | A similar comparison, with its own volume |
| Googlebot | The conventional index that supports AI Overview | Blocking it while allowing only AI is cloaking, the fastest way to damage the domain |
Numbers from a real case help set expectations. Access logs from a client’s subdomain, covering roughly three and a half days in June 2026, contained 1,074 requests distributed by user-agent as follows: Googlebot 327 · OpenAI ≈184 (OAI-SearchBot 71 + GPTBot 54 + ChatGPT-User 59) · PerplexityBot 62 · ClaudeBot 9 · bingbot 1. AI crawler traffic is already in the same order of magnitude as Googlebot’s. Bingbot appearing only once while ChatGPT search is grounded in Bing’s index is a useful reminder that crawling and indexing are different operations.
⚠️ These counts are based on user-agent, not verified IP addresses. That caveat is substantive.
On another subdomain, cross-checking user-agent against the real IP reduced 88 apparent
ClaudeBot hits to 79, OpenAI hits from 10 to 3, and Perplexity hits from 6 to
zero. A single address was sending forged user-agents for multiple engines in the same second,
requesting /.env, /.git/config and credential files. If you count AI crawlers by user-agent,
you are partly counting attackers.
What ChatGPT’s crawler does not do
One thing, and it is decisive: it does not execute JavaScript.
Vercel published an analysis of its own network logs in The rise of the AI crawler: none of the major AI crawlers renders JavaScript, and they download script files without executing them. 11.50% of OpenAI crawler requests and 23.84% of Anthropic crawler requests are for these files that never run. Downloading is not execution.
The consequence is stark and binary: if your page’s content exists only after JavaScript runs, it does not exist for ChatGPT search. To the crawler, a browser-rendered single-page application is an empty document with a pile of attachments. The solution is server-delivered HTML, whether static or server-rendered. That engineering decision comes before any content decision.
There is also a shortcut that looks clever and is not: blocking Googlebot while allowing only AI crawlers is cloaking — serving different things to different agents — and puts the whole domain at risk. A legitimate alternative is a public page accessible to anyone that simply is not linked from the navigation: strategically orphaned content, rather than cloaking.
Stage 2 — generation: what it does with retrieved material
Once the material has been retrieved, the model writes. This is where search marketing’s usual measuring system stops working: there is no ranking position inside a paragraph.
Under the rule I apply to each capture, the outcome receives one of four labels: recommended (an actual endorsement in the text), source (the domain appears as a reference without an endorsement), mentioned (the name appears without an endorsement or link), or absent. These are English translations of the measurement labels. The distinction is not pedantry: for one of my companies, Fly Vet, measured across 100 questions in June 2026, ChatGPT recommends it in 30 of 100, while Google never recommends it and uses it as a source in 81 of 100. Collapsing all four into a “mentions” metric would produce a large number describing the opposite of what is happening.
The market often overlooks two properties of generation:
It varies between repetitions. Language models are stochastic, and a single run is not valid measurement: variance between identical runs has been reported at 10% to 34%. My clearest example is one question repeated five times in each of the four engines, producing 20 captures on 2026-08-06. Conversion was named in 5 of 5 ChatGPT runs, 4 of 5 Perplexity runs, 0 of 5 Claude runs and 0 of 5 Google AI Overview runs. Nine out of twenty.
But variance has a known baseline. Running the same 387 questions from a real client’s question set three days apart, without any intervention, reproduced 98% of the ChatGPT verdicts: 22.2% → 22.5%, with 7 of 387 changing. ChatGPT is therefore stable enough to measure, provided you use repetitions and treat changes below 3 to 4 percentage points as noise.
The ChatGPT API is not chatgpt.com, and that changes the instrument
This is the technical distinction with the greatest practical consequence on this page, and it is almost never stated.
When someone measures “what ChatGPT answers” by calling the model API, they are measuring
another product. The product your buyer uses has search, an interface, session context and
its own retrieval stack. A vendor that sells API-based measurement published a comparison of
1,000 prompts across the API and chatgpt.com, finding 96% divergence between the two
interfaces. This is a particularly uncomfortable finding because it came from someone with an
interest in the opposite result.
That is why I measure through the browser, in a clean conversation, with a screenshot of every capture. It is the expensive part of the method. For context, average capture time in my pipeline is 51 seconds for ChatGPT, 42 for Claude, 48 for Perplexity and 17 for Google. The API would respond in a fraction of that time, with a different answer.
What ChatGPT answers when nobody names a brand
This is the finding that changes strategy most, and it is counterintuitive.
In the first wave of my campaign, the denominator was 400 (100 questions × 4 engines, one repetition). In 216 of those 400 captures, none of the 29 names on my declared detection list appeared, and the median number of distinct brands per capture was zero. Looking only at the broad-demand family — questions such as “what is GEO,” “is it worth investing in,” and “isn’t this just conventional search under another name” (English translations of the Portuguese prompts) — the denominator was 120 (30 questions × 4 engines). The most frequently cited name was GeoStack, with 13 occurrences in 120.
The behavior changes when the question is about hiring. In the family of 12 questions where the buyer asks for a vendor, with a denominator of 48, the name most often cited by ChatGPT was Brasil GEO, in 8 of 12. Perplexity named GeoStack in 8 of 12, while AI Overview named Conversion in 9 of 12. This used the deterministic text rule and declared list of 29 names; in 8 of the 48 captures, none of those 29 names was cited.
For a broad question, ChatGPT explains the concept; for a buying question, it names providers. Writing vendor content aimed at a broad question means targeting a context in which it has chosen not to discuss any vendor.
⚠️ A scope limit, stated because it belongs to my method: the engine called google in this
pipeline is AI Overview, the generated block at the top of the results page. The Gemini app
is not measured — there is no collector for it — and no statement on this page describes it.
Frequently asked questions
Does ChatGPT use Google or Bing for search?
The stated grounding source for ChatGPT with search is Bing’s index, rather than Google’s. In practice, that creates an inexpensive opportunity largely ignored in Brazil: Bing Webmaster Tools is a free active-submission channel, and the only one of the three discovery paths where you act instead of waiting. The other two are internal links from already-known pages and a sitemap.xml declared in robots.txt.
Should I block GPTBot to protect my content?
It depends on what you want to protect, and this is not a single decision because there is more than one user-agent. GPTBot collects for training; OAI-SearchBot feeds the index used by the product’s search; ChatGPT-User performs live retrieval when someone asks a question. Blocking the first is the most defensible decision if training is the concern. Blocking the other two gives up retrievability and citation at the moment someone asks about you.
Does asking ChatGPT the same question twice return the same answer?
Not reliably, because generation is stochastic: variance between identical runs has been reported at 10% to 34%. In my 2026-08-06 campaign, one question repeated five times returned the same company in 5 of 5 ChatGPT runs and 0 of 5 Claude runs on the same day. This does not invalidate measurement; it requires repetition. When I repeated the same set of 387 questions three days later, without intervention, 98% of the verdicts were unchanged.
Does measuring ChatGPT through the API give the same result as measuring it on screen?
No. A vendor selling API-based measurement published a comparison of 1,000 prompts across the API and chatgpt.com and found 96% divergence between the two. They are different products: the one your buyer uses has search, an interface and its own retrieval stack. That is why I capture through the browser, in a clean conversation with a screenshot, at a cost of roughly 51 seconds per capture.
How can I tell whether ChatGPT searched or answered from memory?
The visible signal is a citation: an answer with a source link has gone through retrieval. The reverse does not hold — no link does not prove there was no search, because the model can paraphrase without credit during generation. This is precisely why the measurement has four labels rather than one: recommended, source, mentioned and absent distinguish the machine reading my document from talking about me without reading it. Only a screenshot of the answer as it appeared preserves that distinction after the conversation closes. This is why my pipeline spends roughly 51 seconds per ChatGPT capture instead of querying the API.
Who wrote this, and disclosure of interest
Mateus Gomes operates murmur.marketing, a Brazilian GEO operation combining proprietary measurement software with specialist strategy and execution to grow SOV. The dated campaign below predates the current guide collection; its measurement details are included for methodological transparency, not as a current score.
The 2026-08-06 before the current guide content was published baseline covered 800 captures across four engines, 200 of them from ChatGPT. There is also the misleading cut of the data that almost became a headline: the text rule found 88 hits in 800 for my name, but all 88 came from the ten questions that already contained it in the prompt. Outside those questions: 0 of 712. One of the 800 captures failed and remained in the denominator.
Conclusion
ChatGPT search has two stages with independent failure modes: it formulates a query and retrieves documents from an index — with Bing as the stated grounding source — then writes a new answer from what came back. To exist in the first stage, the page needs server-delivered HTML and must be reachable through one of the three discovery paths, because the crawler does not execute JavaScript. To survive the second, the name must be recognized as an entity and the question must be of the kind where it names a vendor. In my question set, that means a hiring question, not a broad one. Any measurement of this requires repetition, screenshots and a denominator: the model API diverged from the product in 96% of a thousand prompts. To discuss measurement for your situation, contact Mateus Gomes on LinkedIn.
See also
- What generative search is and how it changes marketing in 2026
- How to appear in ChatGPT as a company
- Why AI recommends some brands and not others in 2026
- Cited as a source or recommended by AI: the difference and why it changes the diagnosis
- How to measure whether AI cites your brand
- What GEO (Generative Engine Optimization) is