Umami : des analytics web sans bannière cookie ni Google
Un outil d'analyse de trafic open-source, sans cookies, conforme RGPD par design, qui affiche l'essentiel sans noyer les données sous des dizaines de rapports inutiles.
Google Analytics 4 collecte des données par défaut à un niveau qui déclenche une bannière de consentement cookies obligatoire dans l'UE. Umami prend le problème à l'envers : il ne pose pas de cookie et n'identifie pas individuellement les visiteurs, donc il ne collecte rien qui nécessite un consentement RGPD. Le résultat pratique : un site qui n'utilise qu'Umami peut légalement se passer de bannière cookie liée aux analytics.
Umami mesure ce qu'un site a réellement besoin de savoir : nombre de visites, pages les plus vues, source de trafic (referrer), pays, appareil, durée de session. Pas de suivi individuel entre sessions, pas de profil publicitaire construit, pas de revente de données — le modèle économique d'Umami est le logiciel lui-même (version cloud payante en option), pas la donnée collectée.
Installation avec Docker Compose
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
restart: always
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umamipass@db:5432/umami
APP_SECRET: une-clé-longue-aléatoire
depends_on:
- db
db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: umami
POSTGRES_PASSWORD: umamipass
POSTGRES_DB: umami
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:Premier accès sur http://votre-serveur:3000 avec les identifiants par défaut admin / umami — à changer immédiatement depuis les paramètres du compte.
Ajouter le script de tracking
Chaque site suivi génère un script unique à coller avant la fermeture de </head> :
<script
defer
src="https://analytics.mondomaine.fr/script.js"
data-website-id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
></script>Sur un projet Next.js, ce script s'intègre proprement via le composant Script avec une stratégie de chargement différée :
import Script from 'next/script'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr">
<body>
{children}
<Script
src="https://analytics.mondomaine.fr/script.js"
data-website-id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
strategy="afterInteractive"
/>
</body>
</html>
)
}Le script pèse moins de 2 Ko compressé — négligeable sur les métriques de performance Lighthouse, contrairement au poids cumulé de gtag.js et des scripts de consentement associés à Google Analytics.
Événements custom
Au-delà du suivi de page automatique, Umami permet de tracker des événements précis (clic sur un CTA, soumission de formulaire, téléchargement) via un appel JavaScript simple :
window.umami.track('inscription-newsletter', { source: 'footer' })Ces événements apparaissent dans un onglet dédié du dashboard, filtrable par nom et par propriété — utile pour mesurer un taux de conversion sans configurer de "goals" complexes comme dans GA4.
Umami vs Google Analytics 4 vs Plausible
| Critère | Umami | GA4 | Plausible |
|---|---|---|---|
| Cookies | Aucun | Oui | Aucun |
| Bannière consentement requise | Non | Oui (UE) | Non |
| Hébergement | Self-hosted ou cloud payant | Self-hosted ou cloud payant | |
| Poids du script | ~2 Ko | ~45 Ko | ~1 Ko |
| Rétention des données | Illimitée (vos serveurs) | Limitée (2-14 mois par défaut) | Illimitée |
| Coût self-hosted | Gratuit | N/A | Gratuit (licence AGPL) |
Face à Google Analytics 4, l'écart principal n'est pas fonctionnel — GA4 reste plus riche en segmentation avancée et en intégrations publicitaires — mais réglementaire et éthique : Umami ne demande jamais de justifier une base légale de traitement de données personnelles auprès de la CNIL, puisqu'il n'en collecte pas.
Rapports et dashboard
Le dashboard Umami affiche l'essentiel sans profondeur excessive : graphique de trafic dans le temps, pages les plus visitées, referrers, répartition géographique, navigateurs et appareils. Pas de tunnel de conversion multi-étapes ni de machine learning prédictif — le compromis assumé du projet est la simplicité plutôt que l'exhaustivité.
Filtres disponibles :
Période : 24h / 7j / 30j / 12 mois / custom
Comparaison : période précédente
Segmentation : par page, referrer, pays, deviceMulti-sites depuis une seule instance
Une instance Umami gère un nombre illimité de sites, chacun avec son propre website-id et son propre dashboard — utile pour qui gère plusieurs projets et veut centraliser les analytics sans payer un abonnement par site comme le font la plupart des solutions cloud.
Sauvegardes
Toute la donnée vit dans PostgreSQL — une sauvegarde standard suffit.
docker exec db pg_dump -U umami umami > umami-backup-$(date +%F).sqlUmami perd en profondeur d'analyse face à GA4 pour qui a besoin de remarketing publicitaire ou d'attribution multi-canal complexe. Mais pour la question que se posent la plupart des sites — d'où vient le trafic, quelles pages fonctionnent — c'est largement suffisant, et ça évite le compromis entre bannière cookie intrusive et conformité RGPD approximative. Sur un serveur qui tourne déjà Docker et PostgreSQL, l'installation prend moins de temps que la configuration d'un compte GA4 correctement paramétré.