Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung WordPress 30.09.2026 · 10 min Lesezeit

Auftragsverarbeitung bei WordPress: Hoster, Plugins und externe Dienste prüfen

Welche Dienste erhalten über Ihre WordPress-Website personenbezogene Daten? So erfassen Sie ausgehende Verbindungen technisch, ordnen Hoster, Plugins und Einbettungen ein und prüfen die Verträge nach Art. 28 DSGVO.

Mit KI erstellt – redaktionelle Prüfung ausstehend

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Mehr dazu

Grafik mit der Überschrift Auftragsverarbeitung prüfen und einem stilisierten WordPress-Adminbereich mit Liste externer Dienste

Eine WordPress-Website verarbeitet personenbezogene Daten selten allein. Der Hoster speichert Server-Logs und die Datenbank, ein Backup-Plugin schiebt Kopien in eine Cloud, ein Spamfilter prüft Kommentare auf fremden Servern, und eingebettete Videos laden Inhalte von Dritten. Für jeden dieser Dienste müssen Sie klären, in welcher Rolle er Daten erhält und ob Sie dafür einen Vertrag zur Auftragsverarbeitung nach Art. 28 DSGVO brauchen. Diese Anleitung zeigt ein technisches Vorgehen: Sie ermitteln im ersten Schritt, welche Dienste Ihre Website tatsächlich anspricht, und ordnen jeden Dienst dann mit einer festen Prüfliste ein. Die Bestandsaufnahme wurde im Labor mit einer frischen WordPress-Installation durchgeführt. Sie ersetzt keine Rechtsberatung, liefert aber die Fakten, die Ihr Datenschutzbeauftragter oder Anwalt braucht.

Voraussetzungen

  • WordPress: getestet mit WordPress 7.1.2, das Vorgehen gilt für alle aktuellen Versionen.
  • PHP: mindestens 7.4.
  • Zugriff: Backend-Konto mit der Rolle Administrator, für Schritt 2 zusätzlich FTP oder SSH, um eine Datei in wp-content/mu-plugins abzulegen.
  • Verträge und Kundenkonten: Zugang zu den Kundenbereichen von Hoster, E-Mail-Anbieter und Cloud-Speicher, dort liegen die Verträge zur Auftragsverarbeitung meist zum Download.
  • Backup: eine aktuelle Sicherung, bevor Sie Plugins oder Einstellungen ändern.
  • Zuständigkeit: Klären Sie, wer im Unternehmen für den Datenschutz zuständig ist. Rechtliche Bewertungen im Einzelfall gehören zu dieser Person oder zu einem Anwalt.

Schritt 1: Rollen verstehen

Die DSGVO unterscheidet drei Rollen, die für eine Website wichtig sind. Welche Rolle ein Dienst hat, entscheidet darüber, welcher Vertrag nötig ist.

RolleRechtsgrundlageTypische Beispiele bei WordPressWas Sie brauchen
AuftragsverarbeiterArt. 4 Nr. 8, Art. 28 DSGVOWebhoster, externer Backup-Speicher, SMTP-Dienst für den Mailversand, Wartungsdienstleister mit Zugang zum BackendVertrag zur Auftragsverarbeitung
Gemeinsam VerantwortlicheArt. 26 DSGVOFälle, in denen Sie und ein Anbieter gemeinsam über Zwecke und Mittel entscheidenVereinbarung nach Art. 26
Eigenständig VerantwortlicheArt. 4 Nr. 7 DSGVODienste, die Daten für eigene Zwecke nutzenRechtsgrundlage für die Weitergabe, Information in der Datenschutzerklärung

Art. 4 Nr. 8 DSGVO beschreibt einen Auftragsverarbeiter als Stelle, die personenbezogene Daten im Auftrag des Verantwortlichen verarbeitet. Der Hoster, auf dessen Server Ihre Datenbank mit Kommentaren, Bestellungen und Benutzerkonten liegt, ist das typische Beispiel. Bei eingebetteten Inhalten von Plattformen wie YouTube ist die Einordnung schwieriger. Solche Fälle sollten Sie nicht selbst entscheiden, sondern mit Ihrem Datenschutzbeauftragten klären.

Verifizieren: Sie können für Ihren Hoster begründen, warum er Auftragsverarbeiter ist, und haben eine Ansprechperson für unklare Fälle.

Schritt 2: Externe Verbindungen der Website erfassen

Die Liste der Plugins verrät nicht, welche davon Daten nach außen senden. WordPress bietet aber einen Haken, über den jede Anfrage der eigenen HTTP-Schnittstelle läuft: http_api_debug. Ein kleines Must-Use-Plugin protokolliert damit Methode, Zielhost und Statuscode jeder ausgehenden Anfrage. Legen Sie die Datei wp-content/mu-plugins/http-log.php an:

<?php
/* Protokolliert ausgehende HTTP-Anfragen von WordPress (nur zur Analyse) */
add_action( 'http_api_debug', function ( $response, $context, $class, $args, $url ) {
    $code = is_wp_error( $response ) ? $response->get_error_code() : wp_remote_retrieve_response_code( $response );
    error_log( sprintf( '[http-log] %s %s %s', $args['method'] ?? 'GET', wp_parse_url( $url, PHP_URL_HOST ), $code ) );
}, 10, 5 );

Die Einträge landen im PHP-Fehlerprotokoll bzw. bei aktivem WP_DEBUG_LOG in wp-content/debug.log, siehe WordPress Debug-Modus aktivieren und Error-Logs analysieren. Das Protokoll enthält nur Hostnamen, keine Inhalte. Lassen Sie es einige Tage laufen, damit auch zeitgesteuerte Aufgaben wie Backups und Update-Prüfungen erfasst werden. Die Auswertung per SSH:

grep http-log wp-content/debug.log | cut -c 26- | sort | uniq -c

Im Labor mit Akismet, einem eingebetteten YouTube-Video und einem Kommentar ergab sich:

      4 ] [http-log] GET api.wordpress.org 200
      2 ] [http-log] GET www.youtube.com 200
      2 ] [http-log] HEAD www.youtube.com 200
      1 ] [http-log] POST 127.0.0.1
      6 ] [http-log] POST api.wordpress.org 200
      1 ] [http-log] POST rpc.pingomatic.com 200

Auffällig: Die Update-Prüfung spricht api.wordpress.org an, beim Einbetten des Videos holt WordPress serverseitig Daten von www.youtube.com, und beim Veröffentlichen eines Beitrags meldet WordPress ihn an den Update-Dienst rpc.pingomatic.com. Der Eintrag 127.0.0.1 ist der interne Aufruf von WP-Cron. Entfernen Sie die Datei nach der Analyse wieder.

Verifizieren: Sie haben eine Liste aller Zielhosts mit Häufigkeit, und das Protokoll-Plugin ist wieder gelöscht.

Schritt 3: Verbindungen im Browser erfassen

Schritt 2 zeigt nur, was der Server sendet. Viel häufiger lädt der Browser des Besuchers Inhalte direkt von Dritten, und dabei erhält der Dritte die IP-Adresse des Besuchers. Öffnen Sie die wichtigsten Seitentypen (Startseite, Beitrag mit Kommentaren, Kontaktseite, Seite mit Video) in einem privaten Browserfenster, drücken Sie F12 und prüfen Sie im Reiter „Netzwerk“ die Spalte „Domain“. Per Kommandozeile finden Sie fremde Adressen im Quelltext:

curl -s https://www.example.de/ https://www.example.de/beispielbeitrag/ \
  | grep -oE '(src|href|srcset)="https?://[^/"]+' | sort | uniq -c

Im Labor fanden sich neben der eigenen Adresse www.youtube.com (das eingebettete Video als iframe) und secure.gravatar.com (Profilbilder neben Kommentaren). Der Link auf gravatar.com im Kommentarformular ist dagegen nur ein Verweis und lädt nichts. Das Theme Twenty Twenty-Five lud im Test keine externen Schriften. Andere Themes und Seitenbaukästen binden häufig Schriften, Skripte oder Karten von fremden Servern ein.

Verifizieren: Ihre Liste enthält für jeden Seitentyp alle fremden Domains, die der Browser lädt.

Schritt 4: Jeden Dienst einordnen

Führen Sie die Ergebnisse aus den Schritten 2 und 3 mit den Diensten zusammen, die gar nicht im Protokoll auftauchen, weil sie außerhalb von WordPress laufen: Hoster, E-Mail-Postfächer, DNS, Wartungsdienstleister. Beantworten Sie für jeden Eintrag dieselben Fragen:

  1. Welche personenbezogenen Daten erhält der Dienst (IP-Adresse, Kommentare, Bestellungen, Kontaktanfragen, komplette Datenbank im Backup)?
  2. Verarbeitet er sie nur nach Ihrer Weisung oder auch für eigene Zwecke?
  3. Wo sitzt der Anbieter, und wo stehen die Server?
  4. Brauchen Sie den Dienst wirklich?

Die vierte Frage spart oft die meiste Arbeit. Die folgende Tabelle zeigt die Einträge aus dem Labor und was Sie dort selbst in der Hand haben:

DienstDatenEinstellung in WordPress
api.wordpress.orgServer-IP, Adresse der Website, Versionen von WordPress, PHP, Plugins und Themesfür Sicherheitsupdates nötig
rpc.pingomatic.comAdresse der Website bei jedem neuen Beitrag„Einstellungen > Schreiben > Update-Dienste“, Feld leeren
secure.gravatar.comIP-Adresse der Besucher, Hash der E-Mail-Adresse der Kommentierenden„Einstellungen > Diskussion > Avataranzeige“, „Avatare anzeigen“ abwählen
Akismetlaut Datenschutzhinweis des Plugins typischerweise IP-Adresse, User-Agent, Referrer, Name, E-Mail und KommentartextPlugin nur mit geklärter Grundlage nutzen oder durch lokale Lösung ersetzen
www.youtube.comIP-Adresse der Besucher beim Laden des VideosZwei-Klick-Lösung oder Vorschaubild mit Einwilligung

Im Labor verschwand das Gravatar-Bild nach dem Abwählen von „Avatare anzeigen“ aus dem Quelltext, und nach dem Leeren der Update-Dienste gab es keine weitere Meldung an rpc.pingomatic.com. Die Angaben zu Akismet stammen aus dem Text, den das Plugin selbst unter „Einstellungen > Datenschutz > Richtlinien-Leitfaden“ für die Datenschutzerklärung vorschlägt. Dort finden Sie auch die Hinweise anderer Plugins, die diese Funktion nutzen. Lokale Alternativen zum Spamschutz beschreibt die Anleitung Spam in Kommentaren und Formularen abwehren.

Verifizieren: Jeder Dienst in Ihrer Liste hat eine Rolle, eine Angabe zu den Daten und eine Entscheidung: behalten, abschalten oder ersetzen.

Schritt 5: Verträge zur Auftragsverarbeitung prüfen

Für jeden Auftragsverarbeiter brauchen Sie einen Vertrag. Art. 28 Abs. 3 DSGVO legt fest, was er enthalten muss: Gegenstand und Dauer, Art und Zweck der Verarbeitung, Art der Daten, Kategorien betroffener Personen sowie Pflichten und Rechte des Verantwortlichen. Nach Art. 28 Abs. 9 muss er schriftlich abgefasst sein, was auch elektronisch möglich ist. Die meisten Hoster und Cloud-Anbieter stellen einen Standardvertrag im Kundenbereich zum Abschluss per Klick bereit.

Prüfen Sie bei jedem Vertrag mindestens diese Punkte:

  • Vertragspartner und Leistung: Stimmen Firma und gebuchter Tarif mit Ihrem Konto überein?
  • Weisungsbindung: Verarbeitet der Anbieter die Daten nur auf Ihre dokumentierte Weisung (Art. 28 Abs. 3 Buchst. a)?
  • Technische und organisatorische Maßnahmen: Liegt eine Beschreibung bei? Wie Sie diese Maßnahmen bewerten und dokumentieren, zeigt die Anleitung DSGVO-Praxis: TOMs dokumentieren und Auftragsverarbeitung regeln.
  • Unterauftragsverarbeiter: Nach Art. 28 Abs. 2 darf der Anbieter weitere Dienstleister nur mit Ihrer Genehmigung einsetzen und muss Sie bei allgemeiner Genehmigung über Änderungen informieren. Speichern Sie die aktuelle Liste.
  • Serverstandort und Drittländer: Werden Daten außerhalb der EU oder des EWR verarbeitet, brauchen Sie eine Grundlage nach Art. 44 ff. DSGVO, etwa einen Angemessenheitsbeschluss der EU-Kommission nach Art. 45.
  • Ende des Vertrags: Werden die Daten nach Vertragsende gelöscht oder zurückgegeben?

Denken Sie an Dienste mit vollem Zugriff: Ein externer Backup-Speicher enthält die komplette Datenbank, siehe Backup-Speicher für WordPress einrichten. Auch eine Agentur oder ein Freelancer mit Administratorzugang kann Auftragsverarbeiter sein.

Verifizieren: Für jeden Auftragsverarbeiter liegt ein abgeschlossener Vertrag mit Datum als PDF in Ihrer Dokumentation, samt Liste der Unterauftragsverarbeiter.

Schritt 6: Ergebnis dokumentieren und aktuell halten

Halten Sie die Liste aus Schritt 4 als Tabelle mit Dienst, Rolle, Daten, Vertragsstand, Serverstandort und Datum der letzten Prüfung fest. Sie ist die Grundlage für Ihr Verzeichnis von Verarbeitungstätigkeiten nach Art. 30 DSGVO und für die Datenschutzerklärung. Die Datenschutzerklärung muss zur Liste passen: Jeder Dienst, der Daten erhält, gehört hinein, und jeder abgeschaltete Dienst heraus.

Die Liste veraltet mit jedem neuen Plugin und jedem Update. Ein Plugin, das nach einem Update zusätzlich einen externen Dienst anspricht, fällt nur auf, wenn jemand nachsieht. Wiederholen Sie die Schritte 2 und 3 deshalb nach dem Installieren neuer Plugins und mindestens einmal im Jahr. Wer die technische Pflege der Website nicht selbst im Kalender halten möchte, kann sie abgeben: Die WordPress-Wartung von wordpressupdate.de übernimmt Updates von WordPress, Plugins und Themes mit Kompatibilitätsprüfung und wöchentliche Backups auf externen Speicher. Auch ein solcher Wartungsdienst gehört mit Vertrag zur Auftragsverarbeitung auf Ihre Liste.

Verifizieren: Die Tabelle ist vollständig, datiert und stimmt mit der Datenschutzerklärung überein.

Typische Fehler

  • Nur den Hoster betrachtet: Backup-Speicher, SMTP-Dienst, Formular- und Newsletter-Plugins verarbeiten oft mehr Daten als der Webserver selbst. Nehmen Sie alle Dienste aus den Schritten 2 bis 4 auf.
  • Browser-Verbindungen übersehen: Das Server-Protokoll zeigt keine Gravatar-Bilder, Schriften oder Videos, die der Browser lädt. Prüfen Sie beide Wege.
  • Vertrag nicht abgeschlossen, nur verlinkt: Ein Muster auf der Website des Anbieters ist noch kein Vertrag. Viele Anbieter verlangen einen Abschluss im Kundenbereich. Speichern Sie die Bestätigung.
  • Protokoll zu kurz: Backups, Update-Prüfungen und Lizenzabfragen laufen zeitgesteuert. Ein Protokoll über wenige Minuten erfasst sie nicht.
  • Protokoll-Plugin vergessen: http-log.php schreibt bei jeder Anfrage ins Log. Entfernen Sie es nach der Analyse.
  • Datenschutzerklärung nicht angepasst: Nach dem Abschalten oder Hinzufügen eines Dienstes stimmt die Erklärung nicht mehr. Passen Sie sie im selben Arbeitsgang an.

Häufige Fragen

Brauche ich mit meinem Webhoster einen Vertrag zur Auftragsverarbeitung?

Ja, sobald auf dem Server personenbezogene Daten liegen, etwa Benutzerkonten, Kommentare, Bestellungen oder Server-Logs mit IP-Adressen. Das ist bei praktisch jeder Unternehmenswebsite der Fall.

Gilt das auch für kostenlose Plugins?

Das Plugin selbst ist Software auf Ihrem Server. Entscheidend ist, ob es Daten an einen externen Dienst sendet. Ein Formular-Plugin, das nur in Ihre Datenbank schreibt, braucht keinen eigenen Vertrag. Ein Plugin, das Daten an die Server des Herstellers übermittelt, muss eingeordnet werden, unabhängig vom Preis.

Ist WordPress.org selbst ein Auftragsverarbeiter?

Laut Quellcode (wp-includes/update.php) sendet die Update-Prüfung Versionsangaben und die Adresse der Website an api.wordpress.org, aber keine Daten von Besuchern. Wie das rechtlich zu bewerten ist, klären Sie mit Ihrem Datenschutzbeauftragten. Abschalten sollten Sie die Update-Prüfung nicht, denn sie ist die Grundlage für Sicherheitsupdates.

Testumfang

Wir haben das Vorgehen auf einer Testseite mit WordPress 7.1.2, einem eingebetteten YouTube-Video und einem Kommentar ausprobiert. Dabei haben wir die ausgehenden Anfragen mit http_api_debug mitgeschnitten und das Abschalten von Avataren und Update-Diensten geprüft.

Seitenbaukästen sowie Formular- und Newsletter-Plugins haben wir nicht getestet. Wenn Sie solche Erweiterungen nutzen, probieren Sie die Schritte am besten zuerst auf einer Kopie Ihrer Seite aus.

Fazit

Auftragsverarbeitung bei WordPress beginnt mit einer ehrlichen Bestandsaufnahme: Server-Protokoll und Quelltext zeigen, welche Dienste wirklich Daten erhalten. Danach ordnen Sie jeden Dienst ein, schalten Unnötiges ab und schließen für die übrigen Auftragsverarbeiter Verträge nach Art. 28 DSGVO. Wer die laufende technische Pflege der Website abgeben möchte, findet sie bei der WordPress-Wartung von Marcel Schönfelder.

Weiterführende Anleitungen und Quellen

WordPressDSGVODatenschutzAuftragsverarbeitungPlugins