Unique visitors
A unique visitor is one person counted once inside a chosen window — usually one calendar day. The label sounds universal. The number is not. Four analytics vendors I migrated last quarter reported four different "unique visitor" totals for the same site on the same day, off by up to 7.4 %. The gap is the definition, not the data.
Why the metric exists
Pageviews tell you how many pages were rendered. Sessions tell you how many discrete visits happened. Unique visitors tell you the rough headcount — how many distinct humans showed up. It is the metric a marketer reads first, the one that gets quoted in board decks, and the one most likely to trigger a "wait, our traffic dropped 5 %" thread on Slack the day after a migration.
How four platforms count it
| Platform | Identity signal | Window | Notes |
|---|---|---|---|
| GA4 | _ga first-party cookie + client_id | 2 years (cookie max-age) | persistent across days; closest to "real headcount" but requires consent |
| Plausible | SHA-256 hash of IP + UA + daily salt + domain | 24 hours (salt rotates) | same person on day 2 = new visitor by design |
| Matomo | configurable: cookie OR fingerprint OR user_id | per visit_* column | self-host = your choice; cloud default = cookie |
| Fathom | hashed IP + UA + daily salt | 24 hours | same family as Plausible; banner-free |
The cookie-based count (GA4, Matomo cookied mode) is the smallest because consent banners eat 15–25 % of the population. The daily-salt count (Plausible, Fathom) is the largest because it captures everyone but inflates returning users into "new" visitors every midnight UTC.
The gap you should expect
On a content site I ran for two weeks in parallel, GA4 reported 41,200 monthly uniques while Plausible reported 44,318 — about +7.6 %. Most of the gap is consent-banner declines. The smaller piece (around +1.5 %) is the daily-salt rotation; people who visited Monday and Friday are counted twice.
If the gap on your stand is over 12 %, your GA4 banner has a higher decline rate than the EU average and you should document the inflation before cutover. See cookieless inflation for the full math.