[invisit](https://invisit.dev) · [Docs](https://invisit.dev/docs) · [llms.txt](https://invisit.dev/llms.txt) · [llms-full.txt](https://invisit.dev/llms-full.txt)

# Analytics script size

> How much each analytics script weighs, fetched from the address its own docs give and compressed the same way, so the numbers compare.

- Run it: https://invisit.dev/tools/analytics-script-size (free, no account)
- Last changed: 2026-11-05

## Measured sizes (2026-11-04)

Each script fetched from the address its vendor documents, then compressed here the same way: gzip level 9 and Brotli quality 11. 1 KB = 1,000 bytes.

| Script | gzip | Brotli | Uncompressed | Address | Loads more |
| --- | --- | --- | --- | --- | --- |
| Plausible | 1.3 KB | 1.1 KB | 2.8 KB | https://plausible.io/js/script.js | |
| Vercel Web Analytics | 2.0 KB | 1.8 KB | 4.5 KB | https://nextjs.org/_vercel/insights/script.js | |
| Fathom | 2.1 KB | 1.8 KB | 7.0 KB | https://cdn.usefathom.com/script.js | |
| GoatCounter | 3.3 KB | 2.8 KB | 9.2 KB | https://gc.zgo.at/count.js | |
| OpenPanel | 3.4 KB | 3.0 KB | 9.6 KB | https://openpanel.dev/op1.js | |
| Pirsch | 3.5 KB | 3.0 KB | 11.8 KB | https://api.pirsch.io/pa.js | |
| Umami | 3.9 KB | 3.5 KB | 8.6 KB | https://cloud.umami.is/script.js | The replay and heatmap recorder adds about 58 KB gzipped when on. |
| Simple Analytics | 4.8 KB | 4.3 KB | 9.6 KB | https://scripts.simpleanalyticscdn.com/latest.js | |
| DataFast | 5.3 KB | 4.6 KB | 15.4 KB | https://datafa.st/js/script.js | |
| Swetrix | 6.7 KB | 5.9 KB | 23.6 KB | https://swetrix.org/swetrix.js | |
| invisit | 9.0 KB | 8.1 KB | 21.2 KB | https://api.invisit.dev/invisit.js | Heatmap, feedback and interaction modules load only when turned on. |
| Cloudflare Web Analytics | 10.3 KB | 9.3 KB | 31.9 KB | https://static.cloudflareinsights.com/beacon.min.js | |
| Rybbit | 11.8 KB | 10.6 KB | 37.4 KB | https://app.rybbit.io/api/script.js | |
| Matomo | 22.2 KB | 19.3 KB | 68.3 KB | https://raw.githubusercontent.com/matomo-org/matomo/5.14.2/matomo.js | On Matomo Cloud the file also carries the trackers of premium features. |
| Mixpanel | 35.6 KB | 31.2 KB | 110.3 KB | https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js | Session replay loads about 105 KB gzipped more when on. |
| Yandex Metrica | 80.9 KB | 69.9 KB | 208.6 KB | https://mc.yandex.ru/metrika/tag.js | |
| PostHog | 119.9 KB | 100.6 KB | 372.8 KB | https://us-assets.i.posthog.com/static/array.js | Session replay adds about 43 KB and surveys about 47 KB gzipped when on. |
| Google Analytics 4 (gtag.js) | 154.6 KB | 128.3 KB | 443.5 KB | https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX | |

## How the numbers were measured

Every script was downloaded from the exact address its vendor tells you to paste into your page, with compression turned off, and then compressed here: gzip at level 9 and Brotli at quality 11. A CDN can send the same file a little smaller or larger depending on its settings, so measuring them all the same way is the only fair comparison. A kilobyte here is 1,000 bytes.

The script that measures them is in the invisit repository, and the page shows the day it last ran. If a vendor changes its script, the numbers move on the next run.

## What the size does and doesn’t tell you

A smaller file downloads faster, but download is the cheap part. On a phone the cost is mostly parsing and running the code, which happens on the same main thread as your own scripts. A 150 KB analytics script can show up in Interaction to Next Paint on slower devices even when it loads with `async`.

Size also isn’t the whole bill. Some tools load more once they run: session replay recorders, surveys, heatmap modules, or other tags pulled in by a tag manager. Where a vendor documents those extras, the Markdown copy of this page lists them.

## Check your own site

Open your browser’s developer tools, go to the Network panel, filter by JS and reload. The Transferred column is what came over the wire, Size is what the browser had to parse. Do it once with a throttled CPU and a mobile profile and you’ll see which of your scripts actually cost something.

invisit itself is on the list, measured the same way as everyone else. If size is your main concern, some tools here are lighter than ours, and that’s fine to choose.

## Common questions

### Which analytics script is the smallest?

Of the ones measured here, Plausible, Vercel Web Analytics and Fathom are around 1 to 2 KB gzipped. Several others, invisit included, sit between 3 and 10 KB. Google Analytics 4 is the heaviest by far, at roughly 150 KB gzipped.

### Why is gtag.js so big?

gtag.js is Google’s tag platform, not just a page view counter. It carries the code for Google Ads, consent mode, enhanced measurement and more, whether a site uses them or not.

### Does a 100 KB script slow my site down?

Usually less than the number suggests on a fast laptop, and more on a mid-range phone. Scripts loaded with async or defer don’t block the first paint, but the browser still has to download, parse and run them, which competes with your own code for the main thread.

### Why don’t these numbers match what my network panel shows?

Your browser shows what the CDN actually sent, which depends on its compression settings and your browser. Here every script is compressed the same way so they can be compared. Some scripts also change size over time, or by account, so the date matters.

### How big is invisit’s script?

About 9 KB gzipped for the core invisit.js. Heatmaps, the feedback widget and interaction tracking are separate modules that load only on sites that turn them on.
