I’m currently trying to better understand how to identify and filter AI-related traffic in Matomo — ideally separating it from normal traffic and, if possible, isolating mostly real human clicks coming from AI platforms.
So far, I’ve experimented with the following segment approaches:
-
Referrer Name contains “ChatGPT”, “Perplexity”, etc.
-
AI Agent Name contains “ChatGPT”, “Perplexity”, etc.
Both methods produce very different results and interpretations, and I’m still trying to understand:
-
Which approach is more reliable?
-
What exactly is included in “AI Agent” traffic?
-
How much of this traffic is likely bots/crawlers versus actual human visits originating from AI tools?
My goal is to build a cleaner and more meaningful AI traffic analysis setup in Matomo — ideally focused on real user interactions rather than automated AI agents.
I’d love to hear how others are approaching this problem and whether anyone has found effective ways to identify genuine human AI referral traffic.
1 Like
Interesting topic. I’ve noticed similar inconsistencies when comparing referrer-based segments with AI agent identification.
From what I’ve observed, referrer filtering seems more useful for identifying potential human visits coming from AI platforms, while AI agent data often appears to include a broader mix of crawlers, automated requests, and tool-based traffic. That difference alone can make the numbers look very different.
One thing that helped me a bit was comparing engagement signals afterward — things like time on page, navigation behavior, and repeat interactions. The more natural the session behavior looked, the more likely it seemed to be genuine user traffic rather than automated activity.
Still feels like this area is evolving quickly though, especially with how differently AI tools handle referrals and browsing behavior.
Maybe there is a misunderstood. Matomo don’t detect Bots with AI.
A bot (bot, crawler, spider, …) is a bot. Also a AI bot is a bot. A bot is not a human.
The (newer) Matomo have a category “AI …”. This don’t displays AI bots, but human “comes from” AI Agents like ChatGPT.
You must distinguish between Referrer and Browser Agent. Both detect other:
Referrer: “comes from …”
Browser Agent: Bot or not Bot or undetectable Bot.
Matomo used the Device Detector for Browser Agent Bot detecting:
: https://devicedetector.lw1.at/
You can use the Plugin TrackSpamPrevention. But it is today impossible to detect undectable bots. The undectable bots are very increasing.
I was curious about this too, and I am coming to the conclusion that the two dimensions are not the same thing and don’t necessarily correspond to each other.
Referrer Name is the name of the page that referred the visitor. Generally speaking, the number of times a link is clicked in ChatGPT, Perplexity, Claude, etc. and the link passes a referral is the true indicator for human referral traffic.
AI Agent Name is used to determine the client that is requesting the service by reading its user agent. It can be things such as an AI crawler, an AI assistant that fetches pages to answer, and so on. It also may contain requests that were never intended to result in a user clicking through to your site (depending on the AI platform).
That’s why I find Referrer Name to be my main metric for analyzing AI visitors, while AI Agent Name can be helpful for understanding how AI services are accessing or crawling my content.
The problem is, the attribution is evolving. Some AI platforms keep the referrer data, some remove it, and others act in a way that isn’t clearly one way or the other. Today, there’s no “perfect” way to isolate "real human AI traffic.
I am currently doing:
Use Referrer Name to measure AI referrals.
Use AI Agent Name to monitor AI bots and fetchers.
Analyze the performance of the AI traffic in terms of sessions, engagement, and conversions compared to other traffic sources to assess the quality of human traffic.
I’d also be interested to hear if anyone has found a reliable way to differentiate between AI assisted user visits and AI retrieval requests without the means currently available in Matomo.