This week I’ve read a half-truth about ChatGPT-User for the 20th time, so I have no choice but to write about it.
What the official OpenAI documentation says about ChatGPT-User
OpenAI also uses ChatGPT-User for certain user actions in ChatGPT and Custom GPTs. When users ask ChatGPT or a CustomGPT a question, it may visit a web page with a ChatGPT-User agent. ChatGPT users may also interact with external applications via GPT Actions. ChatGPT-User is not used for crawling the web in an automatic fashion. Because these actions are initiated by a user, robots.txt rules may not apply. ChatGPT-User is not used to determine whether content may appear in Search.
As you see, it is quite vague: “certain user actions”, “may visit”. Typical for a big company: precise wording opens a way to PR problems and lawsuits so corporations are very careful.
What GEOs think about ChatGPT-User
If you read enough AI-visibility playbooks or pitch decks for the latest $299/month GEO dashboards, you’ll run into the same canonical story about how ChatGPT-User works.
The claims:
It’s tied to citation: whenever ChatGPT cites your page in a search conversation, ChatGPT-User visits the URL in real time to pull the content.
It’s strictly user-triggered: unlike background crawlers, this bot only shows up when a human prompts ChatGPT.
It’s the proxy for buying intent: every ChatGPT-User hit in your server logs represents an active conversation where your brand is being cited, making it the most commercially valuable OpenAI bot to track.
No log tracking = flying blind: If you aren’t monitoring ChatGPT-User requests, your actual citation volume in ChatGPT is going completely unmeasured.
It is possible that all of these were true in the past, but right now all of them are either wrong or incomplete and oversimplified. More importantly, they nudge you to actions which don’t bring any value now.
What data shows about ChatGPT-User
It’s ridiculously easy to test the bot’s behavior and debunk 90% of misinterpretations. I ran a prompt which forces it to open and read my dataset on advertisement spend on io.trudov.com:
Then I studied the network data (same source I used for studying the second layer fan-outs in the previous write-up), checking for "ref_type":"view" and comparing them with the actual access.log on my site. As expected, I found log entries with the same URLs and with the ChatGPT-User agent. Now we know how to spot ChatGPT-User’s activity in network data. To visualize the process you can use my ChatGPT SSE dissector tool.
Observation 1: ChatGPT web app network data rarely shows reading pages, despite many citations
I studied network data in detail on 32 ChatGPT web app sessions (GPT-6, 10 extended thinking, 22 medium, different commercial-oriented prompts). Here are the stats:
2356 pages surfaced in search results, 232 citations, only 11 pages opened. The app fetched pages only in 2 sessions:
Note:
in both cases opened pages represent less than half of citations and only a tiny share of all pages1;
both cases happened on extended thinking mode.
Observation 2: in API sessions retrieval events are much more common; API uses the same user agent
API is another story. I repeated a part of the prompts with API (same model) and immediately discovered that it opens pages much more eagerly:
Only 12 prompts, all on the medium thinking effort. Pages were opened in 5 sessions.
An attentive reader should immediately ask “how the hell do you know the calls from API show up in the logs with the same user agent? Isn’t it just for human users?”.
Well, OpenAI documentation never explicitly stated it, it was what GEO community inferred.
Let’s test it. API has open_page action type.

I ran a prompt via API asking to analyze a non-existing page from my site. The hit from our old friend immediately showed up in logs:
Observation 3: the number of ChatGPT-User’s hits in logs is not equal to the number of retrieval events
Here’s the final nail in the coffin of attempts to track GEO success by measuring bot activity in logs.
Not every view visit caused by explicit instructions appeared in the access log:
More precisely, there are hits in the log on the same pages, just not during the live session, but before it.
My read: ChatGPT-User caches pages. If there was a recent visit, it skips fetching. So no matter whether users ask ChatGPT about your page 3 times per hour or 10000 times per hour, you will see the same number of hits in your logs2.
Another practical conclusion which matters for everyone: even if you explicitly asked to get fresh info, the chatbot might still answer from an 8-hour cache.
Data vs current narrative
Let’s summarize. ChatGPT-User visits in logs:
Are not a prerequisite for citations. Consumer-facing interface can cite your site without reading your page during the session. Web app rarely fetches pages anyway.
May come from API. Behind many of the fetches hides a soulless agent (likely from prompt-tracking software), not a human with a credit card in hand.
Don’t represent all the real cases when a person asked ChatGPT about your site.
And here’s the main conclusion: this robot is pretty pointless to track in logs. For most site owners analyzing it gives literally zero actionable insights.
Don’t get me wrong. Logs are a unique and important source of data. I was advocating for using access.log in SEO for years3. Some things you should absolutely check from time to time, like making sure that bots don’t get 403 Forbidden where they should get 200 OK. But that’s basic hygiene, not analytics.
The picture you would analyze is even more noisy than the technical details suggest. Think about it: if the most reliable way to trigger ChatGPT-User is to explicitly ask about your site, how is it different from asking your friend and why should it be attributed to GEO efforts specifically? If a user already knows about your site, you likely have engaged with this user via other channels.
Don’t look for a deep meaning in every bot trace. Don’t invent hollow metrics just because tracking GEO is objectively hard. You have more important things to do. Subscribing to Nobody Checked, for one.
Fetched pages do appear in citations unusually often, though. Only 1 read in full page was not cited, so this part of the myth is a half-truth. I think here’s the same mechanism as with second-layer fan-outs: if a model makes the effort to search inside Chain-of-Thought or read live pages, it means it has insufficient data to answer without it. But that doesn’t mean that without live visit there’s no citation. And from the log you can’t tell whether that citation went to a human or to a prompt tracker.
This cache is clearly shared between users. It is documented by Jérôme Salomon and clear from my test data. The visits to the dataset before the test prompt came from other countries. And at 0:11 UTC I was sleeping, not sending research prompts.
Check my article from 2018 with a case study where analyzing logs helped to avoid big problems. Still relevant today. Russian language, but in 2026 you can use our old friend ChatGPT-User to get a perfect translation.










