All articles
AI SearchAnalyticsGEO

GEO Analytics: How to Track Traffic From ChatGPT, Perplexity and Claude

Creative Nexus·May 8, 2026 9 min read
GEO Analytics: How to Track Traffic From ChatGPT, Perplexity and Claude

Your analytics almost certainly under-reports AI traffic. Someone asks ChatGPT for the best supplier in your category, clicks your link inside the desktop app, reads three pages and fills in a form. GA4 files the whole visit under direct / (none), and the channel that actually won the customer gets no credit at all.

How do you track traffic from ChatGPT and Perplexity?

Build a dedicated AI channel group in GA4 and match referral sources with a regex, then read your server logs separately to count crawler visits. Referrals tell you how many humans clicked through from an AI answer. Server logs tell you how often the AI bots are re-reading your site. You need both, because they answer different questions.

Why AI traffic is hard to measure in the first place

Three things break normal attribution:

  • Stripped referrer headers. Clicks from native desktop and mobile apps often arrive with no HTTP referrer at all, so the session lands in direct / (none) next to people who typed your URL from memory.
  • In-app webviews. Several assistants open links in an internal browser or through a proxy, which isolates the cookie session and can start a fresh visitor record.
  • Bots counted as people. Crawlers such as OAI-SearchBot and PerplexityBot hit your pages constantly. Mistaking those for readers inflates your numbers and hides the real trend.

Get these separated first. Every number downstream depends on it.

Step 1: create an AI channel group in GA4

Go to Admin, then Data display, then Channel groups, and create a new group called AI Referral Traffic. Add a channel rule where Session source matches a regex. Channel groups apply going forward and to historical data in most reports, so you get context immediately rather than starting from zero.

Step 2: use a regex that catches the variants

Assistants send traffic from several hostnames and keep adding more. Match on a pattern rather than an exact list:

  • chatgpt.com and chat.openai.com for ChatGPT and its search experience
  • perplexity.ai, including the www and mobile subdomains
  • claude.ai for Claude
  • gemini.google.com for Gemini, which is easy to miss because it sits on a google.com host
  • copilot.microsoft.com and bing.com chat surfaces

Review the pattern every quarter. New assistants launch faster than analytics defaults update.

Step 3: recover the app clicks hiding in direct

Regex only catches sessions that carry a referrer. For the app traffic that does not, add a Google Tag Manager variable that reads document.referrer and writes a custom dimension when the page URL carries an AI-specific query parameter or utm tag. Where you control the link, for example in an llms.txt file or a documentation footer, append your own campaign parameter so the visit self-identifies.

You will not recover every session. Aim to shrink the unattributed bucket, not to eliminate it.

Step 4: read your server logs for crawler activity

Referral data tells you nothing about whether the models are still reading you. For that, filter your access logs by user agent:

  • OAI-SearchBot and ChatGPT-User for OpenAI
  • PerplexityBot for Perplexity
  • ClaudeBot and Claude-Web for Anthropic
  • Google-Extended which controls Gemini training access separately from Googlebot

Falling crawl frequency is an early warning. Citations degrade weeks after the bots stop coming, so the log trend gives you lead time the referral report cannot.

Check your robots.txt while you are here. Blocking these agents removes you from generative answers entirely, and plenty of sites block them by accident through an inherited disallow rule. Our robots.txt guide for AI crawlers covers the exact directives.

The three metrics worth reporting

Click counts alone will not survive a conversation with a CFO. Report these instead:

  1. Share of model. Across a fixed set of buyer prompts, how often does the answer name you versus each competitor? This is the AI equivalent of share of voice and it is the number that moves budget.
  2. Citation to click rate. How often does an appearance in an answer turn into a visit? A high citation count with almost no clicks usually means the answer resolved the question without needing you.
  3. Post-AI engagement. Compare session duration and conversion rate for AI referrals against organic search. Visitors arriving from an assistant have already been pre-qualified by the answer, and they behave differently.

What to do with the data

Once the channel is clean, the work becomes ordinary optimisation. Pages that get cited often tell you which formats the models trust. Pages that get crawled but never cited usually bury the answer too deep or hedge too much. Prompts where a competitor owns the answer become your content roadmap.

You can watch all of this without building the plumbing yourself. Run a free audit to see which engines currently cite your pages, or read the Academy for the full measurement chapter.

Frequently asked questions

How do I track ChatGPT traffic in GA4?

Create a custom channel group under Admin, Data display, Channel groups, then add a rule matching session source against a regex covering chatgpt.com and chat.openai.com. App clicks with no referrer need a GTM variable reading document.referrer to be recovered.

Why does AI traffic show as direct in analytics?

Clicks from native desktop and mobile assistant apps usually arrive with the HTTP referrer stripped. With no referrer, GA4 has nothing to attribute the session to, so it files the visit under direct / (none) alongside typed URLs.

What is the difference between AI referral traffic and AI crawler hits?

Referral traffic is a human clicking a link inside an AI answer. Crawler hits are bots such as OAI-SearchBot or PerplexityBot fetching your pages to refresh what the model knows. Referrals show demand, crawls show whether you are still being read.

Which AI bots should I allow in robots.txt?

Allow OAI-SearchBot, ChatGPT-User, PerplexityBot and ClaudeBot if you want to appear in generative answers. Blocking them removes your brand from those results. Google-Extended is separate and controls Gemini training access.

What is share of model?

Share of model is the percentage of answers, across a fixed set of buyer prompts, where an AI engine names your brand versus competitors. It is the closest AI equivalent to share of voice and the most useful executive-level GEO metric.

Does AI referral traffic convert better than organic search?

It often engages longer, because the assistant has already answered the basic questions and pre-qualified the visitor before they click. Measure it as its own channel rather than blending it into organic, or the difference disappears in the average.

Want this done for your site?

Run a free audit and see exactly what to fix for Google and AI search.

Run a free audit