· DevOps  · 3 Min. Lesezeit

Reichweite messen ohne Google: Matomo selbst gehostet

Web-Analyse muss nicht bedeuten, die Besucherdaten an Google zu geben. Wie ich Matomo selbst betreibe, das Tracking öffentlich und das Dashboard privat halte und warum ein kleiner Localhost-Guard nötig ist.

Web-Analyse muss nicht bedeuten, die Besucherdaten an Google zu geben. Wie ich Matomo selbst betreibe, das Tracking öffentlich und das Dashboard privat halte und warum ein kleiner Localhost-Guard nötig ist.

Wer wissen will, wie eine Website genutzt wird, muss dafür nicht Google Analytics einbinden und die Besucherdaten aus der Hand geben. Matomo leistet dasselbe, läuft aber auf eigenem Server, und die Daten bleiben bei mir. Ich betreibe eine Instanz für mehrere Seiten, und der entscheidende Kniff steckt in der Erreichbarkeit: Der zählende Teil und der auswertende Teil müssen sich unterschiedlich verhalten.

Schritt 1: Tracking öffentlich, Dashboard privat

Der Kern ist die Trennung. Das Tracking-Skript muss jeder Besucher laden können, denn nur dann kann eine Seite überhaupt Zahlen melden. Das Auswertungs-Dashboard dagegen darf niemand außer mir erreichen. Beides läuft im selben Container, aber über zwei Routen am Reverse Proxy Traefik. Die eine Route gibt nur die Tracking-Dateien öffentlich frei, die andere schützt Dashboard und API über eine IP-Beschränkung:

# Route 1: nur das Tracking-Skript, oeffentlich
- "traefik.http.routers.matomo-track.rule=Host(`stats.example.de`)
     && PathPrefix(`/matomo.php`,`/matomo.js`)"

# Route 2: Dashboard und API, nur von der eigenen IP
- "traefik.http.routers.matomo.rule=Host(`stats.example.de`)"
- "traefik.http.routers.matomo.middlewares=owner-ip@file"

Die Middleware owner-ip@file ist eine IPAllowList, die Anfragen anhand der Client-IP durchlässt oder abweist. So kann jede Seite Zahlen melden, aber an die Auswertung kommt nur, wer die richtige Herkunft hat.

Schritt 2: Eine Quelle für die Einbindung

Damit eine Seite zählt, muss sie das Tracking-Skript einbinden. Statt in jede Seite einzeln Tracking-Code zu basteln, halte ich die Einbindung an einer Stelle. Bei WordPress erledigt das ein einziges kleines mu-plugin, das je nach Host die richtige Seiten-ID setzt und Admins ausnimmt. Bei den statischen Seiten steht ein fest eingebauter Snippet. Das Zählen ist cookielos und an die Einwilligung gekoppelt, ein Cookie-Banner-Zwang entsteht dadurch gar nicht erst.

Schritt 3: Die Falle - der eigene Dev-Verkehr

Eine Sache, die man erst im Nachhinein sieht: Ohne Schutz zählt Matomo auch die eigenen Aufrufe mit, jeden lokalen Test, jeden Entwicklungslauf. Die Statistik wird dadurch systematisch verfälscht. Ein Localhost-Guard, der Aufrufe von der eigenen Adresse vom Tracking ausnimmt, ist deshalb Pflicht, sonst misst man vor allem sich selbst.

Ehrlich: Analyse bleibt Analyse

Auch selbst gehostet gilt: Reichweitenmessung ist ein Eingriff, der Transparenz und eine Rechtsgrundlage braucht. Der Gewinn von Matomo ist nicht, dass Messen plötzlich harmlos wäre, sondern dass die Daten Ihr Haus nicht verlassen und Sie die Kontrolle über Aufbewahrung und Zweck behalten. Das ist ein deutlicher Unterschied zu einem Dienst, der nebenbei seine eigenen Interessen an Ihren Besucherdaten verfolgt.

Sie wollen wissen, wie Ihre Seite genutzt wird, ohne die Daten Ihrer Besucher wegzugeben? Ich richte datensparsame, selbst gehostete Analyse ein, sauber getrennt und rechtlich sauber eingebunden. Mehr unter Datenschutz & DSB, das Erstgespräch ist unverbindlich.

Alex Jabi, Jabi IT

Alex Jabi

Ich betreue IT, Informationssicherheit und Datenschutz für KMU und Praxen an der Bergstraße und im Odenwald, persönlich, dokumentiert und ohne Cloud-Zwang.

Mehr über mich
Zurück zum Blog

Passende Artikel

Alle Artikel »