AI traffic · ChatGPT
ChatGPT traffic: what it read, and who it sent you
ChatGPT traffic is more than the clicks your analytics shows. OpenAI's crawlers read your pages, ChatGPT fetches them while someone waits, and a few people click through. Skald shows all of it, apart.
ChatGPT traffic is every visit ChatGPT causes on your website: GPTBot and OAI-SearchBot crawling ahead of any question, ChatGPT-User fetching a page while a person waits for an answer, and people who click a link in that answer. Only the last one ever runs a script tag. The server log holds all of them.
30-day free trial · no card · we set it up within one working day · free to self-host
09:14:58 198.51.100.23 "GET /docs/setup/" ref chatgpt.com
A browser, and the referrer's host is chatgpt.com: a person, from ChatGPT.
0412
Crawls
GPTBot, OAI-SearchBot · nobody waits
0186
Live fetches
ChatGPT-User · a person waits
0009
People
from chatgpt.com · a floor
Locked. A crawl, a fetch and a person are three different things. Skald never adds them.
Sample lines. Each one clicks exactly one counter, or none: a fake GPTBot goes to bots, and a likely visit is kept apart.
[01] three names, three jobs
"ChatGPT visited us 1,000 times." Which ChatGPT?
OpenAI sends three different fetchers, and each means something else. One trains a model, one builds ChatGPT's search, one reads your page while a person waits. Lump them together and the one that matters most hides. This is one part of AI traffic tracking.
Tear off a ticket
pick one- Why it comes
- Collects pages that may train OpenAI's models. Nobody is waiting on it.
- Checked against
- openai.com/gptbot.json
OpenAI's published GPTBot addresses. A GPTBot from anywhere else is filed under bots. - In Skald
- AI · training crawl. Its pages, re-crawls, bytes and answer times, and whether it asked for /llms.txt.
- With "Block training"
- Refused. Skald writes a rule for nginx, the web server in front of many sites, that answers it 403, the refusal code. robots.txt, the file where a site asks crawlers to stay away, stays readable.
- Why it comes
- Builds the search index ChatGPT answers from, ahead of any question, the way Googlebot does.
- Checked against
- openai.com/searchbot.json
OpenAI's published search crawler addresses. - In Skald
- AI · counted with the crawls, under its own name: nobody is waiting on it.
- With "Block training"
- Kept. Refuse it and you leave ChatGPT's search.
- Why it comes
- Someone asked ChatGPT a question and it came to read your page to answer. A reader exists, right now.
- Checked against
- openai.com/chatgpt-user.json
OpenAI's published ChatGPT-User addresses. - In Skald
- AI · live fetch. A sign that someone asked about your topic just now, and the fetch the "likely" rule lines visits up with.
- With "Block training"
- Kept. A person is waiting on it.
The three lists are fetched once a day. A list older than 7 days is no longer trusted to call anything a fake.
[02] before the click
A visitor arrived from ChatGPT. What did ChatGPT read first?
Before an answer links to you, ChatGPT-User often fetches a few of your pages. Open a visit from ChatGPT and Skald lights the pages it fetched in the same minute or the 15 minutes before: nearest first, at most 10, the landing page ringed.
example.com · sample site
- /
- pricing/1 min
- docs/
- setup/same min
- api/
- webhooks/
- self-host/
- compare/
- plausible/3 min
- ga4/
- blog/
- server-logs/
- ai-crawlers/
- about/
Cited by ChatGPT · 3 pages read first
- same min/docs/setup/ landed here
- 1 min/pricing/
- 3 min/compare/plausible/
The visit carries chatgpt.com, so it is cited. ChatGPT-User fetched three pages in the window, the landing page among them.
Sample visits. Context, not a count of people: a fetch can be for someone else. GPTBot and OAI-SearchBot are never listed, because nobody was waiting on them.
[03] the honest count
Your ChatGPT referrals are the tip. Skald shows the rest apart.
Apps and privacy settings strip the referrer (the address of the page a click came from), so many clicks from ChatGPT land as "Direct". Skald counts only the clicks that prove where they came from: chatgpt.com, chat.openai.com, openai.com, the Android app's com.openai.chatgpt, or a utm_source=chatgpt tag, a label some ChatGPT links add to the address. That is a floor: the real number is at least this.
Below the line sit direct visits to a page ChatGPT-User had just fetched. Skald marks them likely from ChatGPT and keeps them out of every total.
98visits from chatgpt.comcounted, people · a floor
waterline: the referrer stops here
55likely from ChatGPTDirect, no tag, same page, fetched up to 15 minutes before · never added
?Direct, nothing fetched beforestays Direct. Nobody can say.
Total shown for ChatGPT: 98, never 153.
Sample month. The 98 are people, counted once each. The 55 are a separate estimate, marked "likely", with a note that says how it was made.
[04] when reading changes
ChatGPT stopped reading your pricing page. Skald tells you.
An answer can drop you without a word. The first sign is in your log: OpenAI stops fetching the page. Skald watches each page OpenAI reads and opens an alert when it starts or stops, from whole, checked days only. GPTBot, OAI-SearchBot and ChatGPT-User count as one reader: OpenAI.
OpenAI fetches of /pricing/ · one square a day · sample
alert · medium
OpenAI stopped reading /pricing/
ChatGPT-User, GPTBot fetched /pricing/ in 4 of the 4 weeks 2026-09-19 to 2026-10-16 (23 fetches); none in the 7 days 2026-10-17 to 2026-10-23.
Rule: fetched in at least 3 of the 4 weeks, none in the last 7 days.
Sample page. "Started" also needs the page answered as a page that day. More than 5 pages for one reader become one alert. Alerts go to the dashboard, the site's alert mail and your webhooks.
[05] what it cannot see
Where ChatGPT traffic tracking stops
Every ChatGPT figure is one Skald can prove from the log. These are its edges.
What it does not do
- What ChatGPT said in its answer is not in your log. For that, see AI visibility tracking.
- Clicks that lose the referrer arrive as Direct. ChatGPT clicks are a floor; likely visits sit beside them, never inside.
- A ChatGPT-User fetch can be for someone who never clicks. A fetch is a reader one step removed, never a visit.
- No server or CDN log (Shopify, Webflow, Squarespace) means no GPTBot or ChatGPT-User at all. A CDN, such as Cloudflare, is a service that serves your pages from near each reader.
- A ChatGPT-User fetch from an address on no OpenAI list is shown as not verifiable or filed under bots, never guessed.
keep reading
More on ChatGPT traffic
questions
ChatGPT traffic FAQ
Straight answers, including what Skald does not do.
How do I see traffic from ChatGPT?
Look in two places. People who click a link in a ChatGPT answer arrive with chatgpt.com as the referrer, and any analytics tool can count them. ChatGPT's own fetches, by GPTBot, OAI-SearchBot and ChatGPT-User, never run a script, so only your server log has them. Skald reads both from the log and keeps them apart.
What is the difference between GPTBot and ChatGPT-User?
GPTBot crawls your pages to collect training data, and nobody is waiting on it. ChatGPT-User fetches a page at the moment one person asks ChatGPT something, so a reader exists right then. Skald files GPTBot as a training crawl and ChatGPT-User as a live fetch, and never adds the two together.
What is OAI-SearchBot?
OAI-SearchBot builds the search index ChatGPT answers from. It crawls ahead of any question, like Googlebot, so Skald files it with the training crawls: nobody is waiting on it.
Why does Google Analytics show so few visits from ChatGPT?
Two reasons. ChatGPT's fetches never run a script, so they are invisible to it. And many clicks from ChatGPT lose the referrer on the way, so they arrive as direct visits. Skald counts the clicks that carry chatgpt.com as a floor, and marks direct visits to a page ChatGPT had just fetched as likely from ChatGPT, kept apart.
Does Skald count the ChatGPT phone app?
Yes, when the app says so. The ChatGPT Android app sends its app name, com.openai.chatgpt, as the referrer, and Skald counts that visit as ChatGPT. A click that arrives with no referrer at all is a direct visit, or likely from ChatGPT if ChatGPT-User had just fetched the page.
Can I stop GPTBot but stay in ChatGPT answers?
Yes. Crawler rules have a Block training only choice: GPTBot is refused, while OAI-SearchBot and ChatGPT-User still reach the site. How blocking AI crawlers works.
$ tail -f access.log | skald
See what AI does with your site. Free for 30 days.
No card. We set up hosted Skald for you within one working day, or you self-host it free. Every line of your log, sorted and added up.