Analytics sans cookies : comment compter, et ce qu’on y perd
Ce que veut dire « sans cookies », comment six outils comptent les visiteurs, ce que chacun perd, et pourquoi cela ne règle pas la question du consentement.
« Sans cookies », ça garantit une seule chose : l’outil ne dépose pas de cookie. Ça ne dit ni comment on compte les gens, ni ce qui est conservé ailleurs, ni si vous pouvez vous passer de consentement. Ce sont pourtant les vraies questions. En construisant Trailic, j’ai donc lu ce que six outils disent d’eux-mêmes, dans leur documentation et leur code source. Voici ce que j’ai trouvé, vérifié en novembre 2026.
Ce que recouvre l’expression
Trois techniques différentes se vendent sous la même étiquette.
Un stockage qui n’est pas un cookie. Un script peut garder un identifiant dans le localStorage et affirmer à raison qu’il ne pose aucun cookie. Pour le visiteur, rien ne change : l’identifiant dure. Les lignes directrices de la CNIL citent d’ailleurs le « local storage » à côté des cookies parmi les technologies visées.
L’empreinte, ou fingerprinting. En combinant assez d’attributs d’un navigateur, on obtient un identifiant qui dure sans rien stocker. La CNIL et le Comité européen de la protection des données (CEPD) le rangent tous deux dans le champ de la règle sur les traceurs.
Un hash éphémère calculé sur le serveur. Rien n’est écrit dans le navigateur. Le serveur hache ce que chaque requête transporte déjà, avec un sel qui change, et l’identifiant meurt de lui-même. C’est ce que la plupart des outils soucieux de vie privée entendent par « sans cookies », et c’est le sujet de la suite. La fiche du glossaire sur le suivi sans cookies en donne la version courte.
Vous croiserez aussi le mode consentement de Google. Dans sa forme avancée, les balises se chargent même en cas de refus et envoient des mesures sans cookies, avec l’état du consentement, pour alimenter un modèle. C’est une façon de gérer un refus à côté d’un bandeau, donc une autre discussion.
Comment six outils comptent
| Outil | Ce qui entre dans l’identifiant | Durée de vie |
|---|---|---|
| Plausible | Sel du jour, domaine du site, adresse, user agent | 24 heures. Le sel est renouvelé et supprimé |
| PostHog, mode sans cookies | Identifiant d’équipe, sel du jour, adresse, user agent, nom d’hôte | Une journée. Le sel est supprimé une fois les événements du jour traités |
| Matomo, cookies désactivés | Système, navigateur, extensions, adresse (anonymisée par défaut), langue | 24 heures au plus. La graine aléatoire est jetée chaque jour |
| Umami | Identifiant du site, adresse, user agent, sel, identifiant distinct si vous en posez un | Un mois par défaut. SALT_ROTATION permet la semaine ou le jour |
| Vercel Web Analytics | Un hash créé à partir de la requête entrante. La documentation n’en liste pas les entrées | Une seule journée |
| Trailic | Sel du jour, site, adresse, user agent | Une journée UTC. Le sel est dérivé d’un secret, donc jamais supprimé |
Deux différences comptent plus que la recette commune.
La première, c’est la durée. Un sel mensuel, le réglage par défaut d’Umami, reconnaît quelqu’un pendant tout un mois tant que son adresse et son navigateur ne bougent pas. Un sel quotidien en est incapable. Le compromis est réel : de meilleurs chiffres mensuels, contre une période plus longue pendant laquelle les visites peuvent être reliées.
La seconde, c’est le sort du sel. Plausible et PostHog disent le supprimer. Trailic dérive le sel de chaque jour de TRAILIC_SECRET, pour que le collecteur n’ait jamais à lire une base de données. La contrepartie : quiconque détient ce secret peut recalculer n’importe quel jour passé. J’y reviens dans le fonctionnement du hash salé quotidien.
Ce qu’on y perd
Un exemple inventé, pour montrer le calcul. Mille personnes visitent votre site dans le mois, en moyenne sur trois jours différents.
| Cookie qui survit au mois | Hash quotidien | |
|---|---|---|
| Visiteurs sur une journée | À peu près juste | À peu près juste, avec des erreurs dans les deux sens |
| Visiteurs sur le mois | 1 000 | 3 000, car les jours s’additionnent |
Le hash quotidien vous donne des personnes-jours : une bonne courbe de tendance, une mauvaise réponse à « combien de gens ». La documentation de PostHog décrit le même effet, et Matomo prévient que les visiteurs uniques, nouveaux et récurrents deviennent inexacts sans cookies.
Plus largement :
| Question | Identifiant durable | Hash quotidien seul |
|---|---|---|
| Quelles pages sont lues aujourd’hui, et d’où viennent les gens | Oui | Oui |
| Combien de personnes différentes ce mois-ci | Oui | Non |
| Nouveau ou récurrent | Oui | Non |
| De la page tarifs à l’inscription, d’une traite | Oui | Oui |
| Clic lundi, inscription jeudi | Oui | Non |
| Qui est encore là quatre semaines plus tard | Oui | Seulement pour les personnes identifiées |
| Rejeu de session, enquêtes | Selon l’outil | PostHog les coupe sans consentement, car ils reposent sur le stockage du navigateur |
Ce que vous gagnez en échange : rien d’écrit sur l’appareil, aucun identifiant qui survive à la journée, aucun moyen de suivre quelqu’un d’un site à l’autre, et moins de choses à expliquer à vos visiteurs.
Un outil derrière un bandeau cookies ne compte par ailleurs que ceux qui acceptent, quand un outil sans bandeau compte tous ceux que les bloqueurs laissent passer. Des éditeurs publient des pourcentages sur cet écart. Je n’ai pas de chiffre pour votre site, eux non plus. Si la question compte pour vous, faites tourner les deux quelques semaines et mesurez.
Sans cookies ne veut pas dire sans consentement
L’article 5.3 de la directive ePrivacy, transposé à l’article 82 de la loi Informatique et Libertés, vise le stockage d’informations sur un appareil et l’accès à des informations qui s’y trouvent. Les lignes directrices 2/2023 du CEPD précisent qu’il ne se limite pas aux cookies, qu’un JavaScript qui demande au navigateur d’envoyer des informations entre dans son champ, et que collecter des informations via le user agent ou l’adresse IP peut l’y faire entrer. Elles rappellent aussi que l’application de l’article n’impose pas systématiquement un consentement.
Un hash côté serveur peut donc tomber sous la règle tout en restant permis sans consentement, selon votre pays et ce que vous en faites. En France, la CNIL prévoit une exemption pour la mesure d’audience, à des conditions précises. Je les ai passées en revue, critère par critère, dans mesure d’audience et bandeau cookies. La décision vous revient en tant qu’éditeur du site, et cet article n’est pas un conseil juridique.
Lequel choisir
| Votre besoin | Ce qui convient |
|---|---|
| Trafic du jour, pages, sources | Un hash quotidien suffit |
| Vraie audience mensuelle | Un identifiant durable, avec consentement là où la loi le demande, ou un sel plus long si vous assumez ce qu’il relie |
| Entonnoirs sur plusieurs jours, rétention | Identifier les personnes connectées, et traiter cela comme une donnée personnelle |
| Rejeu de session, cartes de chaleur, feature flags | Un outil mûr comme PostHog. Trailic n’a rien de tout cela aujourd’hui |
Ce que fait Trailic
Jamais de cookie, et rien dans le stockage du navigateur avant qu’un site appelle identify, qui garde dans le localStorage l’identifiant reçu. Environ 1,5 Ko compressé côté navigateur. Si vous préférez demander d’abord, la bibliothèque garde tout en mémoire jusqu’à votre feu vert :
<Trailic siteKey="site_…" endpoint="https://your-instance.example/api/e" consent={accepted} />
Les limites sont écrites noir sur blanc sur la page notre approche de la vie privée : tous ceux qui partagent une adresse et un navigateur comptent pour un seul visiteur, une sous-estimation connue, et quiconque détient TRAILIC_SECRET et connaît l’adresse et le navigateur d’une personne peut calculer son hash pour une journée.
Où en est Trailic
Trailic est une première version. Il fonctionne de bout en bout sur une instance de test, avec de vrais navigateurs, un vrai assistant et cinq millions d’événements synthétiques, mais il n’a encore collecté aucun trafic réel. Son tampon Vercel Queues n’a tourné que contre une doublure de ce service, son modèle de données peut changer et il n’existe pas de chemin de mise à jour entre versions. Il n’y a pas de version hébergée, et la bibliothèque n’est pas encore sur npm : elle se trouve dans le dépôt, sous packages/trailic. Les outils cités plus haut tournent déjà sur du trafic réel. N’en faites pas encore votre seule mesure d’audience. Le code est sur GitHub, et je prends volontiers vos remarques dans les issues.
Sources
- CNIL, lignes directrices sur les cookies et autres traceurs, délibération 2020-091
- CNIL, Cookies et traceurs : que dit la loi ?
- CEPD, lignes directrices 2/2023 sur le champ technique de l’article 5.3 de la directive ePrivacy, version 2.0 (en anglais)
- Plausible, politique de données (en anglais)
- PostHog, le suivi sans cookies, source de la page (en anglais)
- Matomo, utilise-t-il une empreinte ? (en anglais)
- Matomo, effet de l’absence de cookies sur les rapports (en anglais)
- Umami, la route de collecte dans son code source et sa fonction de sel
- Vercel, documentation de Web Analytics (en anglais)
- Google, présentation du mode consentement
- Trailic, spécification du produit (en anglais)