Most Google Analytics alternative reviews compare the wrong numbers
Not on purpose. They just grab the first script they find.
For Plausible that is usually the old script.js, still served and still linked from countless guides, even though since October 2025 the install page hands every site its own pa-*.js snippet. It weighs 1,271 bytes and does exactly one thing: count pageviews. Our standard script weighs 1,985 bytes and does twelve things. Put those two numbers side by side and we lose.
Now compare like with like. Plausible also ships a build with outbound links, file downloads, tagged events, pageview props and revenue. That one weighs 2,200 bytes. Our smallest preset weighs 471.
Same comparison, opposite result. The difference is that we opened the docs for both.
So we measured everything ourselves. Nine tools installed, script sizes pulled from production with real compression headers, prices read out of page source because most of them render behind sliders, and every data processing agreement and privacy policy read line by line. Every number below has a source and a date.
We make one of these tools. That is why there is a section on what Statable cannot do, and it is not shorter than the rest.
First: these tools count different things
This breaks half the price comparisons out there, and almost nobody mentions it.
| What the plan limit counts | Who counts that way |
|---|---|
| Pageviews plus events | Statable, Plausible, Fathom, Seline, Umami |
| Pageviews plus events plus 10% of session extensions | Pirsch |
| "Data points" (the pricing page does not define the unit; the docs describe both pageviews and events) | Simple Analytics |
| Pageviews (the slider says "monthly pageviews"; the page does not say whether events count) | Rybbit |
| Hits | Matomo |
| Unique visitors per day | Counter.dev |
Take a shop with 100,000 pageviews and 50,000 events a month. In most tools that is 150,000 and you pay for the next tier up. In Rybbit, going by the slider, it is 100,000. In Counter.dev it is a different unit and you cannot compare at all without converting first.
So every price below comes with the unit it is charged in.
Script weight
Measured 16 September 2026, from production, with real compression headers. The compressed column is what actually reaches the browser.
| Tool | Configuration | Raw | Compressed |
|---|---|---|---|
| Counter.dev | default | 1,112 | 397 |
| Statable | Nano | 916 | 471 |
| Plausible | base, pageviews only | 2,841 | 1,271 |
| Statable | Standard, 12 modules | 4,934 | 1,985 |
| Fathom | default | 6,981 | 2,090 |
| Plausible | all extensions | 5,173 | 2,200 |
| Umami | default | 4,757 | 2,317 |
| GoatCounter | default | 9,213 | 3,358 |
| Pirsch | default | 11,842 | 3,567 |
| Simple Analytics | default | 7,515 | 3,854 |
| Seline | default | 4,285 | 4,285 |
| Rybbit | default | 33,968 | 11,123 |
| Matomo | default | 156,224 | 44,410 |
| Google Analytics 4 | default | 429,749 | 147,873 |
Four things stand out.
GA4 is 372 times heavier than the lightest alternative. Not percent. Times. If you have read that privacy-first analytics is "lighter", that is the number behind it.
Matomo is the heaviest of the privacy-first tools at 44 KB. That is 22 times our Standard build. Private and lightweight are separate axes, and most reviews treat them as one.
Seline serves no compression at all. No brotli, no gzip: 4,285 bytes go over the wire as they are. Its raw file is almost three times smaller than Pirsch's, yet in practice it is heavier. You will not find this in any review, because nobody checks response headers.
We are third, not first. Counter.dev and base Plausible are both lighter than our Standard build. Our Nano preset beats Plausible but loses to Counter.dev by 74 bytes.
It matters what Nano gives up for that. It is the core plus single-page app navigation and nothing else: no engagement time, no scroll depth, no outbound links, no downloads, no tagged events. If all you want is a pageview counter, 471 bytes is honest. If you want events, you take Standard and its 1,985 bytes. The full module list and what each one costs in bytes is in our docs.
One caveat on sourcing our own two rows. The script address is per-site and serves whichever preset that site chose, so there is no public URL that always returns Nano; the 471 figure comes from the same build artefact production serves, and the dashboard shows it on the Tracking Code card. And our docs round Standard to "about 2.2 KB"; the exact figure on 16 September was 1,985.
Price
Monthly billing, no annual discount. Three volume points.
| Tool | 10k | 100k | 1M | Unit |
|---|---|---|---|---|
| Pirsch Standard | $6 | $12 | $54 | views + events + 10% of session extensions |
| Statable | $9 | $19 | $69 | views + events |
| Plausible Starter | $9 | $19 | $69 | views + events |
| Rybbit Standard | no tier | $19 | $69 | pageviews |
| Seline | $9 | $24 | $99 | views + events |
| Fathom | no tier | $15 | $60 | views + events |
| Simple Analytics | €15 | €20 | €60 | "data points"; a free plan with unlimited pageviews, 30-day history and a required badge is not shown |
| Matomo Cloud | no tier | €38 | €172 | hits |
| Umami Cloud | $0 | $0 | $20 | events |
| GoatCounter | free | free | free | pageviews |
| Counter.dev | pay what you want | uniques per day | ||
| Google Analytics 4 | $0 | $0 | $0 | events |
We match Plausible Starter to the dollar at all three points, and Rybbit at the two it offers. That is not a coincidence and not something to hide: price stopped being the argument in this niche a while ago. What matters is what those dollars include, and the two sections below. Our own tiers are on the pricing page.
A few notes on the free end.
GoatCounter really is free, and its site says commercial use is fine: "Running your personal website or small-to-medium business on it is fine". The claim that GoatCounter is for non-commercial projects only travels around reviews and is simply wrong. The limit there is volume, not purpose.
Umami Cloud gives 100,000 events a month on its $0 Hobby plan, with no time limit stated. That is the most generous free tier among the tools that also sell a paid plan. GoatCounter and Counter.dev are free outright.
Fathom is the only one that says plainly that it wants a card up front: "We ask for a credit card at sign-up". Rybbit says "no credit card charges until the trial ends", which is not the same sentence.
Where the data sits, and where the company sits
These are two different questions, and this is where most of the confusion lives.
| Tool | Data | Legal entity |
|---|---|---|
| Statable | NorthC, Netherlands | Key Arg B.V., Netherlands |
| Plausible | Germany | Estonia |
| Simple Analytics | Netherlands | Netherlands |
| Pirsch | Hetzner, Germany | Emvi Software GmbH, Germany |
| Seline | Hetzner, Germany | sole trader, Poland |
| GoatCounter | Hetzner, Finland and Germany | individual, Ireland |
| Counter.dev | Linode, Frankfurt | individual, Berlin |
| Rybbit | Hetzner, Germany and Finland | Tomato.gg LLC, Michigan, USA |
| Umami Cloud | "US and EU" | California, USA |
| Fathom | US (anonymised analytics); EU visitors processed in the EU | Canada |
| Matomo Cloud | Frankfurt and Dublin per the DPA | New Zealand |
| Google Analytics 4 | global | USA |
Servers in Germany do not make a company European. Rybbit keeps data on Hetzner, which is genuinely Europe, but the company itself is registered in Michigan. What that means for you is a question for your lawyer, but you want to know it before you sign, not after.
Fathom runs the other way round. It strips EU visitors' IP addresses inside the EU, then stores the anonymised analytics on its US servers. The company itself is Canadian.
Matomo's contract chain runs through New Zealand. The DPA names Frankfurt and Dublin, and their FAQ confirms the data stays in Europe: "100% of your data and backups are securely stored in Europe, our company is based in New Zealand and we have contracts with AC3 NZ and they're in contract with AWS New Zealand". So the data is in the EU, but the contracts that govern it are with a New Zealand company and a New Zealand reseller of AWS. Whether that matters depends on what your DPA review asks for.
Rybbit and Umami list Anthropic and OpenAI as subprocessors for their AI features. It is in their own subprocessor lists. For a tool sold on privacy, that is a line worth reading.
Fathom's subprocessor list is dated 24 December 2021. Their security page meanwhile mentions PlanetScale and ClickHouse Cloud, neither of which appears on that list.
What each tool claims about consent banners
This is the interesting part, because the marketing page and the legal page often say different things.
Fathom, on their compliance page: "Cookie-free does not automatically mean outside device-access rules." Their marketing talks about running without a banner.
Rybbit, in their privacy policy, hedges: "typically don't require". Typically. Not "do not".
Counter.dev goes against everyone else, and looks like the most honest of the set. Its README on GitHub, asked whether you can skip the banner, answers "I don't know" and then: "it seems that due to the ePrivacy Directive all SaaS Web Analytics - including counter.dev - needs consent. Even though most providers might claim the contrary." The word GDPR does not appear anywhere on their site. We searched the source of fifteen pages, blog included.
We are not lawyers and this is not legal advice. The point is narrower: in this niche, the sales page and the legal page of the same product routinely disagree. Read the compliance page, not the homepage. If you want the technical side of how cookieless measurement actually works, we wrote that up on our cookieless analytics page.
One more thing to clear up. The 10 million limit in GA4 is real, but it is not a collection limit. It is the quota for event-level queries in reports and Explorations: 10 million events for standard properties, up to 1 billion for GA 360. When a report needs more events than that, GA4 samples the data. For collection itself we could not find a documented monthly cap.
What sets them apart, and what does not
We checked 24 features across all twelve tools against each vendor's own docs, 288 cells, every "yes" with a page behind it. Most of the grid is the same colour. Here is the part that is not.
| Feature | Who has it | |
|---|---|---|
| Official MCP server, for Claude, Cursor and other AI clients | Statable, Rybbit, Seline, Umami, Matomo, GA4 | with write access (create goals, funnels): Statable, Rybbit, Matomo only |
| Command-line tool | Statable, GoatCounter | |
| Scroll depth | Statable, Plausible, Simple Analytics, GA4 | |
| Embeddable widgets, not an iframe of the dashboard | Statable, Simple Analytics, Matomo, GoatCounter, Rybbit | |
| Import your Google Analytics history | Statable, Plausible, Fathom, Simple Analytics, Pirsch, Matomo | |
| 404 and status-code tracking | the same six | all need a line in your error template |
| Self-hosting | Plausible, Umami, Matomo, GoatCounter, Counter.dev, Rybbit | not Statable |
| Open-source core | the same six | not Statable |
| Email reports | nine of twelve | we could not find them in our own docs, so we are not claiming them |
Now the other half. Custom events, a REST API, a shareable public dashboard, cookieless collection, goals, funnels, a WordPress plugin, engagement time, segments: each of these is in eight to eleven tools out of twelve. If a review sells you on any of them, it is selling you the category, not the tool.
The MCP row deserves a second look because it is the newest and the least evenly spread. Half the tools have an official server. Only three let an AI client change things rather than just read them. And two of the community-built ones come with warnings from the vendor itself: Pirsch's docs call theirs "unofficial, not supported", and the "official Fathom MCP" you will find in registries belongs to Fathom.ai, a different company.
Statable by the same yardstick
So we are not measuring ourselves with a different ruler.
Weight: Nano 471 bytes, Standard 1,985 bytes. Third place, not first.
Price: $9, $19, $69 at 10k, 100k and 1M. Pageviews plus events.
Data: NorthC near Amsterdam. Company: Key Arg B.V., Netherlands, KvK 89388496. Both the data and the entity sit in the EU.
Trial: 30 days, no card. Plus permanent free access for .edu, .github.io and .gitlab.io domains.
Now the parts we do not do.
The server is closed source. Only the client-side pieces are open: the CLI, the MCP server and the integrations (n8n, tag template), all on GitHub under key-arg. We do not offer self-hosting. If running analytics on your own hardware is a requirement, take Matomo, Umami or GoatCounter, and that is a fair reason not to pick us.
No heatmaps, no session recording, no cohort reports. What the product does do is listed in the feature overview; if it is not there, we do not have it.
We cannot look at other people's sites. Statable measures wherever you installed the script. If the job is estimating a competitor's traffic, that is a different class of tool.
Which one to pick
No winner, because there isn't one.
You want the smallest possible script and nothing else. Counter.dev, 397 bytes, pay what you want. There is no volume limit; its metrics are counted in unique visitors per day, so its numbers will not line up with anyone else's.
You want something free with a real dashboard. Umami Cloud, 100,000 events free.
You want it on your own server. Matomo if you need every feature and 44 KB does not bother you. Plausible, Umami or GoatCounter if you want it light. Rybbit too, though its script is 11 KB.
You want a full GA4 replacement with events, and weight matters. That is us, Plausible and Pirsch in one price band. Pirsch is cheaper, we and Plausible are level. Look at two things: whether you actually need all twelve modules, and where the company is registered.
You want the data and the company both inside the EU. Statable, Plausible, Simple Analytics, Pirsch and Seline all qualify. Counter.dev and GoatCounter do too, run by individuals rather than companies.
How we measured
Script sizes: curl with Accept-Encoding: br, then gzip, taking the smallest the server actually served. We checked the response header confirmed the encoding, which is how Seline turned up as serving none. Measured 16 September 2026. Matomo's and GA4's files are assembled dynamically and drift by a few dozen bytes between requests; treat those two rows as ±0.1%.
Prices: from the pricing pages. Almost all of them render behind a slider, so values came from page source or from screenshots of a real browser at each slider position. An automated reader gave us wrong annual Fathom prices once, so the table uses the values from source.
Jurisdictions and subprocessors: from data processing agreements, privacy policies and security pages.
What we could not find and did not guess: Google Analytics 360 pricing, annual prices for Simple Analytics and Umami, the specific data centres behind Umami's "US and EU", and Rybbit's registration number.
Ready to take control of your web analytics? Try Statable free for 30 days. No credit card required, full feature access, built for GDPR. Start your free trial or view a live demo.

