Pourquoi je ne mets pas de bandeau RGPD sur les sites de mes clients
Le bandeau cookies n'est pas une obligation, c'est la conséquence d'un choix de tracking. Auto-audit en 5 questions, headers HTTP de durcissement, Matomo self-hosted avec Docker Compose, comparatif Plausible/Umami/GoatCounter, sanctions CNIL récentes et obligations RGPD résiduelles.

Quand on visite un site français en 2026, on est accueilli par un pop-up. Trois colonnes, des cases pré-cochées, un bouton « Tout accepter » mis en avant et un lien « Personnaliser » planqué en bas en gris clair. C'est devenu si banal qu'on l'accepte machinalement, ce qui est exactement le but. Mais cette friction n'est pas une obligation légale — c'est la conséquence directe d'un choix technique : poser des traceurs.
Sur les sites que je conçois pour mes clients, je n'en mets pas. Pas par fainéantise réglementaire, pas par insouciance — au contraire, par conformité maximale. Voici la logique juridique, l'auto-audit en 5 questions pour vérifier votre propre site, et la stack complète qui permet de rester strictement RGPD sans jamais embêter le visiteur avec un consentement.
1. Le bandeau, c'est la sanction d'un choix technique
L'article 82 de la loi Informatique et Libertés, transposition de la directive ePrivacy 2002/58/CE, dit deux choses simples : (1) tout dépôt ou lecture d'information sur le terminal de l'utilisateur (cookie, localStorage, fingerprint) nécessite un consentement préalable, libre et éclairé ; (2) sauf exception explicite — cookies strictement nécessaires au fonctionnement du service, mesure d'audience exemptée par la CNIL.
Conclusion mécanique : si vous ne posez aucun cookie soumis à consentement, vous n'avez rien à demander. Pas de bandeau, pas de débat sur la formulation du « refuser tout », pas de Cookiebot facturé 9 € par mois. La conformité s'obtient en amont, dans le code, pas en surcouche dans un widget.

2. Auto-audit en 5 questions
Avant de réécrire quoi que ce soit, voici la grille d'audit minute qui permet de savoir précisément ce qui justifie votre bandeau actuel — et ce qu'on peut supprimer sans rien casser.
- Ouvrez les DevTools du navigateur sur votre home → onglet Application → Cookies. Combien y en a-t-il avant tout clic sur le bandeau ? Si la réponse est « plus de 0 », l'article 82 s'applique.
- Onglet Network : combien de requêtes sortent vers des domaines tiers (google-analytics.com, googletagmanager.com, fonts.googleapis.com, facebook.net, doubleclick.net, hotjar.com) ? Chacun est un fournisseur de traceurs à éliminer ou à justifier.
- Sur votre page de contact : utilisez-vous reCAPTCHA Google ? Cloudflare Turnstile en mode managé sans cookie ? hCaptcha ? Cloudflare et hCaptcha sans cookie sont exemptés. reCAPTCHA non.
- Polices : sont-elles servies depuis fonts.googleapis.com (Google reçoit l'IP de chaque visiteur, sanction CJUE 2022) ou auto-hébergées depuis votre domaine ?
- Cartes / vidéos intégrées : Google Maps standard et YouTube classique posent des cookies dès le chargement de la page (avant même un clic). En version embed nocookie + lazy-load au clic, exemptés.
Sur 90 % des sites TPE/PME audités en 2026, les 3 vrais fautifs sont Google Analytics, Google Fonts servies en externe, et un widget chat tiers (Tawk.to, Crisp en config par défaut). Les retirer ou les remplacer = pas de bandeau requis.
3. Quatre choix techniques qui suppriment le besoin de bandeau
Sur un site vitrine ou e-commerce léger pour TPE-PME, on peut atteindre zéro cookie soumis à consentement avec quatre décisions structurantes :
- Pas de Google Analytics, pas de GTM, pas de Meta Pixel, pas de TikTok Pixel, pas de LinkedIn Insight, pas de Hotjar. Tous ces outils déposent des cookies de profilage soumis à consentement, point.
- Pas de Google Fonts servies par fonts.googleapis.com (qui leak l'IP du visiteur à Google — condamné par un tribunal allemand en 2022) — on télécharge les polices au build et on les sert depuis le domaine du site. Next.js fait ça nativement avec `next/font`.
- Pas de Google Maps en iframe ni en script chargé sur la home — on remplace par OpenRouteService ou MapLibre + tuiles MapTiler / IGN si une carte est vraiment nécessaire.
- Pas de YouTube embeds standards (qui posent des cookies dès l'arrivée sur la page) — on utilise `youtube-nocookie.com` avec lazy-load au clic, ou on bascule sur une vidéo auto-hébergée via le composant `next/video`.
Remplacer Google Fonts par des polices locales
L'API `next/font` télécharge les polices Google au build, les optimise, les sert depuis votre propre domaine et génère le CSS `@font-face` automatiquement. Aucune requête vers `fonts.googleapis.com` au runtime.
// app/layout.tsx - polices auto-hebergees via next/font
import { Inter } from "next/font/google";
// Next.js telecharge les polices au build et les sert depuis votre domaine
const inter = Inter({
subsets: ["latin"],
display: "swap",
variable: "--font-inter",
});
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr" className={inter.variable}>
<body>{children}</body>
</html>
);
}Durcir les headers HTTP pour bloquer le tracking parasite
Même sans intégrer de tracker volontaire, certaines extensions navigateur ou bibliothèques tierces peuvent tenter d'activer des APIs publicitaires modernes (Topics API de Chrome, attribution-reporting). Une `Permissions-Policy` explicite les désactive, et une `Content-Security-Policy` stricte interdit le chargement de scripts externes non listés.
// next.config.ts - Headers HTTP de durcissement anti-tracking
async headers() {
return [
{
source: "/(.*)",
headers: [
// Bloque Topics API, FLoC, attribution-reporting, FedCM publicitaires
{
key: "Permissions-Policy",
value: "browsing-topics=(), interest-cohort=(), join-ad-interest-group=(), attribution-reporting=()",
},
// CSP stricte : seuls les scripts du domaine sont autorises
{
key: "Content-Security-Policy",
value: "default-src 'self'; script-src 'self'; img-src 'self' data: https://cdn.cedricsantiago.com; connect-src 'self' https://stats.client.fr; font-src 'self'",
},
],
},
];
}À ce stade, il reste éventuellement un cookie technique strictement nécessaire — celui de Cloudflare Turnstile pendant la durée d'un challenge anti-spam, ou un cookie de session si vous avez vraiment besoin de paniers e-commerce. Ces cookies sont exemptés de consentement par la CNIL (délibération 2020-091). Aucun bandeau requis.
4. Le bandeau « 1 clic » n'est pas conforme
Une variante très répandue : le pop-up à une seule case « OK » ou « Accepter », sans bouton « Refuser » apparent au même niveau. C'est juridiquement non conforme depuis la délibération CNIL n° 2020-091 et confirmé par les sanctions retentissantes de 2022-2025.
- Google LLC + Google Ireland — 150 M€ d'amende CNIL (décembre 2021), confirmée en 2022. Motif : refus moins accessible qu'accepter sur google.fr et youtube.com.
- Meta Platforms Ireland — 60 M€ d'amende CNIL (janvier 2022). Même motif sur facebook.com.
- Microsoft Ireland — 60 M€ d'amende CNIL (décembre 2022). Motif : pas de bouton « refuser » sur bing.com.
- Criteo SA — 40 M€ d'amende CNIL (juin 2023). Motif : consentement non valide pour le retargeting.
La règle CNIL est devenue limpide : si vous demandez du consentement, le bouton « Refuser tout » doit être présenté au même niveau d'accessibilité, en même typographie, en même couleur de poids que « Accepter tout ». Tout dark pattern qui rend le refus plus difficile expose à sanction. C'est une raison de plus pour ne plus avoir besoin du bandeau du tout — la conformité est moins coûteuse que la mise en conformité.
5. « Mais comment je sais combien de visiteurs j'ai ? »
C'est la vraie question. Pour 70 % des TPE que je croise, la réponse honnête est : « pas besoin de le savoir au visiteur près ». Vous savez déjà combien de leads passent par le formulaire de contact (mail). Vous voyez les positions Search Console. Vous avez les ventes. Le vanity metric « 1 247 visiteurs uniques cette semaine » ne change rien à votre business — surtout si la moitié sont des bots.
Pour les 30 % restants — sites e-commerce, sites avec funnel de conversion à optimiser, sites éditoriaux qui suivent leurs articles performants — on installe Matomo en self-hosted. Et on le configure pour rester exempté de bandeau.
6. Matomo self-hosted, le seul setup que je recommande
Matomo est l'alternative open source à Google Analytics, sous licence GPLv3. Deux versions cohabitent : Matomo Cloud (SaaS, hébergé chez Matomo) et Matomo self-hosted (vous l'installez sur votre serveur). Seul le second permet la conformité maximale et la souveraineté totale sur les données — c'est ce que j'installe pour mes clients.

Docker Compose Matomo + MariaDB
Le déploiement type tient en un fichier `docker-compose.yml` sur le même VPS que le site, derrière un sous-domaine `stats.client.fr` avec un certificat TLS Let's Encrypt.
# docker-compose.yml - Matomo self-hosted minimal
services:
matomo-db:
image: mariadb:11
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MARIADB_DATABASE: matomo
MARIADB_USER: matomo
MARIADB_PASSWORD: ${DB_PASSWORD}
volumes:
- ./data/db:/var/lib/mysql
networks: [matomo]
matomo:
image: matomo:5-apache
restart: unless-stopped
environment:
MATOMO_DATABASE_HOST: matomo-db
MATOMO_DATABASE_USERNAME: matomo
MATOMO_DATABASE_PASSWORD: ${DB_PASSWORD}
MATOMO_DATABASE_DBNAME: matomo
volumes:
- ./data/matomo:/var/www/html
ports:
- "127.0.0.1:8080:80"
depends_on: [matomo-db]
networks: [matomo]
networks:
matomo:Sauvegardes automatiques chiffrées via PBS ou borgbackup vers un second site, mises à jour mensuelles via `docker compose pull && docker compose up -d`. Coût d'hébergement marginal : quelques euros par mois sur un VPS qui héberge déjà d'autres choses.
7. Le réglage RGPD qui supprime le bandeau, étape par étape
Pour rester dans l'exemption CNIL « mesure d'audience strictement nécessaire » (délibération 2020-091), Matomo doit être configuré selon cinq règles strictes. La plupart sont activables dans `config/config.ini.php`.
- Anonymisation IP : tronquer les 2 derniers octets (IPv4) ou les 80 derniers bits (IPv6) avant tout traitement.
- Mode cookieless : désactiver la création de cookies traceurs. Matomo reconstruit la session via un fingerprint serveur basé sur IP anonymisée + User-Agent.
- Limiter la rétention des données détaillées à 13 mois maximum, agrégation au-delà.
- Désactiver le User ID, le tracking cross-site, l'enrichissement par des tiers (geo, social media).
- Pas d'export vers BigQuery, Google Ads, Meta Ads. Si vous voulez du retargeting publicitaire, c'est avec consentement et donc avec bandeau — on a quitté l'exemption.
Configuration anonymisation et rétention dans config.ini.php
; /var/www/html/config/config.ini.php
[General]
; Tronquer les 2 derniers octets IP avant tout traitement
anonymize_ip_mask_length = 2
anonymize_ip_mask_length_ipv6 = 80
[Tracker]
; Mode cookieless : pas de cookies traceurs
ignore_visits_cookie = 1
enable_fingerprinting_across_websites = 0
[Deletelogs]
; Retention 13 mois (395 jours), purge automatique apres
delete_logs_enable = 1
delete_logs_schedule_lowest_interval = 7
delete_logs_older_than = 395Tracker côté site (avec fallback noscript)
Le snippet à injecter dans le `<head>` ou le layout principal. La directive `disableCookies` est essentielle — c'est elle qui empêche la pose du cookie `_pk_id` côté visiteur.
<!-- Matomo tracker, mode cookieless avec fallback noscript -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']); // Aucun cookie pose
_paq.push(['setDoNotTrack', true]); // Respect du header DNT
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u = "https://stats.client.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);
})();
</script>
<noscript>
<img referrerpolicy="no-referrer-when-downgrade"
src="https://stats.client.fr/matomo.php?idsite=1&rec=1"
style="border:0" alt="">
</noscript>Une fois configuré ainsi, Matomo entre pleinement dans l'exemption CNIL. Vous mesurez pages vues, sessions, sources de trafic, parcours utilisateur, conversions — sans bandeau, sans cookie de tracking, sans transmission à un tiers.
8. Comparatif Matomo / Plausible / Umami / GoatCounter
Quatre outils dominent le marché des analytics « cookieless conformes ». Le choix dépend du compromis entre richesse fonctionnelle, performance frontend et complexité d'hébergement.
Matomo (le plus complet)
- Modèle : self-hosted (gratuit GPLv3) ou Cloud SaaS payant.
- Stack : PHP + MariaDB / PostgreSQL. Conteneur Docker officiel.
- Poids tracker : ~28 Ko gzippé. Plus lourd que les alternatives.
- Fonctionnalités : heatmaps, A/B testing, funnels, e-commerce, médias, customer journey, A/B tests — niveau Google Analytics complet.
- Exemption CNIL : oui après configuration (anonymisation + cookieless + rétention 13 mois).
- Idéal pour : sites e-commerce, sites éditoriaux qui ont besoin de funnels et de cohortes.
Plausible (le plus simple)
- Modèle : Cloud SaaS payant (~9 €/mois) hébergé en Allemagne (Hetzner Helsinki), ou self-hosted gratuit (CE).
- Stack : Elixir + PostgreSQL + ClickHouse. Image Docker officielle.
- Poids tracker : < 1 Ko gzippé. Imbattable côté Lighthouse.
- Fonctionnalités : pages, sources, devices, pays, objectifs — pas de funnels avancés ni de heatmaps.
- Exemption CNIL : oui nativement (cookieless par design).
- Idéal pour : sites vitrines, blogs, SaaS — quand on veut juste savoir ce qui marche.
Umami (l'équilibre)
- Modèle : self-hosted gratuit (MIT) ou Cloud payant.
- Stack : Next.js + PostgreSQL / MySQL. Très bien intégré à l'écosystème Vercel.
- Poids tracker : ~2 Ko gzippé.
- Fonctionnalités : équivalentes à Plausible avec une UI plus moderne, support multi-sites natif.
- Exemption CNIL : oui nativement (cookieless).
- Idéal pour : devs JS qui veulent un setup léger et auto-hébergé sans gérer du PHP.
GoatCounter (l'option no-frills)
- Modèle : SaaS gratuit pour les petits sites (< 100k pages vues/mois) hébergé par l'auteur, ou self-hosted gratuit.
- Stack : Go monolithique avec base SQLite ou PostgreSQL.
- Poids tracker : ~3 Ko gzippé.
- Fonctionnalités : statistiques de base uniquement. Pas de funnel, pas de e-commerce.
- Exemption CNIL : oui nativement (cookieless, no fingerprinting).
- Idéal pour : blog perso, site associatif, projet open source qui veut un compteur honnête.
Critère de sélection en deux questions : avez-vous besoin de funnels, heatmaps ou e-commerce avancé ? → Matomo. Sinon → Plausible ou Umami. Self-hosted dès que possible, SaaS européen sinon. **Jamais Google Analytics.**
9. Ce que le RGPD vous demande quand même
Supprimer le bandeau ne vous dispense pas des obligations résiduelles du RGPD. Quoi qu'il arrive, vous devez maintenir trois éléments visibles sur votre site.
- Une politique de confidentialité accessible depuis chaque page (RGPD Art. 13) — détaille les données collectées même minimales (logs serveur, formulaire de contact, mesure d'audience exemptée).
- Des mentions légales conformes (LCEN Art. 6) — identité de l'éditeur, hébergeur, directeur de publication.
- Le respect du droit d'opposition (RGPD Art. 21) — même si vous mesurez l'audience sans consentement, un visiteur peut demander à être exclu. Matomo et Plausible offrent un opt-out en une ligne.
Pour le formulaire de contact, le RGPD impose une mention sur le devenir des données (durée de conservation, finalité, base légale — intérêt légitime ou consentement explicite). Une phrase suffit, mais elle doit y être.
10. Combien ça coûte vraiment de ne pas tracker
Sur un site sans bandeau ni traceur, vous économisez : la licence Cookiebot ou Axeptio (200 à 600 € par an), le temps passé à debugger les variations de consentement entre Chrome, Safari et Firefox, les conversions perdues à cause des visiteurs qui cliquent « refuser » et ne reviennent pas. Vous gagnez : un score Lighthouse 95+ sans effort, une politique de confidentialité qui tient sur une page, et des visiteurs qui ne vous prennent pas pour une régie publicitaire.
Le coût pour ajouter Matomo self-hosted : ~30 minutes de provisioning sur l'infra existante (le `docker-compose.yml` ci-dessus déployé sur un VPS), plus la maintenance mensuelle (mises à jour de sécurité). Sur les sites que je gère, c'est inclus dans la prestation d'hébergement managé. Pour un client qui héberge ailleurs, je le facture à l'unité.
Conclusion
Le bandeau cookies n'est pas une obligation : c'est la conséquence d'un choix de tracking. Si vous supprimez les traceurs, vous supprimez le bandeau. Et si vous avez vraiment besoin de mesurer, Matomo self-hosted bien configuré (anonymisation IP, cookieless, rétention 13 mois) couvre 95 % des cas — le tout en restant strictement conforme à la doctrine CNIL et au RGPD, sans jamais déranger un visiteur ni risquer une sanction.
Si vous voulez auditer votre site actuel pour identifier ce qui justifie votre bandeau et voir ce qu'on peut supprimer sans casser le SEO ni les conversions, c'est généralement la première étape d'une prestation de mise en conformité — comptez deux à quatre heures pour la passe complète, recommandations actionnables à la clé.
Sources et références
Les références juridiques et techniques de cet article s'appuient sur la doctrine CNIL, les textes officiels Légifrance / EUR-Lex et la documentation des outils mentionnés, à jour mai 2026.
- CNIL — Délibération n° 2020-091 du 17 septembre 2020 (lignes directrices cookies & traceurs) : https://www.cnil.fr/fr/cookies-et-autres-traceurs-la-cnil-publie-des-lignes-directrices-modificatives-et-sa-recommandation
- CNIL — Délibération n° 2020-092 du 17 septembre 2020 (recommandations bandeaux) : https://www.cnil.fr/fr/cookies-et-autres-traceurs-la-cnil-publie-des-lignes-directrices-modificatives-et-sa-recommandation
- Légifrance — Article 82 Loi n° 78-17 Informatique et Libertés : https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000037813978
- EUR-Lex — Directive 2002/58/CE ePrivacy : https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:32002L0058
- EUR-Lex — Règlement (UE) 2016/679 RGPD (Article 13 information) : https://eur-lex.europa.eu/eli/reg/2016/679/oj
- CNIL — Cookies et traceurs : que dit la loi ? : https://www.cnil.fr/fr/cookies-et-traceurs-que-dit-la-loi
- CNIL — Mesure d'audience exemptée de consentement : https://www.cnil.fr/fr/la-mesure-daudience-exemptee-de-consentement
- CNIL — Sanction 150 M€ Google LLC + 90 M€ Google Ireland : https://www.cnil.fr/fr/cookies-sanction-de-150-millions-deuros-lencontre-de-google-llc-et-90-millions-deuros-lencontre-de
- CNIL — Sanction 60 M€ Meta Platforms Ireland (Facebook) : https://www.cnil.fr/fr/cookies-sanction-de-60-millions-deuros-lencontre-de-facebook-ireland-limited
- CNIL — Sanction 60 M€ Microsoft Ireland (Bing) : https://www.cnil.fr/fr/cookies-sanction-de-60-millions-deuros-lencontre-de-microsoft-ireland-operations-limited
- CNIL — Sanction 40 M€ Criteo : https://www.cnil.fr/fr/sanction-de-40-millions-deuros-lencontre-de-la-societe-criteo
- CJUE — Décision Google Fonts (LG München, janvier 2022) : https://noyb.eu/en/google-fonts-german-court-confirms-100-fine
- Matomo — Documentation officielle (anonymisation, GDPR) : https://matomo.org/faq/general/faq_146/
- Matomo — Privacy Compliance Tools : https://matomo.org/privacy/
- Plausible Analytics — Documentation officielle : https://plausible.io/docs
- Umami — Documentation officielle : https://umami.is/docs
- GoatCounter — Site officiel : https://www.goatcounter.com/
- Next.js — next/font (auto-hébergement des polices Google) : https://nextjs.org/docs/app/api-reference/components/font
- MDN — Permissions-Policy HTTP header : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy
- MDN — Content-Security-Policy HTTP header : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

Articles liés

Les États-Unis coupent Claude Fable 5 et Mythos 5 : la leçon de souveraineté que toute PME devrait retenir
Le 12 juin 2026, Washington force Anthropic à couper Claude Fable 5 et Mythos 5 pour le monde entier. Décryptage d'un dev qui héberge en France : pourquoi bâtir son activité sur une IA américaine est une dépendance — et comment reprendre le contrôle.
Lire l'article
Le Parlement européen passe à Qwant : souveraineté réelle ou surcouche de Microsoft Bing ?
Le 4 juin 2026, le Parlement européen remplace Google par Qwant sur ses postes. Geste fort pour la souveraineté numérique — sauf que Qwant reste en grande partie une surcouche de Microsoft Bing. Décryptage d'un dev qui héberge en France.
Lire l'article
Tech Sovereignty Package : l'Europe reprend le contrôle de ses données publiques
Le 27 mai 2026, Bruxelles présente le Tech Sovereignty Package pour restreindre l'usage d'AWS, Azure et Google sur les données publiques sensibles. Analyse des mesures CADA et Chips Act 2.0, du périmètre, et de ce que ça change pour vos projets numériques.
Lire l'articleUn projet à Strasbourg ?
Parlons de votre besoin métier. Premier échange offert, devis sous 24 h, code propriétaire et hébergement France.