Skip to content

Measured · 19 October 2026

Analytics script size compared: GA4, Plausible, Fathom, Simple Analytics, OpenPanel and Cookie Free Analytics

Every analytics tool ships a script that each visitor downloads before anything is counted. On 19 October 2026 we fetched six of them and measured the bytes. GA4's gtag.js was 152,875 bytes gzipped. Cookie Free Analytics' /cf.js was 930.

Why script size matters

A script is bytes to download, often on a phone connection, and then code the browser has to parse and run on the main thread. A small tracker does not make a slow page fast. A large one adds work to every page view, and that work can show up in Core Web Vitals. Size is not the only thing to compare, but it is easy to measure and easy to check yourself.

How we measured

On 19 October 2026 we fetched each public script once with curl -sL. Raw bytes are wc -c. Gzip bytes are gzip -9 reading from stdin, so no file name lands in the gzip header. Your browser may get Brotli or a different gzip level from the CDN, so the network tab will not show these exact numbers. The point is a like-for-like comparison.

The URLs: https://www.cookiefreeanalytics.com/cf.js · https://plausible.io/js/script.js (Plausible's legacy script; their newer per-site snippets differ) · https://cdn.usefathom.com/script.js · https://openpanel.dev/op1.js · https://scripts.simpleanalyticscdn.com/latest.js · https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX (a placeholder ID).

What we did not measure: requests a script makes after it loads, parse and execution time, and what each tool sends per pageview. gtag.js depends on the container. A real property with Ads and other tags configured will not weigh the same as the placeholder.

The table

Cookie Free Analytics was the smallest of the six on this run. Plausible's legacy script was about 1.4 times our gzip size. GA4's gtag.js with a placeholder ID was about 164 times. These scripts change; we re-measure and change the date when we re-read them.

ScriptRaw bytesGzip -9 bytes
Cookie Free Analytics /cf.js1,515930
Plausible (legacy /js/script.js)2,8411,285
Fathom script.js6,9812,086
OpenPanel op1.js8,9293,277
Simple Analytics latest.js7,5153,826
GA4 gtag.js (placeholder ID; real containers vary)439,303152,875

What size doesn't tell you

Size says nothing about cookies, consent, where the data is stored, or what each beacon contains. A small script can still set a cookie. For ours, every field is listed in What a 1 KB analytics script actually sends. Ask the same questions of any tool in the table.

When GA4 is still the right tool

If you buy Google Ads, need remarketing audiences, or rely on Consent Mode's modeling, keep GA4. That is what the extra bytes are for. Cookie Free Analytics counts pageviews, sources, campaigns and named goals. It is not an ads suite.

Try it next to your current tool

Leave your current tag on, add /cf.js, and compare pageviews for a week — the steps are in Run next to GA4 for a week. Hobby is free with a badge; Starter is from €4. Install recipes are on /docs.

What the script sends · vs Google Analytics · vs Plausible · vs Fathom · vs Simple Analytics · vs OpenPanel · Run next to GA4 for a week

All notes · How a visitor is counted