Cookies RGPD sur PrestaShop : bloquer avant le consentement
Un bandeau qui s'affiche ne bloque rien. Ce guide montre comment neutraliser les scripts tiers avant le choix dans PrestaShop, journaliser chaque décision et générer la politique cookies.
Vous avez posé un bandeau sur votre boutique, et Google Analytics, Meta ou une vidéo YouTube se chargent quand même avant que le visiteur ait cliqué. Le bandeau informe, mais il ne bloque rien : le script part avec la page et le choix arrive trop tard. Ce guide montre comment le module Cookies RGPD neutralise les traceurs côté serveur, comment le régler dans le back-office et quelle trace il garde de chaque décision.
Un bandeau de cookies bloque-t-il vraiment les scripts ?
Non. Un bandeau qui s'affiche ne bloque rien tant que le HTML de la page n'a pas été modifié : le navigateur exécute les scripts tiers avant que le visiteur ait choisi.
Le module réécrit le HTML côté serveur avant l'envoi. Un script tiers garde son adresse dans un attribut mais ne s'exécute pas. Une iframe YouTube, Vimeo ou Google Maps est remplacée par un bloc qui nomme le service et propose de le charger. Un pixel de suivi perd sa source, et les ressources tierces annoncées dans l'en-tête sont traitées de la même façon. Quand le visiteur accepte une catégorie, le navigateur recrée les éléments autorisés dans l'ordre de la page, avec leurs attributs d'origine.
Ce blocage a une limite précise : les requêtes qu'un script déjà autorisé émet lui-même, les conversions côté serveur et un script évalué par eval ne sont pas arrêtés. Un gestionnaire de balises doit donc être classé dans la catégorie des balises qu'il charge, ou s'appuyer sur Consent Mode.
Sans JavaScript, rien de non essentiel ne se charge : les éléments neutralisés restent inertes, y compris dans un bloc noscript. Le bandeau, lui, ne peut pas recueillir de choix sans JavaScript ; les catégories non essentielles restent alors bloquées.
Quels cookies doivent attendre le consentement ?
Les cookies strictement nécessaires au service demandé peuvent se charger sans accord. La mesure d'audience, la publicité et le remarketing, et les contenus intégrés attendent le choix du visiteur.
Le module range les services dans quatre catégories : strictement nécessaires (toujours actives, verrouillées), mesure d'audience, publicité et remarketing, fonctionnalités. Une catégorie non nécessaire sans service actif n'apparaît pas dans le panneau et sa valeur est enregistrée comme refusée.
Les boutons Tout accepter, Tout refuser et Personnaliser ont le même poids visuel. Aucune case n'est pré-cochée et le défilement de la page n'enregistre jamais un accord. Le visiteur revient sur son choix par l'onglet flottant, le lien de pied de page ou le shortcode [wpcc_preferences].
Un visiteur qui envoie le signal Global Privacy Control est traité comme refusant les catégories non essentielles, sans voir le bandeau, et la ligne est enregistrée avec le signal. Do Not Track s'active séparément dans la configuration.

Comment installer et activer le blocage dans PrestaShop ?
Installez l'archive dans le gestionnaire de modules et activez la licence. Suivez ensuite les quatre étapes de l'assistant, de l'analyse à la mise en production.
- Dans le gestionnaire de modules, téléversez l'archive ZIP et installez-la. Le module s'ajoute à la liste et le menu Consentement cookies mène à sa configuration.
- Ouvrez la configuration et saisissez votre clé de licence. Sans licence valide, le module reste désactivé.
- Assistant, étape Analyse : cliquez sur Analyser maintenant. Six pages sont lues : accueil, catégorie, produit, page CMS, contact et panier.
- Étape Services : chaque service détecté reçoit sa catégorie et son mode. Un domaine inconnu se rattache à un service, devient un service personnalisé ou est ignoré.
- Étape Bandeau : position (barre en bas, carte au centre, panneau en coin), couleurs, logo, ordre des boutons et textes par langue. Un contraste inférieur à 4,5:1 est refusé avec la valeur mesurée.
- Étape Politique et mise en production : relisez le texte généré, cochez la case de confirmation, publiez la page CMS, puis cliquez sur Mettre en production et confirmez.
Le module s'installe en mode test : les visiteurs reçoivent la page inchangée. L'aperçu et la page de contrôle servent à vérifier le bandeau, les cookies et les services avant la mise en production. La durée avant nouvelle demande (12 mois par défaut), la conservation du journal et l'émetteur Consent Mode se règlent sur la page de configuration.
Comment repérer les scripts qui se chargent avant le choix ?
Lancez une analyse : le rapport montre, page par page, ce qui se charge avant le consentement, ce qui est bloqué jusqu'au choix et ce que la boutique dépose elle-même.
L'analyse lit le HTML reçu par un visiteur sans cookie sur les six pages représentatives. Chaque script, iframe, pixel et ressource est classé : bloqué, nécessaire, autorisé ou inconnu. Un hôte tiers qui ne correspond à aucun service devient un domaine inconnu. Il apparaît sur le tableau de bord et, si les alertes sont actives, dans un e-mail après une analyse planifiée.
La page Domaines inconnus permet de rattacher l'hôte à un service existant, d'en faire un service personnalisé prérempli ou de l'ignorer. Une analyse se lance à la demande ou selon une fréquence quotidienne, hebdomadaire ou mensuelle.
Pour voir ce qui se passe dans un vrai navigateur, la page de contrôle ouvre une page de la boutique dans un cadre et compare les hôtes et les cookies avant et après un choix. Elle indique aussi ce qu'elle ne voit pas : les cookies HttpOnly et ceux d'autres domaines.

Comment prouver ce qu'un visiteur a accepté ?
Chaque choix reçoit une référence et une ligne dans le journal des consentements, avec la date, les catégories et les versions du bandeau et de la politique.
La ligne contient l'action (accord, refus, personnalisation, retrait, refus par signal), la langue, la page, la variante A/B, le pays détecté lorsqu'une source de géolocalisation est configurée, et les signaux du navigateur. Aucun nom, e-mail ou identifiant client n'est enregistré. L'adresse IP est conservée par défaut sous forme d'empreinte HMAC-SHA256, et vous pouvez choisir de la tronquer ou de ne pas la stocker.
Les lignes ne sont jamais modifiées. Chacune contient l'empreinte SHA-256 de la précédente, et le contrôle d'intégrité signale une ligne changée ou supprimée. C'est une preuve technique : elle ne constitue pas un horodatage qualifié et ne détecte pas quelqu'un qui aurait un accès à la base et recalculerait toute la chaîne.
Le journal se filtre par période, action, source, variante, pays, référence ou clé de visiteur, et s'exporte en CSV ou JSON avec les filtres en cours. Les lignes plus anciennes que la durée de conservation (36 mois par défaut, de 6 à 120) sont purgées automatiquement par la maintenance quotidienne.

Qui a besoin du module, et qui peut s'en passer ?
Une boutique qui charge un outil de mesure, de la publicité ou des contenus intégrés pour des visiteurs en Europe a besoin d'un blocage avant le choix. Une boutique sans traceur tiers peut s'en passer.
Le module vise les boutiques PrestaShop 1.7.8, 8.0+ et 9.0+ qui utilisent Google Analytics, Google Tag Manager, Google Ads, Meta, TikTok, LinkedIn, ou des vidéos et cartes intégrées. Il convient aussi à une agence qui gère plusieurs boutiques : chaque boutique garde ses réglages, son journal et sa politique, et l'export/import JSON duplique une configuration sans copier les données.
Il ne convient pas à une boutique qui cherche une certification IAB TCF, un registre de consentement hébergé dans le cloud ou une couverture des régimes hors UE/EEE, Royaume-Uni et Suisse (CCPA/CPRA, LGPD). Une boutique sans aucun traceur tiers n'a rien à bloquer ; le module peut encore générer la politique cookies, mais ce n'est pas son usage principal.

Un bandeau de cookies suffit-il pour être conforme au RGPD ?
Non. Le module bloque, informe et documente, mais il ne certifie pas la conformité de votre boutique, ne remplace pas un avis juridique et n'arrête pas toutes les requêtes.
- Il ne peut pas arrêter les requêtes qu'un script déjà autorisé émet lui-même, les conversions côté serveur ni un script évalué par eval.
- Il ne supprime pas les cookies HttpOnly ni ceux d'autres domaines ; le panneau et la politique l'indiquent au visiteur.
- La politique cookies est un modèle généré depuis votre inventaire : vous devez la relire, l'adapter et la republier quand vos services changent.
- Le chaînage SHA-256 montre qu'une ligne a été modifiée ou supprimée sans que la chaîne soit recalculée ; ce n'est pas un horodatage qualifié.
- Consent Mode v2 est demandé par Google pour la publicité et la mesure dans l'EEE et au Royaume-Uni ; ce n'est pas une obligation légale en soi.
- Le module ne couvre pas IAB TCF 2.3, CCPA/CPRA, LGPD ni un registre hébergé.
Votre part : choisir la base légale, vérifier les textes, tenir la politique à jour et consulter un juriste pour votre situation. Le module fournit la mécanique et la trace, pas la validation juridique.
La documentation du module détaille chaque écran. Si vous utilisez Google Tag Manager ou Google Ads, le module Google Tracking peut aussi envoyer les signaux Consent Mode : gardez un seul émetteur, et le module de consentement vous alerte si les deux envoient des signaux. Si vos pages passent par un cache serveur, vérifiez la compatibilité avec Cache Pro, et pour l'accessibilité du bandeau, l'audit EAA et WCAG complète le contrôle. La fiche complète est sur la page du module Cookies RGPD.
Questions fréquentes
Faut-il demander le consentement pour tous les cookies ?
Comment bloquer les scripts tiers avant le consentement dans PrestaShop ?
Comment prouver le consentement d'un visiteur lors d'un contrôle ?
Une page de politique de cookies séparée est-elle nécessaire ?
Le bandeau gêne-t-il le passage en caisse ?
Produits de cet article
Cookies RGPD : bandeau de consentement, blocage réel et preuve
Bloque réellement les scripts, iframes et pixels tiers avant le consentement, puis les charge selon la catégorie...
Google Analytics 4 (GA4) and GTM and Search Console Easy Connect
Suivi GA4 complet : 15 événements e-commerce, du clic au paiement, avec des données produit cohérentes Achats...
Cache Pro — Full Page Cache with Brotli, Warm-Up & AJAX
Cache de pages complètes : les pages enregistrées sont envoyées avant que PrestaShop les construise, sans aucune...
Audit accessibilité EAA & WCAG 2.1 AA
Analyse d’accessibilité WCAG 2.1 AA des pages réelles, contrastes compris Corrections automatiques sûres,...