Vous pensiez que votre bannière de cookies suffisait à vous mettre en conformité RGPD ? Sur la majorité des sites e-commerce que nous analysons, des cookies traceurs se déposent avant même que le visiteur n'ait cliqué quoi que ce soit.
Ce n'est pas un détail technique. C'est une infraction, et la CNIL sanctionne.
Ce que dit la loi (en clair)
Le RGPD et la directive ePrivacy sont formels : aucun cookie non essentiel ne peut être déposé sans consentement explicite préalable. « Explicite », ça veut dire que l'utilisateur a cliqué sur « Accepter », coché une case ou validé un choix. Faire défiler la page ne compte pas.
La CNIL l'a rappelé dans ses lignes directrices de 2020 : le simple affichage d'un bandeau d'information ne constitue pas un recueil valide du consentement. Depuis, elle est passée à l'action.
Des amendes bien réelles
En décembre 2022, la CNIL a infligé 60 millions d'euros d'amende à Microsoft pour des cookies Bing déposés sans consentement préalable (décision CNIL). En janvier 2022, Google écopait de 150 millions d'euros pour des pratiques similaires sur google.fr et youtube.com. Criteo, Amazon, Facebook : la liste s'allonge.
Et ce ne sont pas que les géants. En 2023, la CNIL a mis en demeure plusieurs dizaines de sites français de toutes tailles pour non-conformité. Le montant des amendes pour les PME reste confidentiel, mais les mises en demeure sont publiques. Le mal réputationnel est fait.
Le problème concret : vos scripts se chargent trop tôt
Comment un cookie finit-il par se déposer avant le consentement ? Le scénario le plus courant est banal :
- Votre développeur ou votre agence installe Google Analytics, le Meta Pixel ou Microsoft Clarity
- Le script est injecté dans le
<head>du HTML, ou via Google Tag Manager sans condition de déclenchement liée au consentement - Le navigateur exécute le script dès le chargement de la page
- Le cookie est déposé avant même que la bannière ne s'affiche
Résultat : votre CMP (Consent Management Platform) s'affiche, l'utilisateur voit bien « Accepter » et « Refuser »... mais les cookies sont déjà là. La bannière est décorative.
Comment PurpleScan détecte ces violations
Détecter ce genre de problème à la main, c'est pénible. Il faut ouvrir les DevTools Chrome, vider les cookies, recharger la page sans interagir, puis inspecter ce qui a été déposé. Sur 50 pages d'un site e-commerce, personne ne fait ça.
Pour chaque page analysée, notre crawler exécute trois phases de crawl :
- RAW : la page est chargée sans exécution JavaScript. On capture uniquement les cookies côté serveur.
- Avant consentement : la page est rendue dans Chrome avec JavaScript, mais aucune interaction n'est effectuée. Pas de clic, pas de scroll. C'est ce que voit un visiteur qui n'a pas encore touché la bannière.
- Consentement refusé : le crawler interagit avec votre CMP pour cliquer sur « Refuser », puis vérifie quels cookies persistent malgré le refus.
Chaque cookie capturé est comparé à une base de plus de 30 patterns de cookies traceurs connus, classés par sévérité.
Sévérité haute
Des cookies qui n'ont aucune raison d'exister sans consentement :
_fbp,_fbc(Meta/Facebook Pixel)_gcl_au,_gcl_aw(Google Ads conversion)IDE,DSID(DoubleClick/Google Advertising)MUID(Microsoft Advertising)_pin_unauth(Pinterest)
Sévérité élevée
Les outils analytics :
_ga,_ga_*,_gid(Google Analytics)_clck,_clsk(Microsoft Clarity)_hjSessionUser_*(Hotjar)mp_*_mixpanel(Mixpanel)
Sévérité moyenne
Outils marketing et personnalisation :
beyable_*(Beyable)nostojs,_nosto_*(Nosto)ab.storage.*(Braze)_tt_*(TikTok Pixel)
Votre CMP bloque-t-elle vraiment les scripts ?
PurpleScan détecte automatiquement votre CMP : Cookiebot, Axeptio, Didomi, OneTrust, TarteAuCitron, Orejime, CookieFirst, Quantcast, Iubenda, Sirdata, et d'autres.
Mais détecter la CMP ne suffit pas. Il faut vérifier qu'elle bloque les scripts avant le consentement. C'est le rôle de la comparaison entre les trois phases :
- Un cookie
_gaapparaît en phase « avant consentement » alors qu'une CMP est détectée ? La CMP est présente mais mal configurée. - Le même cookie apparaît après un refus explicite ? La CMP ne respecte pas le choix de l'utilisateur.
- Aucune CMP détectée et des cookies traceurs présents ? C'est le scénario le plus risqué.
Mise en conformité par plateforme
Shopify
Shopify a introduit sa Customer Privacy API en 2023. Les scripts tiers doivent vérifier window.Shopify.customerPrivacy.analyticsProcessingAllowed() avant de s'exécuter. En pratique, beaucoup d'apps ne respectent pas encore cette API. Vérifiez chaque app installée, en commençant par les apps de tracking.
Magento / Adobe Commerce
Pas de CMP native. Vous devez intégrer une solution tierce (Cookiebot, Axeptio, etc.) et configurer vos scripts pour qu'ils ne se chargent qu'après le consentement. Méfiez-vous des modules tiers qui injectent du JavaScript dans le layout XML sans passer par la CMP.
PrestaShop
Même situation : pas de CMP intégrée, il faut en ajouter une via un module. Le piège classique : les modules de tracking (Google Analytics, Facebook Pixel) qui injectent leurs scripts via hookDisplayHeader sans vérification de consentement. Privilégiez les modules qui supportent nativement la gestion du consentement.
WooCommerce / WordPress
L'écosystème WordPress a beaucoup de plugins de cookies, mais la qualité varie. Cookiebot ou Complianz font du blocage automatique des scripts connus. Attention aux thèmes et plugins qui chargent des scripts externes (Google Fonts, CDN jQuery) hors du contrôle de la CMP.
Vérifier votre conformité en 5 minutes
- Ouvrez votre site en navigation privée (pas de cookies existants)
- Ouvrez les DevTools Chrome, onglet Application, puis Cookies
- Ne cliquez sur rien dans la bannière de consentement
- Regardez les cookies présents : si vous voyez
_ga,_fbp,_clckou similaires, vous avez un problème - Cliquez sur « Refuser » et vérifiez que ces cookies disparaissent
Un scan PurpleScan fait la même chose, mais sur toutes vos pages en même temps, avec un rapport détaillé par cookie et par phase.
La conformité cookies n'est pas un truc qu'on règle une fois. À chaque nouveau script installé, chaque mise à jour de module, le problème peut réapparaître. Si vous ne vérifiez pas régulièrement, vous ne savez pas où vous en êtes.