Strategy
Why Your Analytics Can't See Traffic From Claude
By Sébastien de Bollivier · · 6 min
In short — A customer told me he found PurrPlan through Claude. My analytics recorded zero visits from Claude over sixty days. Here is the technical reason, and what it means for anyone measuring AI assistant traffic.
Why Your Analytics Can’t See Traffic From Claude
A buyer took the Founders pack. 99 €. Someone from Reunion Island, like me.
I only know where he came from because he told me: Claude.
In my analytics, that sale is invisible. Not approximate. Invisible.
Zero. That is how many visits Claude sent me
I went looking afterwards. Over sixty days, for purrplan.ai, here is every identified source:
| Identified source | Visitors |
|---|---|
| 189 | |
| 126 | |
| Bing | 16 |
| ChatGPT | 1 |
| Perplexity | 1 |
| Claude | 0 |
Zero. And yet at least one person arrived from there, and paid.
The reason is technical and dull. When you click a link inside ChatGPT, your browser passes chatgpt.com along as the referrer. Links inside Claude carry an attribute that asks the browser to pass nothing at all.
So the visitor lands with no label. They fall into the “direct” column, next to the people who typed your address by hand.
And that column is 77% of my traffic
1,504 visitors with no identified source, out of 1,954.
For weeks I read that block as noise. People who already knew the address, apps that strip referrers, clicks from a messaging thread.
It was also the only place a customer sent by an AI assistant could possibly be.
That changes how you read everything. When someone tells you answer engines don’t convert, ask them where they are looking.
The word, while we are here
It is called AEO. Answer engine optimization. Some people say GEO.
SEO wins you a place in a list. AEO wins you a sentence inside an answer.
A page can rank first on Google and never be quoted by a model. Too long, too much preamble, the useful part buried in the fourth paragraph.
The model has no patience for that. It takes the page next door, the one that answers a question and stops.
What I actually did, in order of effort
1. Cut the site into answers
332 pages. French, English, German.
One page per social network. One per use case. Comparisons against competitors. Free tools.
Each page answers one question. “How to schedule posts on Pinterest.” “How much does a scheduler cost for an agency.”
Effort: months. This is the expensive part.
I did not build it for AI. I built it for Google. It paid off somewhere else.
2. Serve the text to models in plain form
Two files at the root of the site.
llms.txt, 8 KB. The table of contents, written for a machine.
llms-full.txt, 660 KB. The whole content as plain text. No menu, no JavaScript, no chrome.
The principle fits in one line: the more a model has to guess who you are, the less it cites you.
Effort: one hour.
3. Make the product pluggable, not just describable
This is the step almost nobody takes. It is also the only one that survives.
PurrPlan exposes an MCP server. In plain terms: the standard socket through which an AI agent plugs in an outside tool.
You tell Claude “fill my calendar for the week”, and it does. Really. Through the API.
That server is listed in the official Model Context Protocol registry as ai.purrplan/purrplan, and on Smithery.
So there is a directory, consulted by agents, where the product appears as a usable tool. Not as a blog post.
The first two layers get you mentioned. This one gets you used.
A mention disappears with the next model version. A plugged-in tool stays plugged in.
What I failed to do
I have to write this down, otherwise the article turns into an ad.
I have no idea what question he asked Claude. Nor what Claude answered. Nor who was cited next to me.
There is no Search Console for assistants. You find out you were cited when someone tells you. Not before, and not otherwise.
I never added the one question that would have solved everything. An optional “how did you hear about us” field next to the payment. Thirty seconds of code. Without it, I depend on a conversation to know where my revenue comes from.
That is the first thing I am changing this week.
Two things I did not see coming
Reddit sends me 189 visitors and I did nothing for it
It is my second identified source. And Reddit content feeds model answers heavily.
Being present where models go to read probably matters as much as optimising your own site. I have not worked that angle yet.
Bing is sixteen visitors and it feeds Copilot
That is eight times every assistant I can identify. And it is the only channel in this family where decent tracking still exists.
If I did another pass tomorrow, I would start there.
What I take away
This channel cannot be measured yet. It can only be recounted.
As long as assistants send no referrer, the only way to know they bring you customers is that those customers tell you.
That means two things. Ask them, every time. And be suspicious of every number you read on the subject, mine included.
I will keep publishing mine. Including when they show nothing.
Figures collected on 22 September 2026, over a rolling sixty days, for the purrplan.ai domain alone. Source: my own self-hosted analytics.
FAQ
Does Claude send a referrer when someone clicks a link?
No. Links in Claude's answers carry a no-referrer policy, so the browser sends no Referer header. The visit lands in your analytics as direct traffic, with no way to attribute it to Claude.
Does ChatGPT send a referrer?
Yes. A click from ChatGPT arrives with chatgpt.com as the referrer, so it shows up as an identified source. Perplexity behaves the same way. This is why ChatGPT appears in analytics and Claude does not.
How can I measure traffic from AI assistants then?
Ask your customers. Add an optional "how did you hear about us" field at checkout, and treat your direct traffic column as containing AI referrals rather than as noise. There is no Search Console for answer engines yet.
What is AEO?
Answer engine optimization, sometimes called GEO. SEO aims at a ranking in a list of results. AEO aims at a sentence inside a generated answer, which requires pages that answer one question and stop.
When X changes its algorithm, you'll know
I re-read the source code X published whenever it moves. If a weight actually changes, you get an email with the diff. No weekly newsletter, no filler.
An address, nothing else. One-click unsubscribe, any time.