Skip to content

Craft Analytics ​

My aim was to build an analytics plugin that is lightweight, privacy-focused, and feature-rich, with GDPR compliance at the heart of its design. Craft Analytics runs on your own server, understands your Craft content, and gives you useful reports without sending visitor data to a third-party platform.

It also understands your content: it can tell you how the Blog section is doing, not just that /blog/some-slug got 400 views.

What it does differently ​

  • No cookies, so no banner. Visitors are counted with a hash built from a salt that is thrown away and replaced every 24 hours. Nothing is stored on anyone's device.
  • No IP addresses. The address is used in memory to work out that hash and then dropped. It is never written to a table, a log or a cache key.
  • No per-visitor records. The database holds counts. If someone asks what you know about them, the answer is nothing.
  • No effect on page speed. Everything happens after the response has been sent. We measure a 0.46 ms difference in time-to-first-byte, which is within the noise.
  • Storage that does not track traffic. A page viewed a million times takes up the same one row as a page viewed twice.
  • Reports built on your content model. Traffic by section, entry type and author, because Craft already knows all of that.

Start here ​

Reports ​

Privacy ​

Configuration ​

For developers ​

When something's wrong ​

  • Troubleshooting - starting with empty reports, which is almost always the cron

Lite vs Pro ​

Lite is a usable analytics tool on its own, not a trial of Pro.

LitePro
Pageviews, visitors, sessions, bounce rate✅✅
Real-time✅✅
Pages, sources, devices✅✅
Content: sections, entry types, authors✅✅
Crawler reporting✅✅
CSV & JSON export✅✅
Entry sidebar & dashboard widgets✅✅
Campaigns & attribution✅
Geography✅
Events, outbound clicks, downloads, scroll✅
Goals & funnels✅
Formie & Commerce integrations✅
Consent-aware Tier 2✅
Segments & the extension API✅
Emailed summaries✅
GraphQL API✅

Upgrading is a licence change. Both editions use the same tables, so there is no migration to run and your existing data carries over.

A note on AI ​

In the spirit of being upfront: I used AI tooling while building this plugin, to think through approaches, to speed up some of the groundwork, and to help draft these docs. It was a tool in the workshop, not the builder. Every line of code was reviewed, tested and put in place by a developer who understood it, and nothing shipped that I could not explain and stand behind. The judgement calls and the final code are human.

Digital help you can trust.