If you want analytics on Cloudflare without paying anything, you have three real options. They are not variations of one thing — they have different architectures and therefore different ceilings, and which ceiling matters depends entirely on what you need.
Cloudflare Web Analytics
Already in your dashboard, free, nothing to deploy.
What it gives you. Pageviews, visitors, referrers, paths, countries, browsers, and Core Web Vitals from real users. No cookie, no banner. It works without proxying your site.
The ceilings. It samples — the dashboard says so — with unsampled data for roughly the first week and around a tenth of page loads thereafter. Retention is about a month, so there is no quarter-on-quarter comparison and no year to look back at. There are no conversions, no funnels, no revenue, no segments, and no way to export your own rows.
Right for you if you want to know roughly how much traffic you get and you are not going to make a decision with it. It is a good traffic gauge and it is not a measurement tool.
Counterscale
Open source under MIT, runs on Workers and Workers Analytics Engine, installed with a CLI.
What it gives you. Pageviews, referrers, paths and the standard breakdowns, in a clean dashboard, in your own account. It is well-built software and its author has maintained it seriously.
The ceilings. Analytics Engine samples by design, so that high-volume ingestion stays cheap — which is a reasonable engineering trade and a disqualifying one the moment a number carries money. A sampled funnel is not a funnel; a sampled revenue figure is not something you can hand to a finance team. Retention is 90 days unless you add the optional R2 export. There are no goals, funnels, revenue, segments, alerts or Google Analytics import.
Right for you if you want pageviews and referrers on a personal site or a side project, you are comfortable with a CLI, and you would rather read the source than trust a vendor.
Edgemetry
MIT, Workers plus D1, deploy button.
What it gives you. Closer in shape to a full product: multiple sites, multiple users, custom events, a live counter, stackable filters across pages, referrers, countries and campaigns.
The ceilings. Its own documentation puts the practical limit around 20,000 visits a day, and the reason is architectural rather than tuning. With a single Worker and one database there is nowhere to serialise unique-visitor counting except D1 itself — which is exactly the problem Durable Objects exist to solve. Beyond that: no goals, funnels, revenue, segments, alerts or API.
Right for you if that shape fits and your traffic fits under the ceiling.
What all three share
None of them can see two things, and it is the same reason in both cases: they measure from a script in the browser.
Blocked pageviews. A visitor running an ad blocker is a pageview that never existed as far as any of these are concerned. How large that gap is depends on your audience, and for a technical audience it is not small.
AI crawlers. A crawler executes no JavaScript, so it is not undercounted — it is absent. Which crawlers read your pages is a question none of these three can answer, at any configuration.
Both blind spots come from measuring inside the page. The only fix is measuring the request, which requires being in the request path — a thing you can only do in infrastructure you control.
How to choose
Ask which ceiling you hit first.
- Sampling — if any number will inform a decision involving money, Counterscale and Cloudflare Web Analytics are out on this alone.
- Retention — if you need year-on-year, Cloudflare Web Analytics is out.
- Traffic — above roughly 20,000 visits a day, Edgemetry's architecture becomes the constraint.
- Features — if you need funnels, revenue or segments, none of the three has them and none is planning to.
- Visibility — if you need to know what ad blockers hide or what AI crawlers read, none of the three can, by construction.
If none of those ceilings is anywhere near you, take the free option that installs most easily and get on with your work. That is a genuinely correct answer and most sites should reach it.
If one of them is binding, the question stops being "which free tool" and becomes "what is the thing I actually need", which is a different article — and worth being specific about rather than resolving by brand.
Common questions
Is Cloudflare Web Analytics accurate?
It is sampled, and its own dashboard says so — roughly unsampled for the first week, then about a tenth of page loads with the rest extrapolated. Retention is around thirty days. For a rough sense of traffic volume that is fine; for anything where the exact number matters, or for comparing this quarter against last, it is the wrong instrument.
What is the best free self-hosted analytics for Cloudflare?
It depends on which limit you hit first. Counterscale is the most mature but samples, because Workers Analytics Engine samples by design. Edgemetry is closer to a full product on D1 but caps around 20,000 visits a day for architectural reasons. Cloudflare's own Web Analytics needs no deployment but samples and keeps a month. None of the three offers funnels, revenue or crawler visibility.
Can free analytics tools show me AI crawler traffic?
No, and this is not a feature gap that can be closed. All of them measure with a JavaScript snippet, and crawlers execute no JavaScript, so the visit is absent rather than undercounted. Seeing crawler activity requires measuring the HTTP request itself, which means running code in your site's request path — something a script-based tool cannot do regardless of how it is configured.