CookieDetox
Sanctions & Amendes 2026-09-15

Matomo sans consentement CNIL : le piège des faux réglages

CD

Par L'Observatoire CookieDetox

Expertise Juridique & Conformité

🔗
T

L'essentiel à retenir (En bref)

Matomo bénéficie d'une exemption de consentement CNIL uniquement si sa configuration respecte le guide officiel de l'autorité : anonymisation de l'IP sur 2 octets, désactivation de l'export de données brutes, durée de vie du cookie _pk_id limitée à 13 mois sans reconduction automatique et mécanisme d'opt-out fonctionnel.

De nombreuses instances Matomo en production violent les critères d'exemption de la CNIL et du RGPD par défaut de paramétrage.

Installer Matomo On-Premise ou Cloud ne dispense personne du respect des règles de traçage. Supprimer sa bannière de consentement sous prétexte d'utiliser cet outil constitue une violation directe de l'article 82 de la loi Informatique et Libertés. L'outil n'a rien de magique. Sans bridage chirurgical de son code source, son exécution immédiate sans accord préalable place l'éditeur du site dans l'illégalité dès le premier octet transmis.

Le cadre strict du programme d'évaluation des solutions

Comment utiliser Matomo sans consentement CNIL ?

Matomo bénéficie d'une exemption de consentement CNIL uniquement si sa configuration respecte le guide officiel de l'autorité : anonymisation de l'IP sur 2 octets, désactivation de l'export de données brutes, durée de vie du cookie _pk_id limitée à 13 mois sans reconduction automatique et mécanisme d'opt-out fonctionnel.

L'autorité de contrôle n'accorde aucun passe-droit aux logiciels de mesure d'audience. Selon les recommandations de la CNIL sur les outils de mesure d'audience exemptés, l'exemption dépend exclusivement du paramétrage effectif de l'instance déployée. Si un seul réglage technique dévie du cahier des charges officiel, la collecte redevient illicite à la racine. Le régime d'exemption exige une finalité strictement limitée à la production de statistiques anonymes pour le compte exclusif de l'éditeur.

L'erreur fatale du déploiement par défaut : le cookie _pk_id au banc des accusés

L'Observatoire CookieDetox, DPO et ingénieur sécurité web, l'observe sur le terrain : une capture de trames HTTP sur une instance fraîche de Matomo révèle immédiatement une cascade d'identifiants croisés non conformes.

Par défaut, l'outil injecte le cookie _pk_id avec une persistance de treize mois réinitialisée à chaque nouvelle visite. Il collecte les adresses IP complètes ou seulement tronquées sur un octet. Il active le suivi e-commerce granulaire. Il calcule une empreinte fine du navigateur en lisant les polices, les résolutions d'écran et les extensions installées. Ce comportement déclenche une alerte immédiate lors d'un audit de conformité.

[Requête HTTP GET] ──> IP non masquée (4 octets) ──> Cookie _pk_id (24 mois glissants) ──> Requalification en traitement illicite

Alerte Juridique & Financière : L'exécution d'un script Matomo non bridé avant toute interaction utilisateur expose l'organisme à une sanction administrative pouvant atteindre 20 millions d'euros ou 4 % du chiffre d'affaires mondial en vertu de l'article 83 du RGPD. Une inspection réseau automatisée détecte ce dépôt illicite en moins de deux secondes.

Les faux dieux du tracking hybride et le mirage du mode sans

L'appel de la méthode _paq.push(['disableCookies']); est devenu le réflexe standard des équipes techniques. On supprime les traceurs HTTP pour échapper aux règles. C'est une erreur technique majeure.

La directive ePrivacy et l'article 82 de la loi Informatique et Libertés ne régissent pas uniquement les cookies. Ils protègent l'intégralité du terminal de l'internaute contre toute opération de lecture ou d'écriture non sollicitée.

L'échec mécanique du mode cookieless face au calcul du config_id

Quand Matomo fonctionne sans cookie, il ne devient pas aveugle. Il compense l'absence de _pk_id par une empreinte numérique calculée à la volée côté serveur.

En-têtes HTTP (IP, User-Agent, Accept-Language) + Résolution d'écran + Plugins
                                   │
                                   ▼
                  [ Algorithme de hachage SHA-256 ]
                                   │
                                   ▼
                   config_id (Empreinte serveur 24h)

Dans le code source PHP du cœur de Matomo (classe Tracker/VisitorRecognizer.php), la méthode generateConfigId() concatène plusieurs vecteurs : l'adresse IP client, l'en-tête User-Agent, la résolution d'écran, la profondeur de couleur et la liste des extensions actives transmises par le tracker JavaScript. Ce condensat produit un hachage SHA-256 nommé config_id.

Cette opération constitue une lecture directe de variables d'environnement du terminal selon les critères stricts du Comité Européen de la Protection des Données sur le fingerprinting. Supprimer les cookies tout en conservant une configuration brute expose aux mêmes sanctions qu'un traçage par device fingerprinting non consenti.

La schizophrénie du double suivi et les fuites dans Matomo Tag Manager

Matomo sans cookie nécessite-t-il le consentement de la CNIL ?

Le mode cookieless de Matomo reste soumis aux règles de l'article 82 de la loi Informatique et Libertés car il génère une empreinte numérique temporaire (config_id). Pour être exempté de consentement, il doit impérativement appliquer l'ensemble des restrictions fonctionnelles imposées par la CNIL.

Le problème s'aggrave avec les implémentations dites « hybrides ». L'idée consiste à charger Matomo en mode anonyme par défaut, puis à basculer vers un suivi enrichi dès que l'internaute clique sur « Tout accepter ».

Sur le papier, le concept séduit. En production, c'est un point de rupture.

La file d'attente JavaScript _paq souffre régulièrement de désynchronisations. Si un événement personnalisé se déclenche avant que le consentement ne soit propagé au conteneur Matomo Tag Manager (MTM), deux scénarios se produisent : soit la session se fracture en deux profils distincts, soit les variables avancées s'exécutent prématurément dans la requête non consentie. Ce phénomène de ghost tracking avant consentement trahit immédiatement le statut d'exemption.

📌 Note d'Architecture MTM : Un conteneur MTM mal compartimenté déclenche souvent des tags tiers (pixels publicitaires, scripts d'attribution) sur l'événement mtm.PageView initial, contaminant immédiatement la session exempte.

Une mesure d'audience ne s'improvise pas avec un simple interrupteur sans cookie. Consultez notre inventaire documenté sur la liste des outils analytics exemptés CNIL pour identifier les architectures réellement conformes.

L'anatomie forensique d'une requête matomo.php sous l'œil des

Les auditeurs du régulateur ne parcourent pas vos mentions légales. Le robot de contrôle automatique des cookies de la CNIL inspecte directement la trame réseau brute envoyée vers le point de terminaison matomo.php.

Une seule variable non neutralisée dans le payload HTTP détruit instantanément votre statut d'exemption.

Ce que trahissent les paramètres d'URL lors d'une inspection réseau

Ouvrez l'onglet Network de vos DevTools Chrome. Filtrez sur matomo.php et observez la chaîne de requête transmise en GET ou dans le corps du POST. Chaque clé représente une déclaration d'intention technique.

POST /matomo.php?idsite=1&rec=1&action_name=Accueil&url=https%3A%2F%2Fsite.fr%2F&_id=a1b2c3d4e5f6g7h8&uid=usr_89211&ec_id=CMD-94820&dimension1=gold_member HTTP/1.1
Host: analytics.site.fr
User-Agent: Mozilla/5.0 ...

Le paramètre uid (User ID) constitue une infraction immédiate sans consentement préalable. Selon les prescriptions techniques officielles, l'identifiant doit rester strictement anonyme et non réconciliable. L'injection d'un uid relie l'historique de navigation à un compte client précis dans votre base SQL.

Le paramètre cid (Visitor ID forcé côté client) ou l'usage de variables dimension[X] contenant des segments CRM comme gold_member transforment un outil de mesure d'audience en machine de profilage unitaire.

⚠️ Piège Technique : L'activation des plugins intrusifs L'activation des modules Heatmaps & Session Recording ou le suivi granulaire des paniers abandonnés (ec_id) au sein d'une instance exemptée annule automatiquement la dispense de consentement. Ces fonctionnalités capturent des comportements individuels continus, ce qui excède strictement le besoin d'administration technique du site autorisé par l'article 82 de la loi Informatique et Libertés.

La frontière exacte entre statistique anonyme et profilage individuel interdit

La règle d'or imposée par les régulateurs européens est directe. La mesure d'audience sans consentement ne sert qu'à produire des données statistiques globales et agrégées.

Elle répond à un besoin unique : administrer le service demandé par l'internaute. Dès qu'une requête permet de reconstituer le cheminement complet d'une personne physique à travers plusieurs sessions ou plusieurs domaines distincts via du cross-domain tracking, le traitement change de nature juridique.

Le paramètre e-commerce ec_id (Order ID) représente un exemple flagrant. En transmettant la référence exacte d'une commande dans le collecteur Matomo sans accord explicite, vous permettez une ré-identification par croisement direct avec le grand livre des ventes. Les robots de contrôle n'ont pas besoin de deviner vos intentions : la présence de ces paramètres dans la trame HTTP établit formellement la preuve matérielle de la non-conformité.

Protocole d'architecture : configurer et auditer une instance

L'exemption ne s'obtient pas par une incantation juridique. Elle s'impose au niveau de la couche transport et du moteur de traitement.

Voici le pipeline technique imposé par le cadre d'évaluation :

[Navigateur Client]
       │  (Exécution JS bridée + Contrôle local du cookie matomo_ignore)
       ▼
[Point de terminaison : matomo.php]
       │  (Vérification des paramètres autorisés uniquement)
       ▼
[Module de Troncature IP]
       │  (Masquage irréversible de 2 octets minimum avant écriture disque)
       ▼
[Base de Données Isolée]
          (Purge automatique, zéro cross-domain, exports API individuels désactivés)

Si une seule passerelle fuit, l'exemption saute.

Matrice de conformité : configuration standard contre configuration exemptée CNIL

L'écart technique entre une installation brute et les exigences réglementaires est mesurable dans la base SQL et les trames HTTP.

Faites défiler ↔
Critère techniqueMatomo par défaut (Soumis au consentement)Matomo bridé (Exempté CNIL)
Anonymisation IP1 octet masqué (ex: 192.168.1.0)2 octets masqués au minimum (192.168.0.0)
Durée de vie _pk_id13 mois avec renouvellement glissant13 mois maximum (33 696 000 s) sans extension
User ID & Custom VarsActivés pour le suivi nominatifDésactivés (aucun uid, variables anonymisées)
Suivi E-commerceSuivi du panier et chiffre d'affaires nominatifTotalement désactivé (pas de paramètre ec_id)
Cross-domain trackingAutorisé (liaison inter-domaines via _paq)Strictement interdit (isolation par domaine)
Live Profile (Visiteurs)Historique individuel de session consultablePlugin désactivé ou anonymisé sans historique
Opt-out natifNon déployé ou facultatifLien direct et actif d'opposition sur la politique

💡 Astuce tactique : Rendez-vous dans Administration > Plugins et désactivez immédiatement le plugin Live. Ce commutateur supprime l'accès au "Journal des visiteurs" en temps réel. Un auditeur vérifie systématiquement si un administrateur peut reconstituer le parcours séquentiel d'une personne physique précise.

Implémentation du code JavaScript de bridage et du mécanisme d'opt-out obligatoire

Le script client doit intégrer des directives restrictives explicites. Les configurations par défaut des gestionnaires de balises doivent être modifiées.

// Conteneur d'analytique bridée conforme exemption CNIL
var _paq = window._paq = window._paq || [];

// 1. Durée de vie stricte du cookie de visiteur (13 mois = 33696000 secondes)
_paq.push(['setVisitorCookieTimeout', 33696000]);
// Cookie de session limité à 30 minutes
_paq.push(['setSessionCookieTimeout', 1800]);

// 2. Interdiction formelle du cross-domain tracking et de l'attribution externe
_paq.push(['disableCrossDomainLinking']);

// 3. Masquage des téléchargements d'alias et désactivation des paramètres e-commerce
_paq.push(['enableLinkTracking']);

// 4. Déclenchement de la mesure de page vue épurée
_paq.push(['trackPageView']);

(function() {
  var u = "https://stats.votre-domaine.fr/";
  _paq.push(['setTrackerUrl', u + 'matomo.php']);
  _paq.push(['setSiteId', '1']);
  var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
  g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s);
})();

L'article 82 impose également d'offrir une porte de sortie directe sans friction. Voici le conteneur natif d'exclusion à insérer dans votre politique de confidentialité :

<div id="matomo-opt-out-container">
  <!-- Chargement dynamique de la case d'opposition Matomo -->
</div>
<script>
  // Injection de l'iframe native d'opt-out ou exécution de l'API optOut
  (function() {
    var optOutUrl = "https://stats.votre-domaine.fr/index.php?module=CoreAdminHome&action=optOutJS&divId=matomo-opt-out-container&language=fr";
    var script = document.createElement('script');
    script.src = optOutUrl;
    script.async = true;
    document.head.appendChild(script);
  })();
</script>

Exercice pratique de vérification forensique dans les outils de développement

L'étanchéité d'un déploiement se teste directement dans le navigateur en 4 étapes.

Étape 1 : Session vierge et capture des trames

Ouvrez une fenêtre de navigation privée, pressez F12 et activez l'onglet Network. Cochez Preserve log. Chargez votre page d'accueil.

Étape 2 : Inspection chirurgicale des cookies de stockage

Basculez sur l'onglet Application, sous-menu Cookies.

Repérez _pk_id. Vérifiez sa date d'expiration : elle doit correspondre exactement à Date du jour + 13 mois. Si l'expiration dépasse ce délai, votre site enfreint les directives. Vérifiez que le cookie _pk_ses est horodaté à 30 minutes.

Étape 3 : Décodage du payload réseau vers matomo.php

Revenez sur l'onglet Network. Filtrez les requêtes avec la chaîne matomo.php.

Cliquez sur la requête sortante et inspectez les Payload / Query String Parameters conformément aux spécifications de l'IETF RFC 3986 sur la structure des URI :

  • Le paramètre uid doit être absent.
  • Aucun paramètre ec_id ne doit être présent.
  • La variable cip (en cas de proxy inverse) ne doit jamais envoyer plus de 2 octets réels.

Étape 4 : Test de rupture par l'opt-out

Rendez-vous sur votre page d'opposition. Cochez la case pour refuser le suivi. Inspectez immédiatement l'onglet Application > Cookies : un cookie nommé matomo_ignore doit apparaître avec la valeur consent. Rechargez la page : aucune requête réseau avec un identifiant de session ne doit partir vers matomo.php. Si une trame s'échappe, l'implémentation est non conforme.

La dérive silencieuse des conteneurs et l'impératif de la

Pourquoi une conformité validée un mardi s'effondre dès la mise en production du jeudi

Un audit DevTools valide votre configuration un mardi matin. Zéro cookie non sollicité, trames réseau nettoyées, opt-out fonctionnel.

Trois jours plus tard, la conformité saute.

Ce phénomène porte un nom : la dérive de configuration (configuration drift). Dans les architectures web modernes, le frontend évolue en continu.

Une simple mise à jour mineure de Matomo peut réinitialiser des variables d'anonymisation. Une équipe marketing ajoute un tag de conversion dans un gestionnaire de balises. Un développeur réactive par inadvertance le module e-commerce pour tester un tunnel d'achat.

[Pipeline CI/CD / GTM] ──> [Injection nouveau script] ──> [Payload matomo.php corrompu] ──> [Rupture Exemption CNIL]

Le résultat est automatique. Le conteneur se met à jour, la file d'attente JavaScript se trouve altérée, et le point de terminaison reçoit à nouveau des identifiants uid ou des paramètres ec_id sans consentement préalable.

💡 Règle d'or opérationnelle : La conformité d'un conteneur n'est pas un état permanent garanti par un audit statique. C'est une mesure dynamique qui se dégrade à chaque cycle de release applicative.

Un Délégué à la Protection des Données ne peut pas intercepter manuellement les paquets HTTP à chaque merge request. Les équipes produit livrent du code plusieurs fois par semaine. Les audits manuels au format PDF ne constituent qu'une photographie trompeuse à un instant T.

Face aux exigences réglementaires, cette approche artisanale crée une vulnérabilité critique. Les plateformes comme CookieDetox automatisent l'inspection forensique continue des flux réseau réels, identifiant la moindre fuite de traceur ou dérive de paramétrage avant que les crawlers des autorités de régulation ne la détectent.

D'ici 2027, la CNIL et les régulateurs du Comité Européen de la Protection des Données n'auditeront plus les sites web via des formulaires déclaratifs : ils déploieront des robots d'inspection réseau automatisés capables de sanctionner les dérives de balisage en temps réel.

À propos de l'équipe éditoriale

L'équipe de recherche CookieDetox

Publié en collaboration avec des praticiens certifiés et des spécialistes de la conformité des données. Tous les protocoles, codes et analyses sont vérifiés selon les normes réglementaires européennes et les recommandations officielles de la CNIL.

Mis à jour le 2026-09-15
Partager cet article:

Questions Fréquentes : Matomo sans consentement CNIL : le

Comment utiliser Matomo sans consentement CNIL ?

Matomo bénéficie d'une exemption de consentement CNIL uniquement si sa configuration respecte le guide officiel de l'autorité : anonymisation de l'IP sur 2 octets, désactivation de l'export de données brutes, durée de vie du cookie _pk_id limitée à 13 mois sans reconduction automatique et mécanisme d'opt-out fonctionnel.

Matomo sans cookie nécessite-t-il le consentement de la CNIL ?

Le mode cookieless de Matomo reste soumis aux règles de l'article 82 de la loi Informatique et Libertés car il génère une empreinte numérique temporaire (config_id). Pour être exempté de consentement, il doit impérativement appliquer l'ensemble des restrictions fonctionnelles imposées par la CNIL.