Matomo (früher Piwik) ist eine Open-Source-Web-Analyse-Plattform. Im Gegensatz zu Google Analytics hosten Sie die Daten selbst.

Vorteile von Matomo

  • Datenschutz: DSGVO-konform, Daten auf eigenem Server
  • Kein Cookie-Banner nötig: Bei korrekter Konfiguration
  • Keine Datenweitergabe: Alles bleibt bei Ihnen
  • Kostenlos: Open Source, selbst gehostet
  • Umfangreiche Features: Ähnlich wie Google Analytics

Voraussetzungen

  • Webserver (Apache oder Nginx)
  • PHP 7.4+ (8.0+ empfohlen)
  • MySQL/MariaDB
  • Mindestens 128 MB RAM
  • SSL-Zertifikat (empfohlen)

Installation

1. Datenbank erstellen

mysql -u root -p
CREATE DATABASE matomo;
CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'sicheres_passwort';
GRANT ALL PRIVILEGES ON matomo.* TO 'matomo'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. Matomo herunterladen

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

3. Nginx-Konfiguration

server {
    listen 80;
    server_name analytics.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name analytics.example.com;

    root /var/www/matomo;
    index index.php;

    ssl_certificate /etc/letsencrypt/live/analytics.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/analytics.example.com/privkey.pem;

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

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    # Matomo-spezifische Regeln
    location ~ ^/(config|tmp|core|lang) {
        deny all;
        return 403;
    }

    location ~ /\.(?!well-known) {
        deny all;
    }
}

4. Apache-Konfiguration

<VirtualHost *:443>
    ServerName analytics.example.com
    DocumentRoot /var/www/matomo

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/analytics.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/analytics.example.com/privkey.pem

    <Directory /var/www/matomo>
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /var/www/matomo/config>
        Require all denied
    </Directory>

    <Directory /var/www/matomo/tmp>
        Require all denied
    </Directory>
</VirtualHost>

5. Web-Setup

Öffnen Sie https://analytics.example.com und folgen Sie dem Setup-Assistenten:

1. Systemprüfung bestätigen 2. Datenbank-Daten eingeben 3. Admin-Benutzer erstellen 4. Erste Website hinzufügen 5. Tracking-Code erhalten

Tracking-Code einbinden

Standard-Code

<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//analytics.example.com/";
    _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>
<!-- End Matomo Code -->

Ohne Cookies (DSGVO-freundlich)

<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//analytics.example.com/";
    _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>

Mit disableCookies setzt Matomo keine Cookies und ist ohne Einwilligung nutzbar.

DSGVO-Konfiguration

1. IP-Anonymisierung

Administration → Datenschutz → IP-Daten anonymisieren

  • 2 Bytes anonymisieren (empfohlen)
  • Beispiel: 192.168.1.100 → 192.168.0.0

2. Rohdaten-Anonymisierung

Administration → Datenschutz → Benutzer-IDs anonymisieren

3. Opt-Out einbinden

Auf Ihrer Datenschutzseite:

<iframe
    style="border: 0; width: 100%; height: 200px;"
    src="https://analytics.example.com/index.php?module=CoreAdminHome&action=optOut&language=de">
</iframe>

4. Do Not Track respektieren

Administration → Datenschutz → "Do Not Track" respektieren aktivieren

Cron-Job für Archivierung

Für bessere Performance archivieren Sie Daten per Cron:

crontab -e -u www-data
5 * * * * /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com/

Browser-Archivierung deaktivieren

In config/config.ini.php:

[General]
browser_archiving_disabled_enforce = 1

Weitere Websites hinzufügen

1. Administration → Websites → Website hinzufügen 2. Namen und URL eingeben 3. Tracking-Code mit neuer Site-ID einbinden

Benutzer verwalten

Rollen

| Rolle | Rechte | |-------|--------| | View | Nur Berichte ansehen | | Write | Berichte + Tracking | | Admin | Alles außer Super User | | Super User | Vollzugriff |

Benutzer erstellen

Administration → Benutzer verwalten → Benutzer hinzufügen

Plugins

Nützliche Plugins

  • CustomDimensions: Eigene Tracking-Dimensionen
  • MarketingCampaignsReporting: Kampagnen-Analyse
  • SEO: Suchmaschinen-Rankings
  • FormAnalytics: Formular-Tracking

Plugin installieren

Administration → Marketplace → Plugin suchen → Installieren

Import von Google Analytics

Mit dem Google Analytics Importer Plugin:

1. Plugin aktivieren 2. Administration → Google Analytics Import 3. Google-Konto verbinden 4. Property auswählen 5. Importieren

Performance-Optimierung

MySQL-Einstellungen

[mysqld]
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M

PHP OPcache

In php.ini:

opcache.enable=1
opcache.memory_consumption=128

Archivierung optimieren

php /var/www/matomo/console core:archive \
  --url=https://analytics.example.com/ \
  --concurrent-requests-per-website=2

Updates

Automatisch

Administration → System → Updates

Per Kommandozeile

cd /var/www/matomo
php console core:update

Backup

Datenbank

mysqldump -u root -p matomo > matomo_backup.sql

Dateien

tar -czvf matomo_files.tar.gz /var/www/matomo/config

Datenschutzerklärung

Fügen Sie zu Ihrer Datenschutzerklärung hinzu:

## Web-Analyse mit Matomo

Diese Website nutzt Matomo zur Analyse der Websitebenutzung.
Die Daten werden auf unserem eigenen Server gespeichert und
nicht an Dritte weitergegeben.

Matomo verwendet Cookies, um die Nutzung zu analysieren.
Die IP-Adressen werden anonymisiert.

Sie können der Datenerhebung widersprechen:
[Opt-Out-Iframe hier]

Bei cookieless Tracking:

Diese Website nutzt Matomo zur Analyse der Websitebenutzung.
Es werden keine Cookies gesetzt und keine personenbezogenen
Daten erhoben. Die IP-Adressen werden anonymisiert.

Fazit

Matomo ist die beste Wahl für datenschutzbewusste Website-Betreiber. Mit der richtigen Konfiguration (ohne Cookies, IP-Anonymisierung) können Sie Besucherstatistiken erfassen, ohne ein Cookie-Banner zu benötigen. Die Installation auf dem eigenen Server gibt Ihnen volle Kontrolle über die Daten.