Plugin-Dokumentation

DeleteVisitsFilter

Wählen Sie Websites, Zeitraum und ein Matomo-Segment, prüfen Sie die Treffer und löschen Sie sie, auch Millionen Besuche auf einmal.

Zur Plugin-Seite ZIP herunterladen

Überblick

Entfernen Sie Bot-Traffic, Referrer-Spam und Testdaten aus Matomo: Websites, Zeitraum und Segment wählen, Treffer prüfen und dann endgültig löschen.


Das Problem

Bots, die wie echte Besucher aussehen, Referrer-Spam oder Testzugriffe, die durchgerutscht sind: Sind solche Besuche einmal in Matomo, verfälschen sie Besuche, Absprungrate und Konversionsraten in jedem Bericht. Das DSGVO-Werkzeug von Matomo kann Daten löschen, ist aber für einzelne Personen gedacht, nicht für Tausende Besuche über mehrere Websites und Monate.

Die Lösung

DeleteVisitsFilter löscht alle Besuche, die zu einem Matomo-Segment passen, auf einer, mehreren oder allen Websites und in beliebigen Zeiträumen. Sie sehen vorher, was gelöscht wird, und große Löschungen laufen im Hintergrund weiter, bis sie fertig sind.


Funktionen

Genau festlegen, was weg soll

  • Websites: eine Website, mehrere (auch alle, deren Name einen Text enthält) oder alle Websites
  • Zeitraum: Vorgaben wie Letzte 30 Tage oder Letztes Jahr oder ein beliebiger Zeitraum aus dem Kalender, gezählt in der Zeitzone jeder Website
  • Segment: ein gespeichertes Segment, der Segment-Editor von Matomo oder freier Text mit Syntax-Hinweis und Zeichenzähler
  • Jedes Matomo-Segment funktioniert, zum Beispiel IP-Bereiche, Herkunft, Browser oder Seiten-URLs

Erst prüfen, dann löschen

  • Treffer prüfen zeigt die passenden Besuche pro Website und insgesamt
  • Eine Stichprobe passender Besuche mit Zeit, IP, Browser, Einstiegsseite und Herkunft, jeweils mit Link zum Besucherprofil
  • Ein Link ins Besucher-Log jeder Website, gefiltert nach Segment und Zeitraum
  • Eine Bestätigung mit Websites, Zeitraum und Segment; ab 10.000 Besuchen tippen Sie die Anzahl ein

Gemacht für große Aufräumaktionen

  • Löschungen laufen als Aufträge in kleinen Schritten, so laufen auch Millionen Besuche nicht in Zeitüberschreitungen
  • Der Fortschritt zeigt gelöschte Besuche, die aktuelle Website, das Tempo und die geschätzte Restzeit
  • Seite neu laden oder schließen: Die Löschung läuft im Hintergrund weiter
  • Jederzeit abbrechen; bereits gelöschte Besuche bleiben gelöscht
  • Sehr große Löschungen laufen ohne Zeitlimit auf der Konsole

Saubere Daten, stimmige Berichte

  • Besuche werden mit allen Daten aus den Rohdatentabellen von Matomo entfernt, auch aus denen anderer Plugins, mit derselben Routine wie das DSGVO-Werkzeug
  • Die betroffenen Tage werden zur Neuverarbeitung markiert, auch für Roll-ups, damit die nächste Archivierung die Berichte neu berechnet

Protokoll

  • Jede Löschung mit Datum, Person, Websites, Segment, Status, gelöschten Besuchen und Dauer
  • Filter nach Status und danach, wo eine Löschung gestartet wurde: Verwaltungsseite, Konsole oder API
  • Details mit den gelöschten Zeilen pro Tabelle
  • Als Vorlage übernehmen füllt das Formular mit einer früheren Löschung, Erneut versuchen setzt eine fehlgeschlagene fort

Konsole und API

./console feinwerkdeletevisitsfilter:delete 1,3 "visitIp>=192.0.2.0;visitIp<=192.0.2.255" 2026-01-01 2026-09-30 --dry-run
./console feinwerkdeletevisitsfilter:work
  • Zählen, löschen, auflisten und abbrechen auf der Kommandozeile oder über die HTTP-API

Passt zu Matomo

  • Funktioniert im hellen und im dunklen Modus von Matomo
  • Deutsch und Englisch

Technische Details

Anforderungen

  • Matomo 5.1 oder neuer (5.x)
  • PHP 8.1 oder neuer
  • Zugang als Hauptadministrator

Umstieg von DeleteVisitsFilter

Bis Version 1.x hieß das Plugin DeleteVisitsFilter. Aktivieren Sie FeinwerkDeleteVisitsFilter und deinstallieren Sie danach DeleteVisitsFilter. Übernehmen müssen Sie nichts, und der alte Konsolenbefehl deletevisitsfilter:delete funktioniert weiter.

Einsatzszenarien

  • Erst prüfen, dann löschen: Treffer prüfen zeigt die Besuche pro Website, eine Stichprobe mit Besucherprofilen und einen Link ins Besucher-Log. Gelöscht wird erst nach Ihrer Bestätigung.
  • Gemacht für große Aufräumaktionen: Löschungen laufen als Aufträge in kleinen Schritten. Schließen Sie die Seite, geht es im Hintergrund weiter; sehr große Löschungen laufen ohne Zeitlimit auf der Konsole.
  • Berichte bleiben stimmig: Besuche werden mit allen Daten entfernt, mit derselben Routine wie das DSGVO-Werkzeug von Matomo, und die betroffenen Tage werden automatisch neu verarbeitet.

Einrichtung Schritt für Schritt

Wie Sie das Plugin installieren, steht unter Plugins installieren. Löschen dürfen nur Hauptadministratoren. Gelöschte Besuche lassen sich nicht wiederherstellen, legen Sie deshalb vorher eine Datenbanksicherung an.

  1. Seite öffnen. Öffnen Sie Administration → Diagnose → Besuche löschen. Die Seite hat zwei Reiter: Löschen und Protokoll.
  2. Websites wählen. Eine Website, Mehrere Websites oder Alle Websites. Bei mehreren Websites fügen Sie einzelne über Website hinzufügen hinzu oder alle, deren Name einen Text enthält: Text in Name enthält … eintragen und Alle passenden hinzufügen klicken.
  3. Zeitraum wählen. Vorgaben wie Gestern, Letzte 30 Tage, Letzter Monat, Dieses Jahr oder Gesamter Zeitraum, oder unter Benutzerdefiniert ein Zeitraum aus dem Kalender. Gezählt werden ganze Tage in der Zeitzone der jeweiligen Website.
  4. Segment festlegen. Wählen Sie ein Gespeichertes Segment, bauen Sie das Segment im Segment-Editor zusammen oder schalten Sie auf Als Text und geben die Definition direkt ein. Im Text bedeutet ein Komma ODER und ein Semikolon UND, zum Beispiel visitIp==192.0.2.10,visitIp==192.0.2.11;browserCode!=FF. Ein Segment darf höchstens 8.192 Zeichen lang sein. Bedingungen ohne Wert lehnt die Seite ab, damit eine leere Zeile im Editor nicht versehentlich alle Besuche trifft.
  5. Treffer prüfen. Treffer prüfen zeigt die passenden Besuche pro Website und die Summe, dazu eine Stichprobe mit Zeit, IP, Browser, Einstiegsseite und Herkunft. Besucherprofil öffnet einen Besuch im Detail, Im Besucher-Log ansehen zeigt alle Treffer einer Website im Besucher-Log. Bis hierher wird nichts gelöscht. Ändern Sie eine Angabe, verschwindet das Ergebnis und Sie prüfen neu.
  6. Löschen. … Besuche löschen öffnet eine Bestätigung mit Websites, Zeitraum und Segment. Ab 10.000 Besuchen tippen Sie zur Bestätigung die Anzahl ein, dann Jetzt löschen.
  7. Fortschritt verfolgen. Unter Laufende Löschung sehen Sie, wie viele Besuche schon gelöscht sind und welche Website gerade an der Reihe ist. Sie können die Seite neu laden oder schließen, die Löschung läuft im Hintergrund weiter. Abbrechen hält sie an, bereits gelöschte Besuche bleiben gelöscht.
  8. Protokoll ansehen. Der Reiter Protokoll listet alle Löschungen mit Status, gelöschten Besuchen und Dauer, filterbar nach Status und danach, wo sie gestartet wurden. Details zeigt die gelöschten Zeilen pro Tabelle, Als Vorlage übernehmen füllt das Formular mit einer früheren Löschung, Erneut versuchen setzt eine fehlgeschlagene fort.

Einstellungen

Unter Administration → System → Allgemeine Einstellungen → FeinwerkDeleteVisitsFilter:

  • Hintergrund-Bearbeitungszeit pro Stunde (Sekunden) (Standard 300, erlaubt 0 oder 60 bis 3300): So lange arbeitet die stündliche Hintergrundaufgabe an offenen Löschungen weiter. 0 schaltet sie ab, dann lassen Sie die Seite offen oder nutzen die Konsole.
  • Standard-Batchgröße (Standard 1000, erlaubt 100 bis 10000): Besuche pro Schritt. Für eine einzelne Löschung ändern Sie sie unter Erweitert.

Die Hintergrundaufgabe läuft mit den geplanten Aufgaben von Matomo, also per Cron mit core:archive oder über die browsergesteuerte Archivierung.

Konsole

Im Matomo-Verzeichnis, mit Hauptadministrator-Rechten:

# Nur zählen, nichts löschen
./console feinwerkdeletevisitsfilter:delete 1,3 "visitIp>=192.0.2.0;visitIp<=192.0.2.255" 2026-01-01 2026-09-30 --dry-run

# Löschen (fragt nach, --yes überspringt die Frage)
./console feinwerkdeletevisitsfilter:delete all "referrerUrl=@seo-offers.example.net" 2026-01-01 2026-09-30

# Offene Löschungen ohne Zeitlimit abarbeiten, etwa per Cron
./console feinwerkdeletevisitsfilter:work
./console feinwerkdeletevisitsfilter:work --max-time=3000

# Löschungen auflisten oder eine abbrechen
./console feinwerkdeletevisitsfilter:jobs
./console feinwerkdeletevisitsfilter:jobs --cancel=12

Websites geben Sie als ID, als Liste wie 1,3 oder als all an. Ohne Terminal, also in Cron-Jobs und Skripten, braucht delete die Option --yes.

Praxisbeispiele

Bot-Netz aus einem Rechenzentrum. Hunderte Besuche am Tag aus demselben IP-Bereich, alle mit nur einer Seitenansicht. Mit visitIp>=192.0.2.0;visitIp<=192.0.2.255, Mehrere Websites und Letzte 30 Tage sehen Sie zuerst die Treffer pro Website, prüfen ein paar Besucherprofile und löschen dann alle in einem Durchgang.

Referrer-Spam. Fremde Domains tauchen als Herkunft auf, obwohl dort nie ein Link stand. referrerUrl=@seo-offers.example.net,referrerUrl=@cheap-traffic.example.org;actions==1 trifft alle Besuche von diesen Domains, die nur eine Seite geöffnet haben.

Eigene Zugriffe vor dem Ausschluss. Bevor Sie das Büronetz in Matomo ausgeschlossen haben, wurden Besuche von Mitarbeitenden mitgezählt. Speichern Sie den IP-Bereich als Segment, wählen Sie Alle Websites und den Zeitraum bis zum Ausschluss.

Testdaten aus einer Staging-Umgebung. Ein Testsystem hat mit der echten Website-ID getrackt. pageUrl=@staging.example.com findet diese Besuche. Weil das Segment auf Seitenaufrufen beruht, wird jeweils der ganze Besuch gelöscht.

Zusammen mit TrackingSpamScore. TrackingSpamScore erkennt Spam-Netzwerke und sperrt sie für die Zukunft. Bereits erfasste Besuche löschen Sie hier mit dessen Segmenten, etwa spamAsn==64500 oder spamScore>=90.

Gut zu wissen

  • Endgültig: Gelöschte Besuche sind weg. Deshalb zeigt die Seite immer zuerst die Treffer und fragt nach einer Bestätigung.
  • Ganze Besuche: Gelöscht wird immer der ganze Besuch mit allen Seitenaufrufen, Ereignissen und Konversionen, auch wenn das Segment nur eine Seite betrifft, etwa pageUrl=@/spam.
  • Alle Rohdaten: Das Plugin entfernt die Besuche aus allen Rohdatentabellen von Matomo, auch aus denen anderer Plugins, mit derselben Routine wie das DSGVO-Werkzeug. Die gemeinsame Tabelle der Seiten- und Aktionsnamen bleibt unberührt, ungenutzte Einträge räumt Matomo selbst auf.
  • Berichte: Die Tage mit gelöschten Besuchen werden zur Neuverarbeitung markiert, auch für Roll-up-Websites. Die nächste Archivierung berechnet ihre Berichte ohne die gelöschten Besuche.
  • Eine Löschung nach der anderen: Löschungen laufen nacheinander. Eine neue Löschung zeigt Wartet, bis die vorherige fertig ist. Läuft gerade schon die Konsole oder die Hintergrundaufgabe, sagt Ihnen die Seite das.
  • Abbrechen auf der Konsole: Strg+C beendet nur die Anzeige, die Löschung läuft im Hintergrund weiter. Abbrechen können Sie sie mit feinwerkdeletevisitsfilter:jobs --cancel=<ID> oder auf der Seite.
  • Nachweis: Das Protokoll zeigt, wer welche Löschung gestartet hat. Ist das Plugin Activity Log installiert, steht jede Löschung zusätzlich dort.
  • Umstieg von DeleteVisitsFilter: Bis Version 1.x hieß das Plugin DeleteVisitsFilter. Aktivieren Sie FeinwerkDeleteVisitsFilter und deinstallieren Sie danach DeleteVisitsFilter. Übernehmen müssen Sie nichts, der alte Befehl deletevisitsfilter:delete funktioniert weiter.
  • Fehlersuche: Bleibt eine Löschung auf Wartet, prüfen Sie, ob die geplanten Aufgaben laufen, oder starten Sie feinwerkdeletevisitsfilter:work. Eine Fehlgeschlagene Löschung setzen Sie im Protokoll mit Erneut versuchen fort. Mehr unter Fehlerbehebung.

Technische Referenz

EigenschaftWert
Technischer NameFeinwerkDeleteVisitsFilter
Aktuelle Version2.2.1
Matomo≥ 5.1.0, < 6.0.0
PHP≥ 8.1.0
Lizenzkostenlos
Datenbankänderungenkeine in der aktuellen Version

FAQ

Was ist der Unterschied zum DSGVO-Werkzeug von Matomo?

Das DSGVO-Werkzeug ist für einzelne Personen gedacht: Sie suchen einen Besucher und löschen seine Daten. DeleteVisitsFilter löscht alle Besuche, die zu einem Segment passen, über mehrere Websites und beliebige Zeiträume in einem Durchgang und arbeitet im Hintergrund weiter.

Kann ich eine Löschung rückgängig machen?

Nein. Gelöschte Besuche sind endgültig weg. Deshalb zeigt das Plugin zuerst die Treffer, fragt nach einer Bestätigung und lässt Sie ab 10.000 Besuchen die Anzahl eintippen. Legen Sie vor großen Löschungen eine Datenbanksicherung an.

Was passiert mit meinen Berichten?

Die Tage mit gelöschten Besuchen werden zur Neuverarbeitung markiert, auch für Roll-ups. Die nächste Archivierung berechnet ihre Berichte ohne die gelöschten Besuche neu.

Wer darf Besuche löschen?

Nur Hauptadministratoren. Das Protokoll zeigt, wer welche Löschung gestartet hat, und ist das Plugin Activity Log installiert, steht jede Löschung zusätzlich dort.

Kostet das Plugin etwas?

Nein. DeleteVisitsFilter ist kostenlos und steht unter der GPL.