// 18 March 2026
Google Analytics is a bit wrong. Here's how I use it anyway.
Why I run two kinds of analytics on the sites I build — accurate, cookieless measurement for the truth, and Google Analytics for the trends and the features it is genuinely good at, gated behind real consent.
- · privacy
- · analytics
- · performance


Most small-business sites get Google Analytics bolted on by the developer, a cookie-banner plugin ticked “GDPR compliant”, and that is the end of the conversation. I do something slightly more considered: I run two kinds of analytics, because they are good at different things.
The problem with Google Analytics
Google Analytics is not as accurate as people assume, though it is worth being precise about why, because the usual explanation is wrong.
Safari does not block Google Analytics. What it does is cap the lifetime of the first-party cookie GA sets to seven days, so a customer who comes back a fortnight later is counted as a brand new person. Firefox’s default protection has a fairly limited effect on GA for the same reason — on a direct visit GA is running first-party. So your pageviews survive largely intact. It is the people count that gets distorted, and it gets distorted upwards.
What genuinely removes data is ad-blockers, which do block the script outright, and visitors who decline consent and are therefore never measured at all.
Google does try to fill the consent gap: GA4’s behavioural modelling estimates what non-consenting visitors did, based on those who consented. But it only switches on above a threshold — roughly 1,000 consenting and 1,000 non-consenting users a day, for seven days. A village pub or a plumber will never come close, so on most small business sites there is no modelling at all. On a large publisher there is, and it is an estimate rather than a measurement.
The upshot is less dramatic than “GA is fiction” and more useful: on a small site, GA’s totals are often within a sensible distance of the truth, while its unique visitor figures are the least trustworthy thing on the dashboard. For a news site living on read-time, that was still fatal — I have rebuilt a publisher’s measurement from scratch for exactly this reason.
But here is the thing: GA is consistently wrong. It is like a bathroom scale that reads a couple of pounds heavy — useless for the exact figure, perfectly fine for whether the trend is up or down. If GA says traffic roughly doubled month on month, traffic really did roughly double, even if the absolute number is off. For most small businesses, that direction of travel is what actually matters.
What cookieless is for
Alongside it I set up cookieless measurement — either Cloudflare’s edge statistics for a basic count, or a custom solution that records to a private database. Because this is counted at the server rather than by a script in the browser, there is nothing for an ad-blocker to block, no cookie to expire, and no consent required to run it. It is the figure I trust when I want the floor rather than the trend.
It has its own bias, in the opposite direction. Counting at the server means counting everything, including bots and crawlers, and AI assistants now read some sites more than people do — so it needs filtering, or it flatters you. Nobody hands you a perfect number. What you get is two imperfect numbers that fail in opposite directions, which is far more useful than one you have quietly assumed is right.
Why run both
Because they cover each other’s blind spots:
- Cookieless gives you a private, always-on baseline that nothing in the browser can suppress — the floor you can actually rely on, once bots are filtered out.
- Google Analytics gives you what it is genuinely good at: demographics, acquisition channels, audience insight, and a familiar dashboard — quick to stand up and quick to read, as long as you treat its figures as trends, not gospel.
One tells you how many. The other tells you who, and from where. Between them you get a picture neither manages on its own.
The consent part, done properly
Google Analytics sets cookies, so on my own site — and on the ones I build — it does not load until the visitor actually agrees. Accept, and it starts. Reject, and nothing is set — while the cookieless baseline quietly counts the visit either way, so you are never flying blind. That is a real choice, not a banner that drops the cookies the moment it is in the way of what someone came to read. The cookie policy spells out exactly what gets set, and how to change your mind later.
So that is the setup I reach for: the accurate number and the useful number, side by side, and a consent banner that means what it says.
// thanks for reading
If something here was useful — or wrong — I'd like to hear about it. Email james@willcocks.uk.