Start free

Public stats page and widgets

Open stats build trust. Share a read-only page of your totals, put it on your own domain, or show a live counter on your site. All of it is opt-in, cookie-free and totals only: quietstats never has visitor-level data to share.

1. Switch on your public page

In Your sites › Manage › Share & embed, tick Public stats page. Your page is https://quietstats.co.uk/share/YOUR_SITE_ID: charts, top pages, sources and countries, with the date presets. Search engines are asked not to index it. Switch it off any time and the page disappears.

2. Put it on your own domain (optional)

Serve the page at an address like stats.yourdomain.com with a small proxy on your side. No cookies cross over (it’s a different domain), and quietstats never sees anything but the page requests.

Cloudflare (Workers)

Create a Worker, add the route or custom domain stats.yourdomain.com, and deploy:

// stats.yourdomain.com -> your quietstats public page (GET only)
const SITE = 'YOUR_SITE_ID';
export default {
  async fetch(request) {
    if (request.method !== 'GET' && request.method !== 'HEAD') return new Response(null, { status: 405 });
    const u = new URL(request.url);
    const path = u.pathname === '/' ? '/share/' + SITE : u.pathname;
    return fetch('https://quietstats.co.uk' + path + u.search, { headers: { accept: request.headers.get('accept') || '*/*' } });
  },
};

Netlify

In a site deployed on stats.yourdomain.com, add a _redirects file:

/        https://quietstats.co.uk/share/YOUR_SITE_ID  200
/*       https://quietstats.co.uk/:splat  200

Vercel

vercel.json in a project on stats.yourdomain.com:

{
  "rewrites": [
    { "source": "/", "destination": "https://quietstats.co.uk/share/YOUR_SITE_ID" },
    { "source": "/:path*", "destination": "https://quietstats.co.uk/:path*" }
  ]
}

nginx

server {
  server_name stats.yourdomain.com;
  location = / { proxy_pass https://quietstats.co.uk/share/YOUR_SITE_ID; proxy_set_header Host quietstats.co.uk; proxy_ssl_server_name on; }
  location / { proxy_pass https://quietstats.co.uk; proxy_set_header Host quietstats.co.uk; proxy_ssl_server_name on; }
}

Pointing a CNAME straight at quietstats (no proxy) isn’t available yet.

3. Widgets

Switch on Widgets in Manage site, then copy a snippet. Each widget is an iframe of a few KB with no cookies, no tracking and no third-party requests. Paths are shown as text, never links, so nothing is tracked through a widget.

<iframe src="https://quietstats.co.uk/embed/YOUR_SITE_ID/counter" width="240" height="72" style="border:0;max-width:100%" loading="lazy" title="Live visitors (quietstats)" referrerpolicy="no-referrer"></iframe>

Add ?theme=light or ?theme=dark to fix the colours; otherwise they follow the visitor’s system setting. Numbers update every minute (counter) or every 10 minutes (the others). Prefer your own design? Each widget has a JSON version at /embed/YOUR_SITE_ID/counter.json (and sparkline.json, top-pages.json), or use the Stats API.