How-to
How to track ChatGPT referral traffic to your website
A visit from ChatGPT arrives as one of two hosts, or as a campaign tag on a link with no referrer at all. Both are readable. Neither is read by default in most analytics tools.
6 min read
What a ChatGPT referral actually looks like
Two hostnames and one campaign tag. That is the whole raw material.
When somebody clicks a link in a ChatGPT answer and lands on your site, one of two things reaches your server.
Usually, a referrer. The browser tells your site which page the click came from, and the value is one of two hosts:
| Host | What it is |
|---|---|
chatgpt.com | The current consumer product. |
chat.openai.com | The original host. Still in circulation in old links and bookmarks, so it is still worth matching. |
Sometimes, a campaign tag instead. ChatGPT appends ?utm_source=chatgpt.com to links it cites when it has fetched the live web. That tag arrives even when the referrer does not — which turns out to matter a great deal.
One honest caveat about that tag
OpenAI does not document this behaviour, and it is applied inconsistently: the tag appears on links ChatGPT cites from a live fetch, and is generally absent from links it recalls from training rather than looking up. So treat it as a useful extra signal, never as a complete count.
Why matching the referrer alone leaves some of it behind
Two ordinary situations produce a real ChatGPT visit with no referrer at all.
- The referrer was stripped. A site or browser can set a policy that removes it. Nothing is broken and nothing is recoverable — the information simply never left the browser.
- The link was opened from an app. Somebody taps a link in the ChatGPT phone app and it opens in their browser. That is a fresh browser context, not a navigation from a web page, so there is no referring page to report.
In both cases the visit lands in direct, which is the honest label for “no idea” — and this is precisely where the campaign tag earns its place, because utm_source=chatgpt.com survives both.
You will see confident percentages quoted for how much AI traffic arrives without a referrer. We are not going to repeat them: the figures circulating on marketing blogs do not publish a methodology, and inventing precision is the thing this blog exists not to do.
What Google Analytics 4 does about this today
Checked on 28 August 2026 — and it is not what most articles on this topic still say.
Most pages ranking for this question tell you GA4 has no AI channel and walk you through building one. That advice is out of date. GA4 added an AI Assistant channel to its default channel group, announced on 13 May 2026. It sets the medium ai-assistant automatically when the referrer matches Google’s internal list of AI assistants. If you use GA4, check for that channel before building anything.
Four limits are worth knowing, all of them from Google’s own documentation:
- It is forward-only. Default channel assignment happens as traffic arrives, so it classifies sessions from the point it reached your property. Your existing history stays where it was filed.
- The referrer list is not published. Google’s announcement names ChatGPT, Gemini and Claude; its channel definition names ChatGPT, Gemini, DeepSeek, Copilot and Grok. Both are phrased as examples, and the complete list is not documented — so you cannot check which assistants are covered, or notice when that changes.
- AI Overviews and AI Mode are excluded, in Google’s own wording. Those clicks report under organic search. This is defensible — they are search results — but it means “AI Assistant” is narrower than the phrase suggests.
- Sessions with no referrer still land in direct. The channel is referrer-driven, so the app-hop case above is outside it.
The custom channel group route
You can still build your own, under Admin → Data display → Channel groups, with a rule matching source against a regular expression, ordered above Referral — traffic goes to the first channel whose definition it matches. Two corrections to the advice usually given alongside this:
- Custom channel groups do apply to historical data in reports and explorations. Plenty of articles claim the opposite. It is the default channel group that is forward-only; audiences built on a custom group update going forward only.
- You get two custom channel groups on a standard property, with up to fifty channels in each.
It works. It is also a rule you now own and have to maintain: when an assistant changes hostname, your regular expression is silently wrong, and nothing tells you.
How Coruve reads the same traffic
Not a configuration exercise, and the list is not a secret.
Coruve classifies AI arrivals at the moment the event is written, with no setup and no regular expression for you to maintain. Three specifics that are genuinely different rather than merely different-sounding:
- Hosts match exactly, or as a true subdomain. Never as a substring. A “contains
chatgpt.com” rule — which is what a hand-written regular expression usually becomes — also matcheschatgpt.com.example.test, a domain anybody can register and point at you. - The campaign tag is read last, and only as a rescue.
utm_sourceis consulted only where the classifier was otherwise about to say “direct”. It can turn nothing into a named guess; it can never rename or overrule a visit that a referrer already explained. A tag is text someone typed into a link, and it is not allowed to outrank a header the browser set. - Matching is exact after normalisation.
utm_source=chatgpt-affiliate-programnames no assistant, because it is notchatgpt.
And the answer carries a confidence label rather than arriving as a bare number. A referrer-derived or tag-derived classification is marked inferred — believed, because that is what browsers actually send, but not proven. Coruve keeps that separate from cryptographically verified traffic and never adds the two together. The methodology post explains why that distinction is load-bearing, and is candid about the fact that the verified tier needs keys we do not ship.
You can see the split for your own site in a couple of minutes with the free AI traffic checker — seven days of traffic, no account, and the caveats printed next to the numbers rather than in a footnote.
How to check, in about ten minutes, with whatever you already have
You do not need a new tool to find out whether this is worth your attention.
Look in your referrer report
Every analytics tool has a report listing the sites people arrived from — it may be called Referrals, Sources, or Acquisition. Set the date range to the last three months, and search it for chatgpt.com and chat.openai.com separately.
Whatever you find is a floor, not the whole number, because it excludes every arrival where the referrer was missing. But a floor is enough to answer the only question that matters at this stage: is this tens of visits, or is it two?
Then look for the campaign tag
Search the same period for a source or campaign parameter containing chatgpt. Those are the arrivals that carried the tag, and in most tools they will be sitting somewhere quite different from the referrals — often under a campaign report nobody opens.
Add the two together with a little caution: depending on how your tool orders its rules, a visit could conceivably appear in both. If the numbers are small enough that this matters, the honest description is a range rather than a total.
And test it yourself
The most convincing check takes two minutes. Ask ChatGPT something your site genuinely answers well, get it to cite you, and click the link on a device you can identify. Then watch what your analytics says about that visit — which channel it landed in, whether a referrer survived, whether a campaign tag came with it.
One visit is not data, but it tells you exactly how your setup classifies this traffic, which no article about somebody else’s setup can.
Three things called ChatGPT that are not a visitor
OpenAI runs three fetchers, and none of them is a person.
If your logs show “ChatGPT” activity, check which kind before you celebrate. OpenAI publishes three separate crawlers, and they do three different jobs:
| User agent | What it is for |
|---|---|
| GPTBot | Training. Your text as model material. |
| OAI-SearchBot | Building the search index the assistant draws on. |
| ChatGPT-User | An on-demand fetch, because somebody just asked ChatGPT about your page. |
Coruve counts all three as automated traffic — attributed to OpenAI, recorded with which job the fetch was doing, and kept out of your visitor numbers entirely. The third one is a person’s curiosity and it is still not a visit; treating it as one inflates every number you own.
What to do once you can see it
The measurement is the easy half.
- Find out whether it is material. For most small sites it is still a small slice. Knowing it is small is a result — it stops you reorganising a content strategy around a rounding error.
- Compare behaviour, not just volume. Someone arriving from an assistant has already been handed a summary and a reason to click. Whether that makes them better or worse than your search traffic is a question about your site, and you now have the data to answer it.
- Look at which pages get cited. It is rarely the page you expected, and it tells you what you are genuinely considered useful for.
- Check your crawler policy is deliberate. Blocking
GPTBotand blockingOAI-SearchBotare different decisions with different consequences. Blocking the retrieval side makes it harder to be cited at all.
The wider picture — the other assistants, the crawler question, and the measurement blind spots every tool shares — is in the complete guide to AI referral traffic.
Read next
Pillar guide
The complete guide to AI referral traffic
What AI referral traffic is, why it is growing, how referrers and user agents reveal it, how to measure it honestly, and what to do about it.
Methodology
AI crawlers vs AI referrals: what your analytics can and cannot see
A crawler reading your page and a person sent by an assistant are different events. How to tell them apart, and where every measurement method goes blind.
See which assistants send you people
The free checker reads seven days of your traffic and shows the split, with the caveats attached. No account, and nothing to install to see the answer.