Clear-Site-Data für WordPress

Clear-Site-Data über den wp_logout Action Hook einrichten — mit functions.php-Snippet, eigenem Logout-Endpoint und .htaccess-Fallback.

WordPress · Schritt für Schritt

Clear-Site-Data in WordPress

WordPress bietet mit dem wp_logout Action Hook den idealen Ansatzpunkt für Clear-Site-Data. Der Header wird automatisch bei jedem Logout gesetzt — egal ob über die Standard-Logout-URL, ein Menü-Link oder ein Plugin. Die Implementierung erfordert nur wenige Zeilen PHP in der functions.php Ihres Child-Themes.

Clear-Site-Data bringt 3 von 166 Punkten im Wolf-Agents Web Security Check. Für WordPress-Seiten mit Login-Bereich (WooCommerce, Mitglieder, Admin) ist der Header besonders relevant — er verhindert, dass nach dem Logout Benutzerdaten im Browser zurückbleiben.

1 Schritt 1 von 3

wp_logout Action Hook einrichten

Fügen Sie den folgenden Code in die functions.php Ihres Child-Themes ein. Die Priorität 1 stellt sicher, dass der Header vor dem Redirect gesetzt wird.

functions.php (Child-Theme) Logout
// Clear-Site-Data beim WordPress-Logout setzen
function handle_secure_logout() {
    // Prüfen ob Logout-Aktion
    if (isset($_GET['action']) && $_GET['action'] === 'logout') {
        // Clear-Site-Data Header setzen
        header('Clear-Site-Data: "cache", "cookies", "storage"');
    }
}
add_action('wp_logout', 'handle_secure_logout', 1);
Child-Theme verwenden

Änderungen in der functions.php des Parent-Themes gehen bei Updates verloren. Nutzen Sie immer ein Child-Theme oder lagern Sie den Code in ein eigenes Mini-Plugin aus.

2 Schritt 2 von 3 · Optional

Eigenen Logout-Endpoint erstellen

Für Frontend-Anwendungen oder eine sauberere URL können Sie einen eigenen /secure-logout Endpoint erstellen. Dieser führt den WordPress-Logout durch, setzt den Header und leitet zur Startseite weiter.

functions.php (Child-Theme) Optional
// Eigener Logout-Endpoint mit Clear-Site-Data
function custom_logout_endpoint() {
    if ($_SERVER['REQUEST_URI'] === '/secure-logout') {
        // WordPress Logout ausführen
        wp_logout();

        // Header setzen
        header('Clear-Site-Data: "cache", "cookies", "storage"');
        header('Cache-Control: no-store');

        // Redirect zur Startseite
        wp_safe_redirect(home_url('/'));
        exit;
    }
}
add_action('init', 'custom_logout_endpoint');
3 Schritt 3 von 3

Header testen

Loggen Sie sich in WordPress ein und führen Sie einen Logout durch. Prüfen Sie in den Browser DevTools (Network-Tab), ob der Clear-Site-Data Header in der Logout-Response enthalten ist.

Manueller Test:
1. WordPress-Dashboard → Nutzer → Abmelden
2. DevTools (F12) → Network → Logout-Request auswählen
3. Response Headers: Clear-Site-Data prüfen
Prüfen Sie auch den localStorage: Setzen Sie vor dem Logout einen Testwert mit localStorage.setItem('test', '1'), loggen Sie sich aus und prüfen Sie mit localStorage.getItem('test') — der Wert sollte null sein.

Wie steht Ihre Domain bei Clear-Site-Data?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Wo genau setze ich Clear-Site-Data in WordPress?

In der functions.php Ihres Child-Themes. Nutzen Sie den wp_logout Action Hook mit Priorität 1, damit der Header vor dem Redirect gesetzt wird. Alternativ können Sie den Code in ein eigenes Plugin auslagern, um Theme-Updates nicht zu beeinträchtigen.

Funktioniert Clear-Site-Data mit dem Standard-WordPress-Logout?

Ja. Der wp_logout Hook wird bei jedem WordPress-Logout ausgelöst — egal ob über wp-login.php?action=logout, einen Menü-Link oder ein Plugin. Der Header wird automatisch in die Logout-Response eingefügt, bevor WordPress den Redirect zur Login-Seite durchführt.

Brauche ich ein Plugin für Clear-Site-Data in WordPress?

Nein. Die Implementierung ist eine einzige PHP-Funktion mit 5 Zeilen Code, die Sie in der functions.php Ihres Child-Themes hinzufügen. Ein eigenes Plugin bietet nur dann Vorteile, wenn Sie den Code unabhängig vom Theme verwalten möchten.

Kann ich Clear-Site-Data auch per .htaccess in WordPress setzen?

Eingeschränkt. Per .htaccess können Sie den Header mit einer If-Bedingung auf die Logout-Query-Parameter setzen. Die PHP-Lösung über den wp_logout Hook ist aber zuverlässiger, da sie direkt in den WordPress-Logout-Prozess integriert ist.

Stört Clear-Site-Data WooCommerce oder andere WordPress-Plugins?

Nein — solange der Header ausschließlich auf dem Logout-Endpoint gesetzt wird. Clear-Site-Data löscht nur beim Logout alle Browser-Daten. WooCommerce-Sessions und Plugin-Daten sind davon nicht betroffen, da sie nur bei einem expliziten Logout gelöscht werden.