Performance · Published October 14, 2026
Analytics Script Performance Benchmarks (2026)
Recorded transfer size, decoded weight, and Slow 4G page-load overhead for Fathom, Plausible, DataFast, PostHog, and GA4 — measured on AnalyticsVS controlled fixtures, never estimated.
Updated

Quick answer
Quick answer
Six recorded AnalyticsVS benchmarks put Fathom, Plausible, and DataFast in a light cluster (~2.7–6.4 KiB transfer, about +230–260 ms Slow 4G load overhead) and GA4 / PostHog in a heavy cluster (~144–171 KiB transfer, about +1.2–1.3 s overhead). Decoded size is what the browser parses — and it is much larger than the download. Full run reports stay on AnalyticsVS; we never publish estimated script weights.
Performance matrix
Live numbers from our recorded benchmarks — not estimates. Open each report for run ranges and environment notes.
| Tool / install | Transfer | Decoded | Load overhead | Loading | Report |
|---|---|---|---|---|---|
| 2.7 KiB | 6.8 KiB | +251 ms | Defer | Full report → | |
| 3.2 KiB | 5.9 KiB | +250 ms | Async | Full report → | |
| 5.7 KiB | 12.5 KiB | +231 ms | Defer | Full report → | |
| 6.4 KiB | 15.0 KiB | +261 ms | Defer | Full report → | |
| 144.3 KiB | 451.2 KiB | +1.28 s | Async | Full report → | |
| 170.5 KiB | 507.6 KiB | +1.16 s | Async | Full report → |
Sorted by transfer size. Color bands match our methodology thresholds (green / amber / red). Averages of 7 cold runs on the minimal-v1 Slow 4G fixture.
Why analytics script weight matters
Most performance work focuses on *your* code: images, fonts, framework bundles. The analytics tag often gets a free pass because it feels like "just tracking."
It still competes for bandwidth and main-thread time on every page view. On a marketing site that only needs pageviews and goals, a lightweight tag is usually enough. On a product analytics stack that ships session replay, feature flags, and a full SDK, you are buying capability — and paying for it in kilobytes and milliseconds.
This Learn post packages our recorded script benchmarks into one matrix so you can compare tools before you dig into individual run reports.
How AnalyticsVS measures (and what we skip)
Every number in the matrix comes from our minimal-v1 fixture — a static HTML page with the vendor's default snippet, no fonts, images, frameworks, GTM, or consent managers. We run seven cold navigations per tool plus a paired blank baseline on simulated Slow 4G in Chromium.
Published load times show the added cost of the tag (with-analytics minus baseline), not a marketing claim about "tiny scripts."
What v1 measures: transfer size, decoded body size, script load time, page-load overhead, and whether the install is render-blocking.
What v1 does not claim yet: heap allocation, Lighthouse score deltas, field LCP/INP/CLS, or multi-tag GTM containers. If another site publishes those columns from a single DevTools pass, treat them as a different methodology — useful context, not interchangeable with our averages.
Full procedure: benchmark methodology.
Transfer size vs decoded size
Transfer size is what travels over the wire after compression. Decoded size is what the browser parses and executes. Those numbers diverge — sometimes by a lot.
On our recorded runs, Plausible transfers about 3.2 KiB and decodes to about 5.9 KiB. GA4 transfers about 170.5 KiB and decodes to about 507.6 KiB. PostHog sits in the same heavy band on transfer and decoded weight because the default web snippet pulls a full product SDK, not a pageview-only beacon.
If you only compare gzipped marketing numbers, you understate the parse and compile work the device still has to do.
How to read load overhead
On an empty test page, lightweight tools (Fathom, Plausible, DataFast default and cookieless) cluster around +230–260 ms of page-load overhead under Slow 4G. GA4 lands around +1.16 s. PostHog lands around +1.29 s.
On a real site those milliseconds do not stack additively on top of every other asset — downloads overlap. Still, the empty-page overhead is a clean lower bound for "how expensive is this tag in isolation?"
All six installs we recorded so far are async or defer and non-blocking. Script *weight* and *initialization work* are the differentiators, not classic parser-blocking snippets.
Choosing a tool with performance in mind
If you need simple web analytics (pages, referrers, goals) and care about script weight: start with Fathom, Plausible, or DataFast — then compare features and price, not only bytes.
If you need product analytics, flags, or replay: PostHog is a different category. Expect a heavier script; decide whether that capability is worth the cost on marketing pages vs app routes.
If you need Google Ads / GA4 ecosystem depth: Google Analytics 4 remains the default — with a heavier footprint and more compliance work.
Next step: open the head-to-head pages for your shortlist, then run your traffic through the pricing calculator.
What we are measuring next
This matrix only includes tools with recorded AnalyticsVS benchmarks. Umami, Matomo, and additional install variants are on the backlog. When those runs publish, this page updates — we do not fill gaps with estimates.
For per-run charts, environment notes, and raw ranges, open each linked benchmark report from the matrix above.