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. We re-measured Plausible and Fathom on September 8, 2026, and our own script on November 5, 2026; the Matomo and Google Analytics rows are still June figures.
| Tool | Compressed size | Relative to Simplytics |
|---|---|---|
Simplytics (track.js) |
1.2 KB | 1× |
Plausible (base script.js) |
1.3 KB | 1.1× |
| Plausible (with outbound links, downloads and events) | 2.1 KB | ~1.7× |
| Fathom | 2.1 KB | ~1.7× |
Matomo (matomo.js) |
~20 KB (their forum's figure, not ours) | ~16× |
Google Analytics 4 (gtag.js) |
~140 KB (June 2026) | ~114× |
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
# 1228 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.
We downloaded Plausible's and Fathom's 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 optional features as separate bundles, so the like-for-like comparison with Simplytics (which includes outbound links, downloads and events) is script.outbound-links.file-downloads.tagged-events.js, at 2,084 bytes. Matomo's figure is the forum-documented size of a default install, not our own measurement; the only instance we can fetch without an account is the plugin-heavy public demo, at ~46 KB.
Plausible's base script is now slightly larger than ours, and leaves out outbound links, downloads and events.
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:
- Page weight budgets. 140 KB is more JavaScript than many entire pages ship. If you care about Core Web Vitals, your analytics tool should not be your heaviest script.
- Parse time on cheap phones. Downloading is half the story — a low-end Android phone also has to parse and execute that JavaScript on every page load.
- Data caps. A site with 50,000 monthly pageviews makes its visitors collectively download ~7 GB of analytics JavaScript per month with gtag.js. With a ~1.2 KB script, it is ~61 MB.
For 17 tools with brotli sizes measured in September 2026, see analytics JavaScript size across 17 trackers.
When GA4 is worth it
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 ~114× the JavaScript for numbers you could get from a 1.2 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.2 KB cookie-less script, for $1/month billed yearly. You can compare the rest of the trade-offs on our comparison pages, including the full Google Analytics comparison.
Measurements taken June 10, 2026; Plausible and Fathom re-measured September 8, 2026, after both had drifted from the vendor claims we first quoted. Our own number was 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), again September 4, 2026, when moving code comments out of the served file brought it down to 1,799 bytes, and again November 5, 2026, when it started shipping minified (1,888 → 1,228 bytes). Sizes change as vendors update their scripts — if you spot a stale number, email us and we will re-measure.