Live visitors now
A pulsing counter of unique visitors in the last 5 minutes, refreshed every 30 seconds while the dashboard is open.
Traditional web analytics, drawn boldly. Every feature below is in every plan, including Free.
A pulsing counter of unique visitors in the last 5 minutes, refreshed every 30 seconds while the dashboard is open.
A big gradient area chart with smooth curves and hover details. Tap any headline card to switch between visitors, pageviews, visits, views per visit, bounce rate and visit duration.
Six key numbers, each with a sparkline and a ▲/▼ change against the previous period of the same length.
The share of visits that saw one page. Visits are grouped cookie-free: same daily hash, pageviews less than 30 minutes apart.
Time from the first to the last pageview of each visit, shown as minutes and seconds.
Views and unique visitors for every page, with mini bars so the winners jump out.
Where visits start and where they end, so you know which pages pull people in and which ones lose them.
Referrers with recognisable icons, grouped into Direct, Search, AI, Social, Referral, Email and Paid.
Visits sent by ChatGPT, Perplexity, Gemini, Grok, Claude and Copilot get their own “AI” channel. (Google AI Overviews and Grok inside X arrive as google.com and x.com, so they show under Search and Social.)
utm_source, utm_medium and utm_campaign in one tidy table. ?ref= links work too.
| newsletter | 960 | |
| x | social | 800 |
| cpc | 480 |
A shaded world map plus flags and share of visitors by country, from Cloudflare’s country header (no IP lookup stored).
Weekday by hour (UTC), darker squares for busier times.
Hour of day (UTC). Darker = busier.
Donut charts for device type, browser and operating system, plus common screen sizes.
Today, 7, 30 or 90 days, 12 months, or any custom range up to 400 days, always compared with the period before.
Up to 50 sites on one account, each with its own dashboard, install code and a “Receiving data” check.
React, Next.js, Vue and other SPAs are tracked automatically through history changes.
About 0.8 KB minified and roughly 0.5 KB gzipped. Async, never blocks your page.
845 bytes, vs a 1 KB budget
No cookies or device storage, no stored IP addresses or user agents, daily-rotated hashes, bot filtering, and Do Not Track and Global Privacy Control respected.
Read-only REST API with Bearer keys: aggregates with comparison, timeseries by hour/day/week/month, breakdowns by every property (including the AI channel) and realtime visitors. JSON or CSV, filters, pagination, an OpenAPI spec. API docs →
GET /api/v1/aggregate?site=…&period=30dMonthly or yearly plans through Stripe Checkout. Upgrade, downgrade or cancel yourself in the Stripe customer portal.
The demo dashboard uses made-up demo data so you can click around.
Open the demoOn our roadmap and not available yet. Priorities can change.
A plain-English email every Monday: what changed, why, and what to do next.
One tap turns any chart or number into a good-looking image for X, LinkedIn or a report.
A small badge for your footer that links to a live privacy explainer.
Watch visits land on a glowing map in real time, with a dark mode for wall screens.
Phone, email or Slack alerts when traffic jumps, and why (“Reddit post on /pricing”).
An optional public page at yoursite/stats for open-startup style transparency.
An estimate of each page’s weight and carbon, with tips to make it lighter.
A heads-up when a page that used to bring traffic starts to fade.
Click any element on your site to make it a goal. No code, no cookies.
See which pages and sources bring paying customers, still cookie-free.
White-label client dashboards and automatic monthly PDF reports.
Type a question in plain English and get the answer as a chart.
Bring your history across from Google Analytics or Plausible.
| Free | Starter | Growth | Business | |
|---|---|---|---|---|
| Monthly | £0 | £5 | £12 | £29 |
| Yearly | £0 | £50 | £120 | £290 |
| Pageviews / month | 5k | 50k | 250k | 1M |
| Sites | 1 | 5 | 20 | 50 |
| Every chart and metric | ✓ | ✓ | ✓ | ✓ |
| AI search referrals | ✓ | ✓ | ✓ | ✓ |
| UTM campaigns | ✓ | ✓ | ✓ | ✓ |
| Live visitors | ✓ | ✓ | ✓ | ✓ |
| No cookies, no banner | ✓ | ✓ | ✓ | ✓ |
| Start free | Choose | Choose | Choose |
Prices in GBP. Yearly = 2 months free. Recording pauses at 120% of your allowance; data is never deleted for going over.
No. The tracking script sets no cookies and uses no localStorage, sessionStorage or IndexedDB. The only cookie in the product is the login cookie for the quietstats dashboard itself, on our own domain, for people who sign in.
quietstats does not store anything on your visitors' devices, so it does not add cookies that a banner would need to cover. Whether you need a banner depends on everything else on your site (embeds, ads, chat widgets, other analytics). The script does read the screen size from the browser, so please read our How it works page, mention quietstats in your privacy notice, and take your own advice if you are unsure.
For each pageview we compute a one-way hash of a random daily salt, your site ID, the visitor's IP address and user agent. Only the first 16 characters of the hash are stored. The IP address and user agent are never written to the database, and the salt is deleted after a day, so the same person cannot be linked across days.
A visit is a run of pageviews from the same daily hash no more than 30 minutes apart. Bounce rate is the share of visits with a single pageview. Visit duration is the time between the first and last pageview in a visit, so single-page visits count as 0 seconds (the same approach most cookie-free tools use).
Under 1 KB minified (about 0.5 KB gzipped). It loads asynchronously and never blocks rendering.
Yes. Paid plans are monthly or yearly subscriptions through Stripe and you can upgrade, downgrade or cancel from the billing page. Cancelling keeps your plan until the end of the period you paid for.
Free for 5,000 pageviews a month. Paid plans from £5.