TechnologieWeb

Cookielose Webanalytics mit Plausible für viele Websites

netcomputing.de Redaktion26. August 20269 Min. Lesezeit

Zusammenfassung

Wer viele Websites betreibt, will Besucherzahlen ohne Google Analytics und ohne Cookie-Banner. Plausible zählt Besucher über einen täglich rotierenden Hash aus IP-Adresse, Browserkennung und Domain, nur im Arbeitsspeicher, ohne gespeicherte IP-Adressen. Eine selbstgehostete Docker-Instanz mit Postgres und ClickHouse bedient beliebig viele Websites als getrennte Sites. Nach Plausibles eigener Rechtseinschätzung entfällt so die Cookie-Banner-Pflicht.

Systemvoraussetzungen

Wer mehrere eigenständige Websites gleichzeitig betreibt, braucht für jede von ihnen eine einfache Besucherstatistik, aber weder eine eigene bezahlte Analytics-Lizenz je Projekt noch einen Cookie-Consent-Banner für jede einzelne Seite. Plausible Analytics ist eine quelloffene, selbstgehostete Statistiklösung, die Seitenaufrufe, verweisende Websites und Herkunftsländer zählt, ohne dafür ein Cookie zu setzen, also eine kleine Textdatei, die ein Server sonst im Browser hinterlegt, um einen Besucher wiederzuerkennen. Statt eines Cookies berechnet Plausible für jeden Besucher einen täglich neu erzeugten Hash, eine kurze, nicht umkehrbare Zeichenfolge aus IP-Adresse, Browserkennung (User-Agent) und der aufgerufenen Domain. Ein Cookie entfällt dadurch vollständig. Laut Plausibles eigener Datenschutz-Dokumentation läuft diese Berechnung ausschließlich im Arbeitsspeicher des Servers, und weder die IP-Adresse noch der vollständige User-Agent werden dabei gespeichert. Eine einzelne, selbstgehostete Plausible-Instanz bedient dabei beliebig viele Websites gleichzeitig, jede als eigene Site, Plausibles Bezeichnung für einen einzelnen Website-Eintrag mit eigenem Dashboard und eigenem Tracking-Schnipsel. Die folgende Tabelle nennt die Komponenten und Versionen, die dieser Aufbau in der aktuellen Community Edition voraussetzt.

KomponenteVersion / Anforderung
Plausible Community Editionv3.2.1 (aktueller Self-Hosting-Release, Docker-Image ghcr.io/plausible/community-edition)
Docker Engine und Docker ComposeSteuert drei Container über eine gemeinsame compose.yml
PostgreSQLpostgres:16-alpine, speichert Konten, Teams, Websites und Einstellungen
ClickHouseclickhouse/clickhouse-server:24.12-alpine, speichert die einzelnen Ereignisdaten; die CPU braucht laut Plausibles eigenen Voraussetzungen mindestens den Befehlssatz SSE 4.2 oder, auf ARM-Servern, NEON
BASE_URL und SECRET_KEY_BASEPflicht-Umgebungsvariablen der Instanz; BASE_URL muss auf die öffentlich erreichbare Domain zeigen
Tracking-Schnipsel je WebsiteEigenes, pro Site erzeugtes Script unter dem Pfad /js/pa-<eindeutige-ID>.js

Systemarchitektur

Mehrere Sites laufen auf demselben Server, weil jedes eingehende Ereignis serverseitig mit der Kennung der jeweiligen Site markiert und in ClickHouse gespeichert wird, einer spaltenorientierten Datenbank, die auf große Mengen einzelner Ereignisse statt auf einzelne Datensätze mit vielen Feldern ausgelegt ist. Das folgende Diagramm zeigt, wie ein Seitenaufruf auf zwei unterschiedlichen Websites am Ende jeweils nur im eigenen Dashboard ankommt.

flowchart TD
    A[Besucher ruft Website A im Browser auf] --> B[Das site-eigene Script von Website A laedt]
    C[Besucher ruft Website B im Browser auf] --> D[Das site-eigene Script von Website B laedt]
    B --> E[Beide Scripts senden das Pageview-Ereignis an dieselbe Plausible-Instanz]
    D --> E
    E --> F[Plausible berechnet einen taeglich rotierenden Hash aus IP-Adresse, Browserkennung und Domain im Arbeitsspeicher]
    F --> G[Das Ereignis wird mit der jeweiligen Site-ID in ClickHouse gespeichert, ohne die IP-Adresse]
    G --> H[Dashboard von Website A zeigt nur Ereignisse mit der Site-ID von Website A]
    G --> I[Dashboard von Website B zeigt nur Ereignisse mit der Site-ID von Website B]

Zugriff auf die einzelnen Sites lässt sich getrennt vergeben. Ein Team in Plausible kennt fünf Rollen mit Zugriff auf alle Sites des Teams: Owner, Admin, Editor, Billing und Viewer. Für Personen, die nur eine einzelne Website sehen sollen, gibt es zusätzlich Gastrollen, Guest Editor und Guest Viewer, die sich direkt in den Einstellungen dieser einen Website vergeben lassen, ohne die betreffende Person dem gesamten Team hinzuzufügen. Ein Nutzerkonto kann außerdem Mitglied mehrerer Teams gleichzeitig sein und zwischen ihnen wechseln, was für eine Agentur mit mehreren Kunden-Teams praktisch ist.

Weil das Tracking-Script keine Cookies setzt und nichts auf dem Endgerät des Besuchers speichert oder ausliest, geht Plausible in einer selbst in Auftrag gegebenen Rechtseinschätzung davon aus, dass für diese Art der Datenerhebung keine Einwilligung nach Artikel 5 Absatz 3 der ePrivacy-Richtlinie nötig ist, jener EU-Regel, die eine Zustimmung ausdrücklich nur beim Speichern oder Auslesen von Informationen auf dem Endgerät verlangt. Die Einschätzung stammt von einem auf Datenschutz spezialisierten Anwalt im Auftrag von Plausible und verweist zusätzlich auf eine Leitlinie der französischen Aufsichtsbehörde CNIL. Sie ist keine förmliche Freigabe durch eine Aufsichtsbehörde und ersetzt keine eigene rechtliche Prüfung im Einzelfall, besonders wenn eine Organisation zusätzlich personenbezogene Daten aus anderen Quellen verarbeitet.

Schritt-für-Schritt-Umsetzung

Docker Compose startet die gemeinsame Plausible-Instanz mit Postgres und ClickHouse

Die Instanz läuft einmal für das gesamte Portfolio an Websites und muss dafür nicht für jede Website neu aufgesetzt werden. Eine compose.yml mit drei Diensten reicht für den Start: die Datenbank für Konten und Einstellungen, die Ereignisdatenbank und die eigentliche Plausible-Anwendung.

services:
  plausible_db:
    image: postgres:16-alpine
    restart: always
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=ein-sicheres-passwort

  plausible_events_db:
    image: clickhouse/clickhouse-server:24.12-alpine
    restart: always
    volumes:
      - event-data:/var/lib/clickhouse
      - event-logs:/var/log/clickhouse-server

  plausible:
    image: ghcr.io/plausible/community-edition:v3.2.1
    restart: always
    depends_on:
      - plausible_db
      - plausible_events_db
    ports:
      - "8000:8000"
    environment:
      - BASE_URL=https://analytics.beispiel-firma.de
      - SECRET_KEY_BASE=ein-mindestens-64-zeichen-langer-zufallswert
      - DATABASE_URL=postgres://postgres:ein-sicheres-passwort@plausible_db:5432/plausible_db
      - CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db

volumes:
  db-data:
  event-data:
  event-logs:

Der Server startet mit docker compose up -d und ist danach unter der in BASE_URL hinterlegten Domain erreichbar. SECRET_KEY_BASE verschlüsselt Sitzungsdaten der Plausible-Anwendung selbst und hat nichts mit den einzelnen Tracking-Schnipseln der angeschlossenen Websites zu tun.

Jede Website entsteht als eigener Site-Eintrag im Dashboard

Eine neue Website kommt über die Schaltfläche Add website im Plausible-Dashboard hinzu. Dabei genügt der reine Domainname ohne https:// und ohne www., zum Beispiel beispiel-shop.de für die Adresse https://www.beispiel-shop.de. Jede so angelegte Website bekommt eine eigene Site-Kennung und ein eigenes Dashboard, unabhängig davon, wie viele weitere Websites bereits im selben Team laufen. Nach dem Anlegen zeigt der Bereich Site Installation in den Einstellungen genau dieser Website den zugehörigen Tracking-Schnipsel, zusammen mit einem Umschalter für zusätzliche Messungen wie das automatische Erfassen von Datei-Downloads oder Formular-Abschicken.

Der Tracking-Schnipsel bindet eine Next.js-Website an ihre eigene Site an

Seit Oktober 2025 zeigt Plausible beim Anlegen einer Website keinen austauschbaren Schnipsel mit einer gemeinsamen Datei script.js und einem zusätzlichen Attribut data-domain mehr, sondern ein für genau diese eine Site erzeugtes Script unter einem eindeutigen Pfad wie /js/pa-6_srOGVV9SLMWJ1ZpUAbG.js. Die Zugehörigkeit zur richtigen Site steckt damit im Dateinamen des Scripts selbst, nicht mehr in einem zusätzlichen HTML-Attribut. Bei einer selbstgehosteten Instanz zeigt die src-Angabe auf die eigene Domain der Plausible-Instanz statt auf plausible.io. In einer Next.js-Anwendung mit App Router gehört dieses Script in das Root-Layout, damit es auf jeder Seite lädt.

import Script from "next/script";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="de">
      <body>
        <Script
          defer
          src="https://analytics.beispiel-shop.de/js/pa-6_srOGVV9SLMWJ1ZpUAbG.js"
          strategy="afterInteractive"
        />
        {children}
      </body>
    </html>
  );
}

Für zusätzliche Optionen wie das manuelle Auslösen von Seitenaufrufen in einer Single-Page-Anwendung folgt ein zweiter, kleiner Script-Block mit dem Aufruf plausible.init({ autoCapturePageviews: false }), der dieselbe Aufgabe früher über zusätzliche data-*-Attribute am Script-Tag gelöst hat. Ältere Selbsthosting-Anleitungen und Tutorials zeigen deshalb noch die frühere Variante mit gemeinsamer Datei und Domain-Attribut, die Plausibles eigene Dokumentation inzwischen als ältere Schnipsel-Form bezeichnet:

<script defer data-domain="beispiel-shop.de" src="https://analytics.beispiel-shop.de/js/script.js"></script>

Diese ältere Variante funktioniert technisch weiter und wird für neue Websites nur nicht mehr automatisch ausgegeben.

Häufige Fehlerquellen

  • Ein Viertel der Besuche fehlt, ohne dass irgendwo ein Fehler auftaucht. Manche Ad-Blocker und Netzwerkfilter wie Pi-hole blockieren jedes Script, das von einer fremden Analytics-Domain lädt, unabhängig davon, wie datensparsam es tatsächlich arbeitet. Laut Plausibles eigener Dokumentation gehen dadurch ohne Gegenmaßnahme typischerweise 5 bis 25 Prozent der Besuche verloren. Fix: das Script über einen Reverse-Proxy ausliefern, einen Server, der Anfragen im Namen der eigenen Domain an einen anderen Dienst weiterleitet, zum Beispiel über eine Vercel-Rewrite-Regel oder einen Nginx-Proxy, sodass das Script wie eine hauseigene Datei aussieht.
  • Ereignisse kommen beim selbst eingerichteten Proxy nicht im Dashboard an, obwohl der Server mit HTTP 202 antwortet. Fehlt beim Proxy der Header X-Forwarded-For mit der echten Besucher-IP oder enthält er stattdessen die IP des eigenen Servers, verwirft Plausibles Bot-Filter das Ereignis lautlos, während die Antwort trotzdem HTTP 202 Accepted bleibt. Fix: den Header X-Forwarded-For korrekt weiterreichen und die tatsächlich erkannte IP-Adresse mit dem Debug-Header X-Debug-Request prüfen.
  • Eine Consent-Management-Plattform blockiert das Script, obwohl Plausible keine Cookies setzt. Manche Cookie-Banner-Lösungen laden jedes als Analytics eingestufte Script pauschal erst nach einer Einwilligung, unabhängig davon, ob es tatsächlich ein Cookie setzt. Fix: das Plausible-Script in der jeweiligen Consent-Plattform als notwendig oder cookiefrei einstufen, damit es unabhängig von einer Einwilligung lädt.
  • Der eigene Proxy liefert nach einem Plausible-Update eine veraltete Script-Version aus. Wird das Script über einen selbst betriebenen Proxy zwischengespeichert, bleibt nach einem Versions-Update der Plausible-Instanz oft die alte Datei im Cache liegen. Das eingebaute Prüfwerkzeug für die Installation kann die Integration dann nicht mehr bestätigen, auch wenn einzelne Ereignisse noch ankommen. Fix: den Cache des Proxys nach jedem Plausible-Update leeren oder eine kurze Gültigkeitsdauer für die Script-Datei setzen.
  • Mehrere Länderdomains lassen sich mit dem aktuellen Tracking-Schnipsel nicht mehr in einem gemeinsamen Dashboard zusammenführen. Bis Oktober 2025 ließen sich mehrere Domains wie beispiel.de und beispiel.nl über denselben, gemeinsamen Schnipsel in eine einzige Statistik einspeisen. Das seither ausgegebene, pro Site eindeutige Script unterstützt das laut Plausibles eigenem Migrationsleitfaden nicht mehr. Fix: für diesen Fall die ältere, mit dem Attribut data-domain arbeitende Schnipsel-Form einsetzen oder jede Domain als eigene Site mit eigenem Dashboard führen.

Häufig gestellte Fragen

Wie zählt Plausible Besucher, ohne Cookies zu setzen?

Plausible zählt Besucher über einen täglich rotierenden Hash aus IP-Adresse, Browserkennung und der aufgerufenen Domain, der ausschließlich im Arbeitsspeicher des Servers berechnet wird. Dieser Hash ersetzt eine dauerhafte Kennung: Er ändert sich jeden Tag durch einen neuen Zufallswert, ein sogenanntes Salt, sodass sich derselbe Besucher an zwei aufeinanderfolgenden Tagen nicht wiedererkennen lässt. Weder die IP-Adresse noch der vollständige User-Agent werden dabei gespeichert, laut Plausibles eigener Datenschutz-Dokumentation. Genau deshalb braucht die Zählung kein Cookie und keine andere dauerhafte Kennung auf dem Endgerät des Besuchers.

Eine mit Plausible erfasste Website braucht nach Plausibles eigener Rechtseinschätzung für die Analytics-Funktion keinen Cookie-Consent-Banner, weil das Script keine Cookies setzt und nichts auf dem Endgerät des Besuchers speichert oder ausliest. Diese Einschätzung stützt sich auf Artikel 5 Absatz 3 der ePrivacy-Richtlinie, der eine Einwilligung nur beim Speichern oder Auslesen von Informationen auf dem Endgerät verlangt. Eine im Auftrag von Plausible erstellte Rechtsanalyse eines auf Datenschutz spezialisierten Anwalts kommt zu diesem Schluss und verweist zusätzlich auf eine Leitlinie der französischen Aufsichtsbehörde CNIL. Eine förmliche Bestätigung einer deutschen oder europäischen Aufsichtsbehörde für diese Einschätzung gibt es bislang nicht, weshalb Organisationen mit hohem Haftungsrisiko die Einschätzung vor dem Einsatz selbst prüfen sollten.

Wie lassen sich mehrere Websites einem einzigen Plausible-Team zuordnen?

Mehrere Websites lassen sich einem einzigen Plausible-Team zuordnen, indem jede Website als eigener Site-Eintrag im selben Team angelegt wird. Teammitglieder erhalten dabei eine von fünf Rollen mit Zugriff auf alle Sites des Teams: Owner, Admin, Editor, Billing oder Viewer. Für externe Personen, die nur eine einzelne Website sehen sollen, bietet Plausible zusätzlich Gastrollen direkt in den Einstellungen dieser einen Website, ohne diese Personen dem ganzen Team hinzuzufügen. Ein Nutzerkonto kann außerdem Mitglied mehrerer Teams gleichzeitig sein und zwischen ihnen wechseln.

Warum zeigt Plausible weniger Besucher an als Google Analytics?

Plausible zeigt oft weniger Besucher an als Google Analytics, weil beide Werkzeuge unterschiedlich zählen und unterschiedlich stark filtern. Google Analytics nutzt Cookies und Sitzungen, um Nutzerpfade über mehrere Besuche hinweg zusammenzusetzen, und filtert Bots nach eigenen Regeln. Plausible zählt Besucher über IP-Adresse und Browserkennung ohne Cookies und filtert bekannte Bots und Crawler nach eigener Angabe strenger heraus. Ein Unterschied von 10 bis 20 Prozent zwischen beiden Werkzeugen gilt laut Plausibles eigener Dokumentation als normal, zusätzliche Lücken entstehen häufig durch Ad-Blocker, die das Script ganz verhindern.

Quellen

  1. Plausible Data Policy (cookielose Besucherzählung ohne IP-Speicherung), Plausible, abgerufen am 2026-08-26
  2. Docker Compose-Konfiguration für Plausible Community Edition v3.2.1, Plausible (GitHub), abgerufen am 2026-08-26
  3. Update your Plausible script (Umstieg auf das site-eigene Tracking-Script, Oktober 2025), Plausible, abgerufen am 2026-08-26
  4. Change your domain name (Referenz zur älteren data-domain-Schnipsel-Form), Plausible, abgerufen am 2026-08-26
  5. Bypass adblockers with a proxy, Plausible, abgerufen am 2026-08-26
  6. Invite team members or external guests and assign roles, Plausible, abgerufen am 2026-08-26
  7. Security and compliance overview, Plausible, abgerufen am 2026-08-26
  8. GDPR-compliant web analytics without consent (Rechtsgutachten zu Plausible und der ePrivacy-Richtlinie), Plausible Analytics, abgerufen am 2026-08-26

Der Content wurde mit Hilfe von KI erstellt, vor allem in der Recherche und Vorformulierung. Prüfung und Abnahme durch unsere Redaktion.