Plateformes

Comment ajouter un bandeau cookies à un site Hugo

Dans Hugo, ajoutez la balise dans le head de votre template de base, layouts/baseof.html (layouts/_default/baseof.html avant Hugo 0.146), ou dans le partial head utilisé par votre thème, copié dans le répertoire layouts/_partials/ de votre projet (layouts/partials/ sur les versions plus anciennes) pour qu’il remplace le fichier du thème. Gardez-la au-dessus du template de mesure d’audience du thème.
Publié le 20 octobre 2026 · Par l’équipe Cookiequiet

Étapes

Trouver où votre thème imprime le headCherchez dans votre thème le template de base (layouts/baseof.html, ou layouts/_default/baseof.html sur les versions antérieures à 0.146) et le partial qu’il appelle dans le head, souvent head.html dans layouts/_partials/ (layouts/partials/ avant 0.146).
Copier le fichier dans votre projetCopiez ce fichier au même chemin relatif sous le répertoire layouts/ de votre projet. Hugo utilise le fichier du projet quand les deux existent : le thème peut donc être mis à jour sans perdre votre modification.
Ajouter la balise comme premier scriptDans le fichier copié, ajoutez la balise Cookiequiet juste après la balise meta charset, au-dessus des scripts de mesure d’audience ou autres du thème. Vous pouvez lire la clé de site depuis site.Params pour la garder hors des templates.
Gérer la balise GoogleSi votre thème ou le template Google Analytics intégré de Hugo imprime la balise Google, remplacez-la par une copie marquée sous la balise Cookiequiet (type="text/plain", data-cq-category="analytics") ou ajoutez le bloc de consentement par défaut de Google au-dessus d’elle pour la faire tourner en Consent Mode.
Gérer le shortcode YouTubeRéglez privacy.youTube.privacyEnhanced sur true dans la configuration du site pour que le shortcode utilise youtube-nocookie.com, ou surchargez le shortcode dans layouts/_shortcodes/youtube.html pour imprimer data-cq-src au lieu de src.
Ajouter le lien Préférences de cookiesDans le partial du pied de page, ajoutez une ancre ordinaire avec href="#cq-preferences" et l’attribut data-cq-show-preferences.
Construire et testerLancez hugo server, ouvrez le site dans une fenêtre de navigation privée, cliquez sur Tout refuser et vérifiez qu’aucun cookie _ga ou _fbp n’est déposé. Acceptez tout, rechargez et consultez le registre des consentements.

Où coller la balise dans Hugo

Hugo construit chaque page à partir d’un template de base qui imprime l’enveloppe <html>, <head> et <body>. Depuis Hugo 0.146.0, le template de base vit dans layouts/baseof.html et les partials dans layouts/_partials/ ; les projets et thèmes plus anciens utilisent encore layouts/_default/baseof.html et layouts/partials/, que Hugo fait correspondre à la nouvelle organisation. La plupart des thèmes gardent le head dans un partial appelé depuis le template de base, par exemple {{ partial "head.html" . }}.

La règle qui rend l’opération sûre : quand le projet et le thème ont un fichier au même chemin, celui du projet l’emporte. Donc :

  1. Trouvez le partial head du thème (themes/<theme>/layouts/_partials/head.html ou themes/<theme>/layouts/partials/head.html) ou son template de base.
  2. Copiez-le au même chemin relatif dans le répertoire layouts/ de votre projet.
  3. Ajoutez la balise comme premier script, juste après la balise meta charset :
html
<head>
<meta charset="utf-8">
{{ with site.Params.cookiequiet.siteKey }}
<script src="https://cookiequiet.com/cq.js" data-site="{{ . }}" data-consent-mode="1" data-auto-block="1" defer></script>
{{ end }}
...
</head>
toml
# hugo.toml
[params.cookiequiet]
siteKey = "YOUR_SITE_KEY"

Le bloc with vous permet de laisser la clé vide dans une configuration locale, pour que les builds de développement n’aient pas de bandeau. Certains thèmes fournissent un partial vide prévu pour le code de head personnalisé (extend_head.html de PaperMod, par exemple) : l’utiliser évite de copier tout le partial head, à condition que le thème l’inclue avant sa propre mesure d’audience.

Comment gérer les balises que votre thème imprime

Google Analytics. Beaucoup de thèmes impriment la balise Google quand services.googleAnalytics.id est défini, souvent via le template Google Analytics intégré de Hugo. Ce template ne définit pas les valeurs par défaut du Consent Mode. Deux options, toutes deux décrites dans le guide Google Analytics 4 :

  • retirez l’ID de la configuration et collez une copie marquée de la balise Google sous la balise Cookiequiet (type="text/plain" data-cq-category="analytics" sur les deux balises script), pour que rien ne se charge avant le consentement ;
  • ou gardez la balise du thème et ajoutez le bloc de consentement par défaut de Google comme script inline entre la balise Cookiequiet et la balise Google, pour qu’elle tourne en Consent Mode avec analytics_storage refusé jusqu’au consentement.

Pixel Meta, widgets de chat, commentaires. Collez-les dans le même partial, marqués avec la bonne catégorie (marketing pour le pixel, functional pour un widget de chat). Disqus et les systèmes de commentaires similaires chargent leur script en JavaScript ; le bloqueur automatique retient ceux qu’il connaît jusqu’au consentement, et un wrapper marqué rend la chose explicite.

Contenus YouTube, Vimeo, X. Les shortcodes intégrés de Hugo impriment des iframes dans le HTML. La configuration de confidentialité de Hugo aide : privacy.youTube.privacyEnhanced = true fait passer le shortcode YouTube sur youtube-nocookie.com, et privacy.vimeo.enableDNT et privacy.x.simple réduisent ce que les autres envoient. Pour qu’un lecteur attende plutôt le consentement, surchargez le shortcode dans votre projet (layouts/_shortcodes/youtube.html, ou layouts/shortcodes/ sur les versions plus anciennes) et imprimez data-cq-src au lieu de src ; Cookiequiet charge l’iframe une fois le marketing accordé. Le guide sur les vidéos YouTube montre le balisage.

Comment ajouter le lien Préférences de cookies

Dans le partial du pied de page que vous avez copié dans le projet :

html
<a href="#cq-preferences" data-cq-show-preferences>Cookie preferences</a>

Comment tester

  1. Lancez hugo server et ouvrez le site dans une fenêtre de navigation privée.
  2. Cliquez sur « Tout refuser » : les cookies se limitent à cq_consent, pas de _ga, pas de _fbp.
  3. Effacez les cookies, cliquez sur « Tout accepter », rechargez : les balises marquées s’exécutent.
  4. Lancez hugo et vérifiez dans le HTML construit (public/index.html) que cq.js est le premier script du head.
  5. Consultez le registre des consentements dans le tableau de bord.

Ce qui est propre à Hugo

  • Mises à jour du thème. Comme votre copie du partial vit dans le projet, mettre à jour le thème (sous-module git ou module Hugo) ne supprime pas la balise ; comparez de temps en temps le nouveau partial du thème avec le vôtre.
  • Les modules Hugo suivent la même règle de surcharge que les thèmes.
  • Hébergement statique. Le site construit fonctionne sur Netlify, GitHub Pages, Cloudflare Pages ou n’importe quel serveur web ; le bandeau n’a pas besoin de serveur. Voir bandeaux cookies pour sites statiques.
  • Sites multilingues. Une seule balise sert toutes les langues ; la langue du bandeau suit le navigateur du visiteur.

Questions

Copiez celui que votre thème possède réellement au même chemin dans votre projet. Hugo 0.146.0 a déplacé les fichiers _default à la racine de layouts et les partials dans _partials, et fait correspondre les anciens chemins aux nouveaux : les deux organisations fonctionnent jusqu’à la migration du thème.
Soit retirez le réglage services.googleAnalytics.id et collez une copie marquée de la balise Google sous la balise Cookiequiet, soit ajoutez le bloc de consentement par défaut de Google au-dessus de la balise du thème pour qu’elle tourne en Consent Mode avec analytics_storage refusé. Cookiequiet envoie la mise à jour après le choix du visiteur.
Le shortcode par défaut embarque un lecteur youtube.com qui dépose des cookies. Réglez privacy.youTube.privacyEnhanced sur true pour youtube-nocookie.com, ou surchargez le shortcode pour imprimer data-cq-src afin que le lecteur attende la catégorie marketing.
Oui. Le bandeau est un seul script client servi depuis cookiequiet.com ; le site construit reste entièrement statique. Le registre des consentements et le ciblage géographique sont gérés par les serveurs de Cookiequiet.

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.