Named, not implied

The free ones are good.
Here is exactly where they stop.

Counterscale, Edgemetry, Cloudflare's own Web Analytics, Plausible and GA4, by name and row by row. Two of these cost nothing and are worth using. This page is about which job each one is actually for — including the jobs where the free answer is the right one.

  GhostPane Counterscale Edgemetry Cloudflare Web Analytics Plausible Cloud Google Analytics 4
Counts pageviews an ad blocker hidesYes, in edge modeNoNoNoNoNo
Shows which AI crawlers read your pagesYes, in edge modeNoNoNoNoNo
AI assistants as their own channelYesNoNoNoReferrer onlyReferrer only
Data samplingNeverYes, at volumeNeverYes, ~10%NeverAbove thresholds
History keptUnlimited90 days*Unlimited~30 daysUnlimited14 months default
Goals & funnelsYesNoNoNoPaid plansYes
Revenue per conversionYesNoNoNoPaid plansYes
Saved segmentsYesNoNoNoPaid plansYes
Scheduled reports & alertsYesNoNoNoYesYes
Import GA4 historyYesNoNoNoYes
Read-only Stats APIIncludedNoNoGraphQLPaid plansVia BigQuery
Core Web VitalsYesNoNoYesNoPartial
Scroll depth, rage clicks, mediaYesNoNoNoNoManual setup
Cookie or consent bannerNeitherNeitherNeitherNeitherNeitherBoth
Where the data livesYour accountYour accountYour accountCloudflareTheir serversGoogle
Set up without a terminalYesNo, CLIYesYesYesYes
Someone to ask when it breaksIncludedGitHub issuesGitHub issuesCloudflare supportEmail supportCommunity forum
What it costsFree, or one paymentFreeFreeFree$9–19/moFree, paid in data

The top two rows are the only ones that are not a question of budget or effort. Every other product here measures from a script in the visitor's browser. A blocked script is a pageview that never happened, and a crawler executes no JavaScript at all — so no amount of good code makes either of them visible from the page. GhostPane runs inside your own Cloudflare account, which means it can also count the HTML request itself: your blocked-script gap becomes a measured number instead of an industry average, and the AI crawlers reading your pages become a list you can look at. That needs your DNS on Cloudflare; the site itself can be hosted anywhere.

Checked against each project's own repository and documentation in August 2026. * Counterscale keeps 90 days in Workers Analytics Engine, extendable with its optional R2 export. If a row here is out of date or unfair, tell me and it gets corrected — a comparison table nobody can correct is an advertisement.

One at a time

Who each one is genuinely for.

Written to be useful even if you leave without buying anything. If one of these is the right answer for you, the fastest way to find that out should be this page rather than three months of using the wrong tool.

Counterscale

MIT · Cloudflare Workers + Workers Analytics Engine · free

The one most people mean by "there is a free one for Cloudflare". It is well made, it is genuinely free, and for what it sets out to do it is a good answer.

Pick it if

You would rather read the source than take a vendor's word for anything. That is a real reason and nothing below answers it. If what you actually want is pageviews, referrers and paths on a personal site, note that the free tier here covers the same ground without a CLI, does not sample, and upgrades in place if you ever need more.

Where it stops

It stores into Workers Analytics Engine, and Analytics Engine samples — by design, so that ingestion stays cheap at volume. That is fine for "was last month busy" and unusable the moment a number carries money: a sampled funnel is not a funnel, and a sampled revenue total is not a figure you can put in front of a finance team. It is not a bug to be fixed, it is the storage engine. Retention is 90 days unless you add the optional R2 export, and there are no goals, funnels, revenue, saved segments, alerts, or Google Analytics import — it never set out to have them.

Edgemetry

MIT · Cloudflare Workers + D1 · free

Architecturally the closest thing to this project on the list: Workers, D1, a deploy button, multiple sites, multiple users, custom events, a live counter and a real dashboard.

Pick it if

You want that shape and your traffic fits inside it. If a deploy button and stackable filters over pages, referrers, countries and campaigns is the whole job, this does the whole job for nothing.

Where it stops

Its own documentation puts the ceiling at roughly 20,000 visits a day, and the reason is structural rather than tuning. With one Worker and one database there is nowhere to serialise unique-visitor counting except D1 itself — two edge locations each seeing "one visitor" cannot know whether that is one person or two, so every count has to go through the database. GhostPane puts a single Durable Object in front of each site for exactly that reason, which is also what makes session stitching, write batching and a real-time panel that costs no database reads fall out for free. Past that: no goals, funnels, revenue, segments, alerts, Stats API or GA4 import — and, like everything else on this page, no crawler visibility.

Cloudflare Web Analytics

Built into Cloudflare · free

Already in the dashboard of everybody reading this, which makes it the real default — and the option most people compare against without ever saying so out loud.

Pick it if

You want a traffic number on a page you already have, and you are not going to make a decision with it.

Where it stops

It samples, and it says so on its own dashboard: unsampled for about the first week, then roughly a tenth of page loads, extrapolated. Retention is around a month, so there is no quarter-on-quarter comparison to make and no year to look back at. There are no conversions, no funnels, no revenue, no saved segments, and no way to get your own rows out. It is a traffic gauge, and it is a good one; it is not a measurement tool.

Plausible Cloud, Fathom

Hosted · from $9–14 a month, indefinitely

The honest competitor — the products someone who has decided to leave Google Analytics usually buys. Cookieless, well designed, and somebody else keeps them running.

Pick it if

You do not want to own any part of this. No Cloudflare account, no deploy, no upgrade to think about, ever. That is a real service and it is worth real money.

Where it stops

Roughly $228 a year for Plausible and $180 for Fathom, and neither ever stops. Funnels, revenue attribution, saved segments and API access sit on the plans above the entry tier, so the number you compare against is usually not the number you end up paying. The database is theirs, not yours. And both measure from a script in the visitor's browser — so a blocked script and a crawler are outside what their architecture can see at all. That is not a roadmap item they are behind on; it is a consequence of not being in the request path.

Google Analytics 4

Free · your visitors' data is the price

The thing most people on this page are trying to leave, usually for one of two reasons: the consent banner, or the fact that nobody can find anything in it any more.

Pick it if

You need Google Ads attribution and no substitute will do. That integration is real and nothing here replaces it.

Where it stops

Cookies, and therefore a consent banner in most of Europe. Sampling above thresholds. Fourteen months of retention by default. A script around fifty kilobytes against this one's 1.8. Raw data only through BigQuery. And your visitors' behaviour on Google's servers, under terms Google writes.

The awkward question

Three things, and none of them is "a nicer dashboard". If none of the three describes you, take the free tier — it is the same software with these three left out, it does not expire, and buying later is a re-run of the installer rather than a migration.

Seeing what a script cannot

Edge mode counts the HTML request, so ad-blocked pageviews are counted and AI crawlers are visible. Every alternative on this page measures from inside the browser, which is the one place neither of those exists.

Numbers that carry decisions

Goals, funnels that respect order, revenue stored as whole hundredths, saved segments, scheduled reports and a read-only API — unsampled, and none of them behind a higher tier. This is the gap between a traffic counter and something you plan against.

Not being the maintainer

An agency running thirty client sites on a free repository owns every upgrade, every breakage and every “why do these numbers disagree” call, unpaid, forever. One payment moves that to someone whose job it is.

The category comparison — GA4, hosted, self-hosted How the counting actually works

Straight answers

The three questions this page raises.

Why pay for this when Counterscale and Edgemetry are free?

For a personal site, often you should not — and there is a free tier here for exactly that, so the choice is not free-versus-paid, it is which free one. GhostPane Free is one site, unsampled, with every breakdown, real-time and custom events, and it upgrades in place: buying later re-runs the same wizard against the same database, so nothing is migrated and no history is lost. The case for paying starts where a number starts carrying a decision — a funnel you will change a checkout over, revenue you will reconcile against your payment processor, a segment you will report on monthly. And then the one no amount of good open-source code can reach: every alternative here measures from a script in the browser, and a browser script cannot see a pageview an ad blocker cancelled or a crawler that runs no JavaScript at all.

Is GhostPane open source?

No. The source is not public, and being honest about why matters more than the answer: the licence is enforced by the installable build not being downloadable, so a public repository would make paying optional. What you get instead is the running software in your own Cloudflare account, on your own domain, with the database in your Cloudflare dashboard. Nothing phones home, no install ever contacts this deployment again after it is built, and you can query your own D1 database with SQL or export any range as CSV at any time. If auditability is your requirement rather than price, that is a fair reason to pick one of the free projects.

What happens to my install if you disappear?

It keeps running. The licence is checked once, by the installer, and never again — a deployed install has no call home to fail, so nothing here can switch one off, expire one, or take one down by going offline. The Worker, the database, the domain and the data are in your Cloudflare account under your own billing. The thing you would lose is future updates and somebody to email, which is the honest answer for any vendor of any size.

If you got this far, it is probably the first two rows.

Nobody reads a comparison table this long about a hit counter. Set it up in your own Cloudflare account in about two minutes.

One payment · runs in your own Cloudflare account · nothing reports back