You upgraded to Matomo 5.8, opened the All Websites dashboard, and there's a new "AI Chatbot Requests" column sitting next to your visits. There's a new AI Assistants menu at the top level, and a second AI Assistants entry under Acquisition. The chatbot numbers are tiny or empty, the names all sound alike, and you want to know what you're looking at, plus how to get that column off your dashboard without turning tracking off.
The "AI Chatbot Requests" column comes from the BotTracking plugin that ships in Matomo 5.8. On self-hosted Matomo, deactivate BotTracking under Administration → Plugins to remove both the column and the chatbot reports, or keep it active and hide just the column with custom CSS. Deactivating it also stops chatbot tracking, so weigh that first. The separate Acquisition → AI Assistants referral report, which counts real human click-throughs, stays either way.
None of this is your fault. Matomo 5.8 shipped three different things under names that overlap, all in the same release. The chatbot count doesn't create visits or sessions, though it does feed the All Websites Total Hits summary. Once you can tell the three reports apart, the rest of the questions get easy.
Three reports, three different meanings
There are three separate reports, and they measure three different things:
| Report | Where it lives | What it counts | How it's detected |
|---|---|---|---|
| AI Assistants (referrals) | Acquisition → AI Assistants | Humans who clicked a link from an AI tool (ChatGPT, Gemini, Copilot, Perplexity) and landed on your site | Referrer, standard JavaScript tracking |
| AI Chatbots Overview | AI Assistants → AI Chatbots Overview | Supported AI chatbot retrieval requests, processed as server-side no-visit telemetry | Supported User-Agent substring, via a server-side integration or the HTTP Tracking API |
| AI Agent Overview | AI Assistants → AI Agent Overview | Requests from autonomous AI agents acting on a user's behalf | Standard tracking requests identified as agents (available since Matomo 5.6) |
The distinction that actually matters: the Acquisition → AI Assistants report is about people who arrived because an AI tool pointed them at you. The AI Chatbots Overview is about supported chatbot retrieval requests that Matomo receives through server-side telemetry. If you're a marketer asking whether you show up in AI answers, you want the first one. It counts real click-throughs from AI tools. If you want to see which supported chatbots are fetching your content, use the second. Just don't treat it as your full AI scraping or training-crawler report.
The same words show up in two places because Matomo put the chatbot and agent reports under a new top-level AI Assistants menu, while the human-referral report stayed where referral channels have always lived, under Acquisition. Same name, opposite audience. That's the whole source of the "what's the difference?" confusion.
Why the chatbot numbers look so small
This complaint comes up on the Matomo forum a lot, and there's a real reason behind it.
The traffic this report is built for does not execute JavaScript. Matomo's normal tracking tag, the _paq snippet you put on every page, only fires in a real browser, so it never sees a chatbot fetching your content server to server. To fill the AI Chatbots Overview report, Matomo 5.8 ingests telemetry through the HTTP Tracking API, fed by a server-side integration that sits in front of your site. The integration reads each incoming request, matches the User-Agent against Matomo's supported chatbot substrings, and forwards the matches to Matomo. Three integrations ship today: a Cloudflare Worker, an Amazon CloudFront setup that processes access logs with Lambda, and a WordPress plugin. If none of those fit, you can post bot telemetry to the tracking API yourself.
Human visitor
- 1
Person clicks a link in an AI answer
- 2
Browser loads the page
the _paq tag fires
- 3
Acquisition → AI Assistants report
AI chatbot
- 1
Chatbot fetches the page
server to server, no JavaScript
- 2
Edge integration matches a supported User-Agent
- 3
matomo.php Tracking API
recMode=1 or 2
- 4
AI Chatbots Overview report
That design is exactly why the numbers feel low. It only catches requests that include one of Matomo's supported chatbot User-Agent substrings, such as ChatGPT-User, Perplexity-User, or Claude-User. Anything without a supported substring goes uncounted. Some newer agent traffic also needs verification by signed headers at the edge, and Matomo's chatbot report is not a signature-verification system. So the number isn't wrong, it's just a floor: the supported chatbots it can see, not the full volume of AI crawling.
| Counted in AI Chatbots | Not counted, or not complete there |
|---|---|
| Supported chatbot User-Agent substrings sent through Cloudflare, CloudFront, WordPress, or a custom Tracking API integration | Training-data crawlers, autonomous crawlers, and other bot requests outside Matomo's supported user-triggered AI assistant scope |
Server-side chatbot retrieval requests processed with recMode=1 or recMode=2 | JavaScript-capable AI agents that create normal tracked requests; read AI Agent Overview for those |
Page and document retrieval telemetry that reaches matomo.php | Unknown or spoofed User-Agents, requests blocked before telemetry, and WordPress pages served from static HTML without PHP execution |
If you want to catch the masked crawlers too, that job belongs at the edge: Cloudflare bot rules, WAF logic, signed-header checks, or log scoring that weighs many signals instead of one user-agent string. That's a different tool than an analytics report, and Matomo isn't trying to replace it. For the marketing question, do we appear in AI answers, skip the chatbot count and read the Acquisition → AI Assistants referral report instead. It counts the humans who actually clicked through.
If you're already pushing bot detection to your edge, the same plumbing behind chatbot telemetry runs over the HTTP Tracking API, and it goes hand in hand with excluding ordinary bots and spiders from your normal reports.
How to set up AI Chatbot tracking, if you want it
Open AI Assistants → AI Chatbots Overview. With no integration set up, it shows "No data collected" and a "Set up AI Chatbot tracking now" link. Before you start, check the platform split: Matomo Cloud has the feature enabled, while On-Premise installs need the BotTracking plugin active. If you already see the All Websites AI Chatbot Requests column, BotTracking is already active.
- On-Premise only: go to Administration → Plugins → Manage Plugins, then activate
BotTracking. - Pick your integration: Cloudflare, Amazon CloudFront, WordPress, or a custom HTTP Tracking API integration.
- Deploy the supplied component: the Worker, the Lambda, the WordPress plugin path, or your own server-side middleware.
- Enter your Matomo URL and site ID when prompted.
- Do any filtering at the edge before sending telemetry, so noise never reaches Matomo.
- Send a test request with a known chatbot user agent, wait for your normal processing window, then reload the report to confirm hits are arriving.
| Method | Where it runs | Use it when | Watch for |
|---|---|---|---|
| Cloudflare or CloudFront | Cloudflare Worker, or AWS Lambda reading CloudFront access logs from S3 | Your site already sits behind that edge layer | Filter before sending telemetry; CloudFront data is log-based and can arrive in batches |
| WordPress | Matomo's WordPress plugin path, inside PHP execution | WordPress serves the request and you do not already track the same chatbot request at the CDN | Static HTML caching that bypasses PHP prevents telemetry; do not enable CDN and WordPress tracking for the same request path |
| Custom HTTP Tracking API | Middleware, reverse proxy code, edge function, or another server-side component you control | None of the bundled integrations fit | Send bot telemetry fields, not a normal pageview hit |
For a custom integration, send bot telemetry to matomo.php with idsite, rec=1, recMode=1 or recMode=2, ua, and either url or download. Add http_status, bw_bytes, pf_srv, source, and cdt when your edge layer has them.
https://analytics.example.com/matomo.php
?idsite=1
&rec=1
&recMode=1
&ua=ChatGPT-User%2F1.0
&url=https%3A%2F%2Fexample.com%2Fdocs
&source=CustomEdgeNothing else needs configuring once telemetry starts flowing; detection runs automatically on its own processing path. If your Matomo already sits behind a reverse proxy or CDN, the same forwarded-header gotchas that cause 502s and broken IPs behind a proxy apply here too, so get the proxy headers right first.
How to remove or hide the AI Chatbot Requests column
This is the question with the unsatisfying answer, so let's be clear about the trade-off before you touch anything.
Want to drop AI chatbot tracking entirely? The clean switch is the plugin. On self-hosted Matomo, the chatbot reports and the dashboard column both come from the BotTracking plugin that ships in 5.8. Go to Administration (the gear icon) → System → Plugins, which some builds label Manage Plugins, find BotTracking, and deactivate it. That pulls both the AI Chatbots Overview report and the AI Chatbot Requests column off the All Websites dashboard.
Deactivating BotTracking also stops chatbot request tracking. It is not a column toggle. The Acquisition → AI Assistants referral report is a separate subsystem, so human-referral numbers stay put.
The steps above are self-hosted controls. Matomo Cloud has BotTracking enabled by Matomo, and you should not assume plugin deactivation or custom theme CSS is available there.
I could not find a Matomo 5.x UI toggle for hiding only this All Websites metric. If you want the tracking but not the column on a self-hosted install, the practical workaround is custom CSS while BotTracking keeps collecting. One caution: the column selector isn't documented and can change between versions, so don't copy a class name off a forum post. Find the real one in your own build and keep the rule in a custom theme or plugin stylesheet.
Open the All Websites page, right-click the AI Chatbot Requests header, choose Inspect, and confirm the cell in the console before you rely on it:
// Run in DevTools console on the All Websites page.
// Logs the header cell so you can read off its real class/column index.
[...document.querySelectorAll('th, .column')]
.filter(el => /AI Chatbot/i.test(el.textContent))
.forEach(el => console.log(el.className, el));Once you know the selector, drop a rule into a custom theme or plugin stylesheet (replace the placeholder with what you found):
/* Hide only the AI Chatbot Requests column; BotTracking keeps collecting.
Replace the selector with the one you confirmed via Inspect above. */
#mtmwidget-all-websites .col-ai-chatbot-requests {
display: none !important;
}And if it's just the clutter that bugs you, ignore the All Websites summary and work from the per-site Visitors and Acquisition reports, where the chatbot column doesn't show up at all.
One related gotcha: if BotTracking is active but the report errors out or its underlying table looks missing, that's a separate problem. See the BotTracking "table doesn't exist" fix.
What we'd actually do
For most teams, leave the Acquisition → AI Assistants report on. Human referrals from AI tools are a real and growing channel, and watching it costs you nothing, since the JavaScript tag already collects it.
The AI Chatbots Overview is only worth the edge integration if crawl behaviour is a live concern for you: content coverage, crawl volume, which bots hit which URLs. If it isn't, deactivating BotTracking is a perfectly reasonable call, and the referral report survives it. No need to keep an empty "No data collected" report on your dashboard out of guilt.
And whatever you do, don't read the chatbot count as "how much AI is scraping us." It's the supported chatbot telemetry floor. Training crawlers, autonomous crawlers, masked traffic, and traffic that needs signature verification belong at your edge, not in this report.
Martez connects Matomo with Meta Ads and Google Ads so ROAS, CLV, and attribution sit next to your web analytics instead of in a separate spreadsheet. It's in private beta. Join the waitlist if that's relevant.
The names overlap. The reports don't. Now you know which one you're reading.