The under-1 KB script and single-page apps
The standard script is about 476 bytes to download (845 bytes uncompressed), and tracks React, Next.js, Vue and other single-page apps automatically.


What it does
One async script tag. It counts a pageview on load and on history changes, and never blocks your page.
Why it matters
Analytics shouldn’t cost your visitors load time. Smaller scripts also mean less to audit.
How to use it
- Paste the tag before </head> once (for React, Next.js or Vue, in your root layout or index.html).
- Route changes through history.pushState and back/forward are counted automatically.
- Keep data-dnt="true" so Do Not Track and Global Privacy Control visitors are skipped.
HTML
<script data-host="https://quietstats.co.uk" data-dnt="true" src="https://quietstats.co.uk/js/script.js" id="YOUR_SITE_ID" async defer></script>Replace YOUR_SITE_ID with the ID shown on your site’s Manage page.
How it works
- Paste the tag before </head>.
- Route changes through history.pushState and back/forward are counted.
- Sends with sendBeacon so it never holds up navigation.
Privacy
- Collected: See Zero cookies, privacy built in
- No cookies, and nothing stored on the visitor’s device.
- Reports show totals only: never a visitor list, IP address or single visit.
Limits
- script.js: about 476 bytes to download (845 bytes uncompressed); 2,344 bytes for the optional events script
Plans
Every plan, including Free. quietstats is free during launch: the Free plan covers 1 site and 5,000 pageviews a month, and no card is needed. See pricing.
Questions
How does it compare with others?
See the measured script size chart on the compare page.