Simplytics

We measured how much JavaScript five analytics tools make your visitors download

Every analytics tool works the same way at heart: a script tag on your page sends a request when someone visits. The difference is how much code that script makes every single visitor download first.

We measured it. Here are the compressed transfer sizes — the bytes a visitor's browser actually pulls over the network — first measured on June 10, 2026. The Plausible and Fathom rows were re-measured directly on September 8, 2026 and both changed; the Matomo and Google Analytics rows are still the June figures, labelled as such below.

Tool Compressed size Relative to Simplytics
Simplytics (track.js) 1.8 KB
Plausible (base script.js) 1.3 KB 0.7×
Plausible (with outbound links, downloads and events) 2.1 KB ~1.2×
Fathom 2.1 KB ~1.2×
Matomo (matomo.js) ~20 KB (their forum's figure, not ours) ~11×
Google Analytics 4 (gtag.js) ~140 KB (June 2026) ~78×

How we measured

For our own script and Google's, we downloaded the files and compressed them the way a web server would:

curl -sL https://simplytics.dev/track.js | gzip | wc -c
# 1799 bytes

curl -sL "https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX" | gzip | wc -c
# 139994 bytes

Raw, uncompressed, gtag.js is about 395 KB of JavaScript. And that is before a tag manager container or a cookie-consent banner script, which GA4 setups in the EU usually need — consent platforms commonly add another 35–120 KB.

For Plausible and Fathom we stopped using their published claims and downloaded their scripts the same way, on September 8, 2026 — plausible.io/js/script.js came to 1,296 bytes gzipped and cdn.usefathom.com/script.js to 2,097. Plausible ships its optional features as separate bundles, so the like-for-like comparison against Simplytics (which includes outbound links, downloads and events as standard) is script.outbound-links.file-downloads.tagged-events.js, at 2,084 bytes. Matomo is the one number we cannot stand behind on our own measurement: it is the forum-documented size of a default install, and the only instance we can fetch without an account is the plugin-laden public demo at ~46 KB.

Plausible's base script is smaller than ours. We said 2.5 KB here for three months and it was wrong; this is the corrected number.

Does ~140 KB actually matter?

For one visit on fast Wi-Fi: not much. Across every visitor, on mobile networks, it adds up to real cost:

The honest caveat

Google Analytics does vastly more than we do — ads attribution, audiences, BigQuery export, predictive metrics. If you use those features, the 140 KB buys you something real. Our argument is narrower: most site owners open analytics to see visitors, pages, referrers, and where traffic comes from. Shipping ~78× the JavaScript for numbers you could get from a 1.8 KB script is a bad trade.

That is the entire idea behind Simplytics: the essential numbers — visitors, views, referrers, countries, devices, traffic channels including AI assistants, sessions, custom events, outbound clicks, funnels — from a ~1.8 KB cookie-less script, for $1/month billed yearly. You can compare the rest of the trade-offs honestly on our comparison pages, including the full Google Analytics comparison.

Measurements taken June 10, 2026, with Plausible's and Fathom's re-measured directly on September 8, 2026 (they had been quoted from the vendors' own claims, and both had drifted — Plausible's downward, Fathom's upward past the "<2 KB" it no longer meets); our own number re-measured June 11, 2026 after custom-event and outbound-click tracking shipped in track.js (1,051 → 1,574 bytes — the new features cost half a kilobyte), again June 12, 2026 after single-page-app auto-tracking shipped (1,574 → 1,985 bytes), and again September 4, 2026, when it went down (1,985 → 1,799 bytes) — a prerender guard and a delayed first heartbeat were added, and the explanatory comments were moved out of the served file, where every visitor had been downloading them. Sizes change as vendors update their scripts — if you spot a stale number, email us and we will re-measure.

← All posts