You allowed GPTBot and PerplexityBot in robots.txt. You published llms.txt. You added FAQ schema. Then someone on your team asks how much traffic any of that actually produced, and you open Google Analytics 4 and find nothing labeled "AI search." The visits are in there somewhere, but GA4 has folded most of them into Direct or a generic Referral bucket, so the work you did to get cited looks invisible.
That is a reporting problem, not a traffic problem. AI search traffic is the set of visits that arrive at your site after a person reads an answer inside ChatGPT, Perplexity, Claude, or Google's AI Overviews and clicks through to your page. GA4 can see most of these visits; it just does not sort them into their own channel unless you tell it how.
Why Does AI Search Traffic Look Like Direct Traffic in GA4?
GA4 classifies a visit as Direct when it has no referrer, no UTM parameters, and no recognized search-engine domain. Several AI apps produce exactly that pattern. The native ChatGPT and Gemini mobile apps typically open outbound links inside an in-app browser that strips the HTTP referrer header, so those clicks land in Direct traffic next to people who typed your URL from memory.
Web-based chat interfaces behave differently. Perplexity and Claude.ai, both accessed through a normal browser tab, generally pass a standard HTTP referrer of perplexity.ai or claude.ai when a user clicks a cited link. ChatGPT's web version at chatgpt.com does the same in most cases. GA4 receives that referrer, but its default channel grouping has no "AI Search" category, so it sorts these hits under plain Referral, mixed in with every other unrecognized domain that links to you.
How Do You Build a Custom Channel Group for AI Referrers?
You fix this by defining a custom channel group, which GA4 evaluates before falling back to its default rules. The result is a channel labeled "AI Search" that you can filter reports by, same as you would filter by Organic Search or Paid Social.
- In GA4, go to Admin, then Data display, then Channel groups.
- Create a new custom channel group and name it something explicit, such as "AI Search."
- Add a channel definition matching source contains any of: chatgpt.com, perplexity.ai, claude.ai, copilot.microsoft.com, gemini.google.com.
- Order this channel above your other custom rules so it is evaluated first.
- Save the group and apply it to the reports you already use, such as Traffic acquisition.
- Wait 24 to 48 hours for new sessions to populate under the new channel before drawing conclusions.
This channel only catches sessions that carried a referrer. It will not recover visits that already landed in Direct before you made the change, and it cannot recover future visits from apps that strip the referrer at the source.
Which AI Platforms Actually Pass a Referrer?
Referrer behavior varies enough by platform and by whether the user is on web or mobile that a flat assumption will misclassify a meaningful share of your AI traffic. The table below reflects typical behavior as of this writing; app vendors change this without notice, so treat it as a starting point to verify against your own data, not a permanent rule.
| Platform | Referrer usually passed? | GA4 default bucket without a custom channel |
|---|---|---|
| ChatGPT (web, chatgpt.com) | Yes | Referral |
| ChatGPT (iOS/Android app) | No | Direct |
| Perplexity (web and app) | Yes | Referral |
| Claude.ai (web) | Yes | Referral |
| Google AI Overviews | Yes, as google.com | Organic Search |
| Microsoft Copilot | Inconsistent | Direct or Referral |
Google AI Overviews is the one exception worth flagging separately: because the click still originates from a google.com results page, GA4 already files it under Organic Search, mixed in with your regular ranking clicks. A custom channel group will not separate that traffic from ordinary Google search visits; you would need Search Console's Search Appearance filter for that split instead.
What About Server-Side Logs for AI Crawlers?
A channel group only shows human clicks. GA4 will not show GPTBot, ClaudeBot, or PerplexityBot visits at all, because those requests fetch your raw HTML without a browser and never execute the JavaScript tag that GA4 depends on. If a crawler indexed a page that later gets cited, that indexing step is invisible to any GA4 report, no matter how the channel groups are configured.
Checking whether those crawlers can reach your pages in the first place is a separate, narrower question from traffic measurement: it comes down to what your robots.txt allows and whether your key pages return a clean 200 to a bot user agent. An audit tool that parses your robots.txt and reports crawler access line by line answers that question in one pass, which is faster than reading raw access logs by hand when you just need a yes-or-no per crawler. AskEO's audit plans include that crawler-access check alongside the rest of the AEO scan, so you can confirm the indexing half is solid before you spend time on the GA4 half.
Is Setting This Up Worth the Time?
A reasonable objection here is that this is a lot of channel-group configuration for traffic that might be a handful of sessions a month. That is often true early on, and a custom channel group will not turn a trickle into a flood. But the alternative is reporting we have no idea if AI search sends us anyone, which is a worse answer to give a budget owner than a small, clearly labeled number. Set the channel group up once, let it run a full month, and you have a real baseline to compare against instead of a guess.
What Is the Next Step?
Build the AI Search channel group in GA4 today using the five referrer domains above, then create an AskEO account and run a free audit to confirm your robots.txt actually allows the crawlers whose referral traffic you just started measuring. Both halves have to work together: crawler access gets you cited, and the channel group is what proves it.
For the underlying default-channel-group logic this article assumes, see Google's Analytics documentation on channel groups.
Frequently Asked Questions
Does GA4 have a built-in AI Search channel?
No. As of this writing, GA4's default channel grouping does not include a dedicated AI Search category. Visits from AI chat platforms fall under Direct, Referral, or in the case of Google AI Overviews, Organic Search, unless you create a custom channel group to separate them.
Why do some ChatGPT visits show up as Direct traffic?
The ChatGPT mobile app typically opens links in an in-app browser that does not forward the referring page's URL. Without a referrer or UTM parameters, GA4 has no signal to classify the session as anything other than Direct, even though the visit originated from an AI answer.
Can I recover AI search sessions that already landed in Direct traffic?
No. A custom channel group only changes how new sessions are classified going forward; it cannot reprocess historical Direct sessions, because GA4 never stored the missing referrer information for them in the first place.
Does Google AI Overviews traffic need its own GA4 channel?
Not through channel groups. Clicks from AI Overviews carry a google.com referrer and land in Organic Search by default, mixed with standard ranking clicks. Splitting that traffic out requires Google Search Console's Search Appearance report rather than a GA4 channel change.
Will a robots.txt audit show me AI referral traffic?
No. A robots.txt or crawler-access audit tells you whether bots like GPTBot or PerplexityBot are permitted to fetch your pages for indexing. It says nothing about human click-through traffic from AI answers, which only shows up in analytics tools like GA4 once a custom channel group is in place.