Tracking Referral Traffic from ChatGPT, Claude and Perplexity

PC

Puru Choudhary

Last updated · published

Most assistant traffic arrives with no referrer at all, so it lands in Direct and no configuration recovers it.

What you can measure is the share that does carry a referrer. GA4 now classifies some of that automatically, and a custom channel group catches the rest.

Treat the resulting number as a floor on real volume. That is not a failure of your setup, it is the shape of the channel.

TL;DR

  • GA4 has a native AI Assistant channel keyed on the medium ai-assistant. Google’s documentation names ChatGPT, Gemini, Deepseek, Copilot and Grok.
  • Claude and Perplexity are not on that list, so their referrals stay in Referral until you build a custom channel group.
  • Perplexity passes a referrer most reliably. ChatGPT often does on desktop. Claude frequently does not.
  • Assistant apps generally send nothing, which is why a large share of this traffic is unrecoverable.
  • Custom channel groups apply retroactively, so you see history the day you create one.
  • Do not invent a UTM source for inbound assistant clicks. You do not control those links.

Why This Is Harder Than It Should Be

Three problems compound.

Most assistants send no referrer. Native mobile apps almost never do, and a large share of assistant use happens on phones. Those sessions are indistinguishable from someone typing your URL.

Hostnames are inconsistent. OpenAI runs chatgpt.com and the older chat.openai.com. Copilot moved from Bing Chat to copilot.microsoft.com. Gemini has a legacy Bard hostname. Match one variant and you undercount the rest.

The native channel covers a named list. GA4 classifies assistant referrals automatically when the referrer matches Google’s list, and that list is shorter than the set of assistants your audience actually uses.

Add it up and the gap is structurally worse than anything social or search presented a decade ago. Good engineering closes part of it. Nothing closes all of it.

What Each Assistant Sends

ProductReferrer hostnamePasses a referrer?
ChatGPT webchatgpt.com, legacy chat.openai.comOften, and it appends utm_source=chatgpt.com to citations
ChatGPT mobile appsNoneAlmost never
Claudeclaude.aiRarely
Perplexityperplexity.ai, www.perplexity.aiReliably
Geminigemini.google.com, legacy bard.google.comSometimes
Copilotcopilot.microsoft.comYes
Deepseekchat.deepseek.comSometimes
Grokgrok.comSometimes
Meta AImeta.aiMixed, rarely from embedded surfaces
You.comyou.comYes
Google AI Overviewsgoogle.comYes, but identical to organic search

That last row matters more than it looks. A click from inside an AI Overview arrives on the ordinary search hostname, so GA4 records Organic Search and no rule can separate it. Search Console is where you look for that effect, not GA4.

Use Both Channels

The native one needs no configuration. GA4 sets the medium ai-assistant and files the session under AI Assistant when it recognises the referrer. Free signal, zero maintenance, and a vendor list you do not control.

A custom channel group covers the rest and gives you a rule you own. Build it under Admin, Data display, Channel groups, with a condition matching Source against this pattern:

^(claude\.ai|perplexity\.ai|www\.perplexity\.ai|meta\.ai|you\.com|poe\.com|chatgpt\.com|chat\.openai\.com|gemini\.google\.com|bard\.google\.com|copilot\.microsoft\.com|chat\.deepseek\.com|grok\.com)$

The first entries are the assistants GA4 does not name. The rest keep your channel complete if Google’s list changes, and let you mirror the same definition in your warehouse.

Order the rule above Referral, because rules evaluate top down and first match wins.

Two things to know before you spend the effort. Custom channel groups apply retroactively, so the channel populates with history as soon as you save it. And standard properties allow two custom groups in total.

Four hostnames stay out of the pattern deliberately. openai.com and anthropic.com serve documentation and marketing rather than citations. google.com is organic search, and matching it would swallow your entire Organic Search channel. x.ai is a corporate site; the chat product is grok.com.

If you export to BigQuery, compute the same classification there from the session source and the raw referrer, and treat that as the source of truth. UI configuration drifts; a version-controlled model does not.

Verify With Real Clicks

Everyone skips this and then distrusts the numbers six weeks later.

Open DebugView, then click a real citation from each assistant you care about. You are looking for session_start carrying the source you expect. For assistants on Google’s list, the medium reads ai-assistant. For the others it reads referral.

Run it for ChatGPT on desktop and mobile, Claude, Perplexity, Copilot and Gemini. Write down what each one actually sent. That table, not this one, is your ground truth.

Check again after a day. Zero sessions means the regex is too tight or the tag is broken. A suspiciously large number means you matched something that also serves ordinary traffic.

A useful sanity check: on a content-heavy B2B site, assistant sessions typically sit in the low single digits as a share of traffic. Double digits usually means a bad match rather than a breakout quarter.

Attributing What You Cannot See

Referrer detection gets you clicks. Conversions need more.

Capture the raw referrer server-side. Your CDN logs hold the exact string for every request, including hostnames you have not added to any rule yet. That is how you spot new assistants as they appear, and how you reconcile against GA4.

Tag the links you actually control. If you place links in partner content, documentation or a directory, tag them for what they are: the placement as the source, referral as the medium, and a campaign that names the asset.

What not to do, and this is the mistake most guides make: do not reserve a source value like ai_referral for inbound assistant clicks. You do not control the links an assistant emits, UTM parameters override the referrer, and any link you tag that way reports every ordinary human visitor as AI traffic. Measure assistants by referrer. Tag placements by placement.

Where a naming convention does belong here is your channel definitions. Pick one label per assistant, use it in GA4, your warehouse and your dashboards, and keep the list closed so nobody adds a fourteenth spelling of Perplexity. Terminus, the marketing taxonomy governance platform, is where we keep that vocabulary alongside every other channel.

Crawlers, and What Blocking Costs You

Separate training from retrieval before editing robots.txt.

Retrieval and user-fetch agents fetch pages to answer a live question: OAI-SearchBot, ChatGPT-User, Claude-User, Claude-SearchBot, Perplexity-User. Block these and you lose citations.

Training agents collect data for model training: GPTBot, ClaudeBot, CCBot, Google-Extended, Applebot-Extended. Blocking them is a licensing decision with no effect on whether you get cited. Google states directly that Google-Extended does not affect Search inclusion.

Note that Claude-Web is retired, so any robots.txt copied from a 2024 article is out of date. A reasonable default for a site that wants citations without feeding training:

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

Reasonable people disagree about blocking training. Both choices are defensible, and it is a legal and commercial call rather than a marketing one.

llms.txt

A community proposal at llmstxt.org: a Markdown file at your root listing the pages you want models to read first.

The honest status is that no major vendor has committed to honouring it, and the studies looking for a citation lift have not found one. Ship it if you publish documentation, because it costs an hour and tools generate it automatically. Do not expect it to move referral volume, and do not block other work on it.

# Acme
> One-line description of what your product does.

## Docs
- [Quickstart](https://example.com/docs/quickstart): Get productive in 10 minutes.
- [Concepts](https://example.com/docs/concepts): Mental model and terminology.
- [API reference](https://example.com/docs/api): REST and GraphQL endpoints.

AI Overviews Are Invisible in GA4

When someone clicks a citation inside an AI Overview, the referrer is an ordinary search results page. There is no channel to build, because nothing distinguishes the click.

Search Console is the instrument. Compare impressions against clicks for queries where Overviews appear: impressions holding steady while clicks fall is the pattern. Seer Interactive’s published analysis of roughly 3,100 queries found organic click-through on informational queries with an AI Overview falling from about 1.76 percent to 0.61 percent between June 2024 and September 2025, a decline of around 61 percent. Your own mix will differ, and branded queries behave differently from informational ones.

Citation Tracking Tools

Logs tell you who clicked. They do not tell you whether an assistant mentioned you at all. For that, a monitoring tool runs fixed prompts on a schedule and parses the answers.

Profound, AthenaHQ, Otterly.AI and BrandRank.AI all do versions of this, differing mainly in engine coverage and how they price prompt volume. Pricing in this category moves often enough that any figure here would be wrong by the time you read it, so check the vendor pages.

For most teams, start with a modest prompt allowance, monitor your top 50 prompts, and use the output to prioritise content. Move upmarket when someone owns this full time.

Avoid These Four Mistakes

Matching openai.com. Developer documentation visits become AI traffic.

Matching google.com for Gemini. Every organic search session becomes AI traffic and your Organic Search channel collapses.

Using an apex hostname where the chat lives on a subdomain. deepseek.com never matches chat.deepseek.com under an anchored pattern.

Counting crawlers. GA4 filters most automated traffic, but server-side analytics often does not. Check that the user agent on a suspected assistant session is a browser.

Validate by pulling a day of sessions from the channel and spot-checking ten referrer strings in your logs. If three look wrong, tighten the pattern.

Do This Week

Build the custom channel group and order it above Referral. Click a citation from each assistant with DebugView open and record what arrives. Write your channel labels down somewhere the whole team reads. Ship an llms.txt if you publish docs. Decide your crawler policy deliberately rather than by default.

Then revisit the native channel’s vendor list next quarter, because Google will extend it, and anything it adopts no longer needs your rule.

Accept that you are measuring a floor. The teams that handle this well are the ones with an honest account of what their number represents, not the ones chasing the unmeasurable half into the ground.

FAQ

Does ChatGPT send a referrer?

Often on desktop web, and it also appends utm_source=chatgpt.com to citation links. The mobile apps generally send neither.

How do I see AI traffic in GA4?

The native AI Assistant channel covers the vendors Google names: ChatGPT, Gemini, Deepseek, Copilot and Grok. For Claude, Perplexity and the rest, build a custom channel group matching Source against assistant hostnames.

Why isn’t Claude in the native channel?

Google’s published list does not include it. Claude referrals arrive as ordinary Referral sessions with the source claude.ai until your own rule catches them.

Do custom channel groups apply to past data?

Yes, retroactively. Standard properties allow two.

Can I tell whether Claude cited my page?

Rarely from logs, because Claude usually strips the referrer. A citation-monitoring tool that queries Claude on a schedule is the practical signal.

No. You do not control those links, and tagging a page that way mislabels every human visitor to it as AI traffic. Measure assistants by referrer and tag only the placements you control.

What is llms.txt worth?

Almost nothing measurable today, and almost nothing to ship. Publish one if you have documentation and move on.

Barely. It strips click identifiers rather than referrers or UTM parameters, so referrer-based assistant tracking is not its target.

Terminus helps you and your team be consistent in UTM tracking

Try Terminus risk-free for 21 days. Cancel anytime with 1 click.