Blog

Comment fonctionne le scanner Cookiequiet (et ce qu’il ne peut pas voir)

Le scanner lit jusqu’à 50 pages et nomme scripts, iframes, pixels et cookies grâce à 80 fournisseurs. Sans exécuter le JavaScript, il en déduit certains.
Publié le 20 octobre 2026 · Par l’équipe Cookiequiet

Le scanner Cookiequiet est un robot qui récupère vos pages comme un navigateur les demanderait, sans exécuter leur JavaScript, et lit le HTML et les en-têtes de réponse à la recherche de tout ce qui peut stocker ou lire des données sur le terminal d’un visiteur : balises script, iframes, feuilles de style et indications preconnect, pixels de suivi, et les en-têtes Set-Cookie envoyés par votre serveur. Il nomme ce qu’il trouve grâce à une base d’environ 80 fournisseurs, de Google Analytics 4 à Hotjar, Stripe et Intercom, et transforme le résultat en tableau des cookies, en liste de sous-traitants et en liste d’hôtes pour le bloqueur automatique. Comme il n’exécute pas les scripts, un cookie qui n’apparaît que lorsqu’un script s’exécute est listé d’après la base de fournisseurs, pas observé. Cette limite, et quelques autres, sont la raison d’être de cet article.

Étape 1 : le parcours des pages

Le scan démarre sur https://yourdomain/ (avec repli sur http:// si le site sécurisé ne répond pas) et suit les liens vers les pages du même site, en largeur d’abord, quelques pages à la fois, jusqu’à épuisement du budget de pages : 5 pages pour le scanner public gratuit, 10 pages par scan sur l’offre gratuite, 50 en Starter et en Pro. « Même site » signifie le même domaine enregistrable, donc shop.example.com et www.example.com sont tous deux parcourus à partir de example.com. Les liens vers des fichiers (PDF, images, CSS, JavaScript, polices), les liens mailto: et tel: et les ancres sont ignorés. Chaque page dispose de 10 secondes et est lue jusqu’à 2 Mo ; seules les réponses HTML sont conservées. Le robot s’identifie comme CookiequietBot/1.0 dans son user agent ; une page lente ou bloquée est enregistrée comme une erreur plutôt que réessayée indéfiniment.

Le parcours n’atteint que ce qui est lié depuis les pages qu’il visite, dans la limite du budget. Une page derrière une connexion, une étape de paiement qui exige un panier, ou une page d’atterrissage vers laquelle personne ne fait de lien n’est pas scannée.

Étape 2 : la lecture de chaque page

Pour chaque page, le scanner lit :

  • Les balises script. Les scripts externes par leur URL, comparée aux hôtes de la base de fournisseurs (par exemple googletagmanager.com/gtag/js signifie Google Analytics 4, connect.facebook.net signifie pixel Meta). Les scripts inline par leur contenu : signatures de fournisseurs, identifiants de mesure (GTM-, G-, AW- et identifiants de pixel Meta), et la présence d’un appel Consent Mode par défaut, qui nous dit si Consent Mode est déjà configuré.
  • Les iframes, d’après leur src ou leur data-src, pour YouTube, Vimeo, Google Maps, Spotify, Calendly et les formulaires de paiement.
  • Les feuilles de style et les indications de ressources (preconnect, dns-prefetch), où apparaissent Google Fonts et Adobe Fonts.
  • Les pixels de suivi (beacons) vers des hôtes publicitaires connus (Meta, Google Ads, DoubleClick, Microsoft Advertising, LinkedIn, Pinterest, X).
  • Les en-têtes Set-Cookie de la réponse : nom du cookie, domaine, et durée calculée à partir de Max-Age ou Expires (affichée comme « Session », « 30 minutes », « 13 mois », « 2 ans »).
  • La plateforme, d’après la balise meta generator et des marqueurs connus : WordPress, Shopify, Wix, Squarespace, Webflow, Framer, HubSpot CMS, Ghost, Hugo, Astro, Nuxt, Next.js et d’autres, ce qui alimente les instructions d’installation que nous vous montrons.
  • Les autres outils de consentement déjà installés, et la présence ou non de Consent Mode.

Les hôtes tiers absents de la base sont listés aussi, comme hôtes inconnus, pour que vous voyiez ce que la base a manqué.

Étape 3 : nommer et classer

Chaque fournisseur de la base porte une société, une catégorie (nécessaires, fonctionnels, mesure d’audience ou marketing), les cookies qu’il dépose avec leur durée et leur finalité habituelles, la destination des données, et une note pour le tableau des sous-traitants de la politique de confidentialité. Quand un script de Google Analytics est trouvé, ses cookies (_ga, _ga_*, _gid, _gat) sont ajoutés au tableau comme « déclarés par le fournisseur », parce que le scanner sait que l’outil les dépose même s’il ne les a pas vus être déposés.

Les cookies vus dans les en-têtes Set-Cookie sont comparés à la base par leur nom, puis à des motifs génériques (identifiants de session, jetons CSRF, cookies de répartiteur de charge). Ce qui reste est « non classé ». Quand une clé d’IA est configurée, jusqu’à 25 cookies non classés par scan sont envoyés à Claude (Anthropic) avec leur nom, leur hôte et la plateforme détectée, et il propose une catégorie et une finalité en une phrase, avec pour consigne de privilégier « nécessaires » pour les cookies de session et de sécurité et de le dire. Ce sont des suppositions éclairées, présentées comme telles et modifiables ; un cookie que vous avez nommé promo_seen reste une supposition tant que vous ne l’avez pas confirmée.

Les catégories que vous définissez à la main sont conservées d’un scan à l’autre.

Étape 4 : ce qui en sort

Le résumé du scan liste les fournisseurs trouvés et la page où chacun a été vu en premier, les cookies par catégorie avec leur source (observé dans un en-tête ou déclaré par un fournisseur), les hôtes tiers, les identifiants de mesure, la plateforme, tout autre outil de consentement, l’indicateur Consent Mode, les pages parcourues et les erreurs. Un verdict needsConsent est vrai dès qu’un fournisseur ou un cookie non nécessaire a été trouvé. À partir de là, le tableau de bord construit le tableau des cookies du bandeau, la liste d’hôtes du bloqueur automatique et le tableau des sous-traitants des politiques, et l’outil public gratuit sur /tools/cookie-scanner montre une version plus courte du même rapport pour 5 pages au plus, sans compte.

Ce que le scanner ne peut pas voir

  • Les cookies déposés par JavaScript. Sans exécuter les scripts, le scanner ne peut pas observer l’écriture de document.cookie. Il déduit ces cookies des fournisseurs qu’il reconnaît. Une option HTML rendu existe (via un service de rendu headless, lorsqu’il est configuré) qui montre la page après l’exécution des scripts, y compris les balises injectées par un gestionnaire de balises ; dans ce mode, les en-têtes Set-Cookie de la réponse d’origine ne sont pas disponibles, si bien que les deux modes voient des choses différentes.
  • Ce que charge un gestionnaire de balises. Un conteneur Google Tag Manager est reconnu par son identifiant, mais son contenu vit sur les serveurs de Google et n’est visible que lorsque la page est rendue.
  • Les pages qui exigent une session. Les espaces connectés, les paniers, les tunnels de paiement et les pages réservées aux membres ne sont pas parcourus.
  • Les pages non liées et lointaines. Le budget est de 5, 10 ou 50 pages ; un site de 3 000 pages est échantillonné, pas épuisé.
  • Ce qu’un script fait réellement. Le scanner vous dit qu’un script vient de Hotjar ; il ne peut pas vous dire quelles fonctions de Hotjar vous avez activées.
  • Le comportement après consentement. Le scan lit les pages comme un visiteur qui arrive pour la première fois sans avoir choisi. Il ne clique pas sur « Accepter », donc il ne peut pas vérifier que les balises marquées s’activent correctement ; les outils de développement le font.
  • Les variantes. Les tests A/B, les pages propres à une zone géographique et les contenus personnalisés peuvent montrer au scanner une page différente de celle que voient vos visiteurs.

Comment bien l’utiliser

Scannez après chaque changement de vos balises, de votre thème ou de vos plugins (Starter et Pro relancent le scan chaque semaine ; l’offre gratuite chaque mois ou à la demande). Traitez le tableau des cookies comme un brouillon : confirmez les catégories des cookies non classés, ajoutez la raison pour chaque cookie que vous qualifiez de nécessaire, puisque la task force « bandeaux cookies » du CEPD (Comité européen de la protection des données) a précisé que les éditeurs doivent pouvoir démontrer pourquoi, et supprimez les entrées des outils que vous n’utilisez plus. Puis faites la seule chose que le scanner ne peut pas faire : ouvrez le site dans une fenêtre de navigation privée, avant tout clic, après « Tout refuser », après « Tout accepter », et comparez ce que vous voyez avec le tableau. La checklist d’audit des cookies vous guide. Un scanner qui lit le HTML sera toujours plus rapide que vous et moins complet que vos propres yeux ; utilisés ensemble, ils couvrent le site.

Questions

Parce qu’il les déduit des fournisseurs qu’il reconnaît : quand il trouve le script de Google Analytics, il liste les cookies que Google Analytics dépose, marqués comme déclarés par le fournisseur plutôt qu’observés. Si vous avez configuré l’outil pour ne pas en déposer certains, supprimez ces lignes.
Le contenu du conteneur vit sur les serveurs de Google et n’apparaît que lorsque le JavaScript de la page s’exécute. Le scan par défaut lit le HTML sans exécuter les scripts ; l’option HTML rendu, lorsqu’elle est configurée, montre les balises injectées par le conteneur.
Non. Le robot récupère les pages comme un visiteur anonyme et ne se connecte pas. Scannez le site de production public, ou une copie de préproduction accessible sans authentification.
C’est une supposition à partir du nom du cookie, de son hôte et de la plateforme détectée, écrite pour privilégier la catégorie nécessaires pour les cookies de session et de sécurité et pour en donner la raison. Traitez-la comme un brouillon à confirmer, surtout pour les cookies déposés par votre propre code.

Mettez un bandeau discret sur votre site dès aujourd’hui

Gratuit pour un site avec toutes les fonctions essentielles, sans carte ni période d’essai qui expire. Passez un site en Starter pour €3 par mois pour le mettre à vos couleurs par IA sans la mention Cookiequiet, ou en Pro pour €9 pour le concevoir avec l’agent IA.