How to Track AI Referral Traffic
AI engines are already sending you visitors — but most of that traffic is hiding in your analytics. Here's how it works and how to see it.
Open any client's analytics and look at the referral report. There is traffic in there from AI engines right now. Most teams have never pulled it out as its own line.
It sits inside direct and referral, unlabeled, growing month over month while nobody reports on it. Then someone asks whether AI search is sending anything, and the honest answer is that nobody has looked.
Pulling it out takes about twenty minutes per site. Here is how.
Crawler hits are not referral traffic
These two get confused constantly, and blending them produces a report that isn't true.
AI crawlers — GPTBot, ClaudeBot, PerplexityBot, Google-Extended. Bots fetching your pages. They appear in server logs, not in analytics. They tell you the engines can reach your site. They tell you nothing about whether anyone read an answer about you.
AI referral traffic — a real person asked an engine a question, the answer cited you, and they clicked through. This appears in analytics as a referral from the engine's domain. This is a human arriving with intent.
Both matter. They answer different questions. The rest of this page is about the second one.
Why it hides in direct
Analytics undercounts AI referrals, and it undercounts unevenly.
Some AI clients strip or truncate the referrer header. Some people copy a link out of an answer and paste it into a new tab, which arrives with no referrer at all. Consent banners block the tag before it fires. Every one of those is a real AI-driven visit that lands in direct and stays there.
This is why "our direct traffic went up" is a weak signal on its own, and why the method below ends with a cross-check rather than a dashboard.
Step 1 — Identify the referrer hostnames
AI referrals arrive with the engine's own domain as the referrer:
- ChatGPT —
chatgpt.com,chat.openai.com - Perplexity —
perplexity.ai - Gemini —
gemini.google.com - Claude —
claude.ai
These change. Engines add domains, rename products and move between hosts. Treat the list as something you maintain, not something you set once.
Step 2 — Build a channel group, not a one-off report
In GA4, create a custom channel group with one channel per engine, matched on the referrer hostname.
A segment answers the question once. A channel group means every standard report splits AI traffic out from then on, including historical data once it's applied. Do it once per property.
The alternative — rebuilding a filtered view every month — is the reason this never becomes a routine.
Step 3 — Cross-check against server logs
Server logs catch what the JavaScript misses. If you have log access, compare the two for a single month.
The gap between them is the number worth knowing. It won't let you attribute individual sessions, but it tells you roughly how much your analytics figure is understating the channel — which is what stops you reporting a floor as if it were a total.
Step 4 — Report per engine, month over month
A single "AI traffic" figure is the wrong unit.
The four engines source their answers differently, and a brand strong in one is routinely absent from another. Averaged together, that becomes a mid-range number that suggests no action.
Separated, it tells you where the work is. One engine leans on live search results, another on what it learned months ago, another on third-party roundups. Different gaps, different fixes.
Report each engine separately, with the direction of travel. One month's number is a data point. Three months is a trend.
What this will not tell you
The direct-traffic gap cannot be closed. Some proportion of AI-driven visits will never carry a referrer. You can size the gap; you cannot attribute those sessions individually. State it in the report rather than waiting to be asked.
Referral traffic is a lagging indicator. It tells you people clicked through. It does not tell you how often you were named and nobody clicked, which is most of the time. A recommendation absorbed and acted on later has no session attached to it at all.
Volumes are small next to organic search. They are also growing, and they arrive pre-qualified — someone clicking a citation inside an answer has already read a recommendation. Judge the channel on its trajectory and the quality of the traffic, not its current size.