📊 Pourquoi et comment installer Matomo pour suivre les statistiques de votre site web

Vous cherchez une alternative à Google Analytics, respectueuse de la vie privée et hébergée sur vos propres serveurs ? Dans cet article, je vous explique pourquoi j’ai choisi Matomo pour mes sites Osmodev, et comment l’installer proprement avec Nginx, PHP et MariaDB. Bonus : je vous montre aussi comment je l’ai intégré à mon moteur de templates Nunjucks pour simplifier le déploiement du script de tracking.

🧊 Pourquoi choisir Matomo ?

  • Open source (licence GPLv3), sans collecte tierce.
  • Respect du RGPD, avec masquage IP, opt-out et désactivation des cookies.
  • Contrôle complet des données via hébergement local.
  • Fonctionnalités avancées : entonnoirs, heatmaps, suivi d’événements, API complète.

🛠️ Préparer l’environnement

Voici ce que j’utilise :

  • Un VPS sous Ubuntu 22.04
  • Nginx, PHP 8.2, MariaDB
  • Un sous-domaine dédié : https://stats.osmodev.fr

🔧 Installation pas à pas

1. Télécharger Matomo

cd /var/www
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
chown -R www-data:www-data matomo

2. Créer la base de données

CREATE DATABASE matomo_db;
CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'motdepassefort';
GRANT ALL PRIVILEGES ON matomo_db.* TO 'matomo'@'localhost';
FLUSH PRIVILEGES;

🛈 'matomo'@'localhost' signifie que seul l’utilisateur matomo peut se connecter à la base de données, et uniquement si la connexion provient de la même machine que le serveur MariaDB. Autrement dit, cela suppose que Matomo est installé sur le même VPS que la base.

3. Configurer Nginx

server {
  listen 443 ssl;
  server_name stats.osmodev.fr;
  root /var/www/matomo;
  index index.php;

  ssl_certificate /etc/letsencrypt/live/stats.osmodev.fr/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/stats.osmodev.fr/privkey.pem;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
  }
}

📈 Intégrer Matomo à vos sites

Je recommande d’externaliser le code suivant dans un fichier JS pour éviter les conflits CSP :

var _paq = window._paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
  var u="https://stats.osmodev.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);
})();

✅ Intégration avec Nunjucks

👉 Pour en savoir plus sur l’utilisation de Nunjucks dans mon architecture, je vous recommande cet article dédié à Nunjucks.

Sur mes sites Osmodev, j’utilise Nunjucks comme moteur de template. J’ai centralisé l’inclusion du script Matomo dans un seul fichier Nunjucks partagé. Cela me permet de ne l’inclure qu’une fois, dans un bloc conditionnel adapté à chaque site (via set ou if). Exemple :

{% if isMatomoEnabled %}
  <script src="/js/{{ matomoFileName }}.js" async></script>
{% endif %}

Et dans matomo.js, je charge dynamiquement le bon ID de site en fonction de la variable injectée côté serveur.

Chaque site (ex. blog, formations…) peut avoir son propre ID de suivi Matomo. Grâce à Nunjucks, cette configuration reste DRY et très lisible.

🛡️ Vie privée et conformité

  • Anonymisation des IP (2 octets minimum)
  • Mode sans cookie activable
  • Opt-out utilisateur simple à intégrer

📊 Exploiter les données

  • Tableaux de bord personnalisables
  • Filtres avancés, graphiques interactifs
  • Exports CSV, JSON, accès via API

📋 Alternatives en un coup d’œil

OutilRGPDOpen SourceSelf-hostedFonctionnalités
Google Analytics
Matomo
Plausible🔶 (limité)
Umami🔶 (limité)

🔚 Conclusion

Matomo est bien plus qu’un simple outil de statistiques : il vous permet d’avoir une vraie vision métier, tout en garantissant à vos utilisateurs un respect strict de leur vie privée.

En hébergeant vos statistiques, vous gagnez en indépendance, en transparence et en crédibilité. Matomo n’est pas qu’un outil de tracking, c’est un acte de souveraineté numérique.

📚 Références

💡 Si vous constatez qu’un lien est brisé ou obsolète, n’hésitez pas à me le signaler afin que je puisse le corriger. Merci !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut
× Image agrandie