Lodesa

← The library

Reviews and repeat business

See which AI assistants are reading your website

When someone asks ChatGPT or Perplexity about your line of work, it can quietly fetch your website to answer them, and your normal analytics never sees a thing. Here's how to catch those visits with Matomo, so you know when AI is reading you.

Guide · Published 17 July 2026 · Reviewed 17 July 2026

The short answer

AI assistants fetch your pages without running JavaScript, so the usual analytics tag can't see them. Matomo added AI chatbot tracking that reads these visits from a server-side feed instead. The steps: run Matomo (self-hosted or cloud), make sure its AIAgents and BotTracking plugins are on, feed the AI visits in through a supported integration (a small Cloudflare Worker if your site sits behind Cloudflare, or your server logs), point it at the same Matomo site as your human traffic, and switch on report archiving. Then the AI Content Requests reports show which pages the assistants read.

Why your analytics can't see AI assistants

Standard analytics, Google Analytics, Matomo's normal tag, works by running a snippet of JavaScript in a real browser. AI assistants don't use a browser. When someone asks ChatGPT, Claude or Perplexity a question and it fetches your page to answer, it pulls the raw page server-side, runs no JavaScript, and vanishes from your reports. You could be getting read and recommended by AI every day and have no idea.

Worth being clear on one distinction: this is about the real-time assistants that fetch a page to answer a live question (they identify themselves as ChatGPT-User, Claude-User, Perplexity-User and similar), not the big training crawlers like GPTBot that scrape the web in bulk. The real-time fetches are the interesting ones, because they map to an actual person asking an actual question that your page helped answer.

1. Get Matomo, and check the AI plugins are on

This feature is Matomo's, so you need Matomo, either self-hosted on your own server or Matomo Cloud. If you already run it, you're most of the way there.

The tracking is provided by two plugins, AIAgents and BotTracking. Recent Matomo versions install and enable them for you; if yours hasn't, add them from the Matomo Marketplace. In your Matomo, go to Administration, then System, then Plugins, and confirm both are activated.

2. Choose how to feed the AI visits in

Because JavaScript can't see these visits, the plugin needs a server-side feed. Matomo supports a few: an official Cloudflare Worker, an Amazon CloudFront integration, a WordPress option, and a generic method that reads your server logs.

If your website sits behind Cloudflare, the Cloudflare Worker is the cleanest route and the one Matomo recommends. Matomo even detects Cloudflare and offers a one-click setup wizard. The rest of this guide follows the Cloudflare path.

3. Set up the Cloudflare Worker

Matomo publishes a small Worker (its tracker-cloudflare project) that sits in front of your site, passes every request through to your server untouched, and quietly reports any AI-assistant visit to Matomo. You give it two settings: your Matomo address and the numeric ID of the Matomo site to record into.

Point it at the SAME Matomo site that already holds your human traffic. That's the whole payoff: Matomo can then show you AI interest and human interest side by side on the same pages. The AI visits are kept in their own table, so they never inflate your normal visitor counts.

The core settings look like this (deployed with Cloudflare's wrangler tool, or through Matomo's guided wizard):

MATOMO_URL = "https://your-matomo-address"
MATOMO_SITE_ID = "1"
# route the worker across your whole site, e.g. yourdomain.com/*

4. Switch on report archiving

This one catches people out. Server-side tracking data has to be processed ("archived") before it appears in reports, and unlike the live dashboard it doesn't always archive itself. If your reports stay stubbornly empty even though visits are arriving, this is almost always why.

On self-hosted Matomo, set up the archiving command to run on a schedule (typically every hour) and turn off browser-triggered archiving. Matomo Cloud does this for you.

# run hourly, e.g. from cron or a systemd timer:
php /path/to/matomo/console core:archive --url=https://your-matomo-address

5. Read what the assistants are doing

Once visits are flowing and archiving has run, the AI Content Requests reports fill in. You can see which of your pages and documents AI assistants fetch most, and compare the content that draws AI interest against what draws human interest. Over time it tells you which of your pages are doing the quiet work of getting you mentioned in AI answers.

A tip: make sure the assistants can actually read your pages in the first place. Plain, well-structured pages get fetched and quoted; heavy, script-dependent pages often don't.

Where this gets hard

The Cloudflare Worker sits in the path of every request to your site. Matomo's is written to be safe (it serves your page first and reports afterwards, so a fault can't take your site down), but it is still a piece of code on your live traffic, and deploying it is not a casual click. It also needs a Cloudflare API token with Workers permission, which is a different, more powerful token than the DNS one most people already have.

A couple of traps I've hit: the Worker can deploy successfully but its route silently fail to attach, in which case it runs on nothing and your site looks perfectly normal while tracking stays at zero. And the reports stay empty until archiving is genuinely running, which sends people hunting for a problem that isn't there.

None of it is beyond a technical person with an afternoon and a careful eye, but it's DNS, edge workers, API tokens and scheduled jobs stitched together, and each one has to be right.

What you end up with

  • A clear view of which AI assistants fetch your pages, and which pages they read most
  • AI interest and human interest shown side by side, without your visitor counts being skewed
  • An early read on whether AI tools are discovering and quoting your business
  • The setup running on its own: worker in place, archiving scheduled, reports keeping themselves current

Facts on this page last checked 17 July 2026, against matomo.org, github.com.

As with everything here, you get one number before any work starts; here's how pricing works.

Related fixes

If the Worker, the API token or the archiving side is more than you fancy taking on, that's exactly the kind of setup I do.

Book a free 30-minute review

The plan is yours to keep · One fixed price, agreed first · Not finished until it works, at no extra charge · No lock-in