WordPress Debugging

Fehler loggen statt anzeigen

Der WordPress Debug-Modus ist eine eingebaute Funktion, die PHP-Fehler, Warnungen und Hinweise sichtbar macht. Aktiviert wird er über die Konstante WP_DEBUG in der wp-config.php. Wichtig auf einer Live-Seite: Fehler protokollieren statt anzeigen. Sonst legen Sie Serverpfade und Schwachstellen offen, die ein Angreifer direkt auslesen kann.

Etwas an Ihrer Website funktioniert nicht: Sie ist plötzlich weiß, wirft einen kryptischen Fehler oder ein Formular reagiert nicht mehr. Der Debug-Modus ist das passende Bordmittel, um WordPress-PHP-Fehler zu protokollieren und der Ursache auf die Spur zu kommen. Dabei gibt es einen sicheren und einen gefährlichen Weg, ihn einzuschalten. Ich zeige Ihnen den sicheren. Ein Hinweis vorweg: Legen Sie ein Backup Ihrer wp-config.php an, bevor Sie sie bearbeiten. Alle Schritte erfolgen auf eigenes Risiko.

Zuletzt aktualisiert: 3. Juli 2026 WordPress

Was ist der WordPress Debug-Modus (WP_DEBUG)?

Der WordPress Debug-Modus ist der eingebaute Weg, um während der Entwicklung oder Fehlersuche zu sehen, was im Hintergrund schiefläuft. PHP ist die Programmiersprache, auf der WordPress läuft, und genau ihre Meldungen fängt der Debug-Modus ab. Ist er aktiv, macht WordPress alle PHP-Meldungen sichtbar oder protokollierbar: Fatal Errors, Warnings, Notices und Deprecated-Hinweise auf veraltete Funktionen. Statt zu raten, welches Plugin oder Theme ein Problem verursacht, bekommen Sie den genauen Dateinamen und die Zeilennummer geliefert.

Im Alltag brauchen Sie diese Meldungen nicht, deshalb ist der Debug-Modus im Standard ausgeschaltet: Die Konstante WP_DEBUG steht ab Werk auf false. Erst wenn Sie sie auf true setzen, beginnt WordPress zu berichten. Wer nach dem englischen Begriff sucht, meint dasselbe: den WordPress Debug Mode. Alle offiziellen Details liefert die offizielle WordPress-Debugging-Dokumentation.

WordPress Debug-Modus in drei Zeilen aktivieren (wp-config.php)

Der Standardweg führt über die wp-config.php im Hauptverzeichnis Ihrer Installation. Diese Datei erreichen Sie per FTP oder über den Dateimanager in Ihrem Hosting-Panel. Sie brauchen kein Plugin, drei bis vier Zeilen genügen. So aktivieren Sie den Debug-Modus in WordPress sicher:

// WP_DEBUG-Modus aktivieren
define( 'WP_DEBUG', true );

// Fehler in wp-content/debug.log schreiben
define( 'WP_DEBUG_LOG', true );

// Fehleranzeige auf der Seite deaktivieren
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Jede Zeile beginnt mit define(), der Funktion, mit der WordPress solche Konstanten setzt. Achtung: Nur define('WP_DEBUG', true); allein ist die Falle. Dann landen alle Fehler sichtbar auf Ihrer Seite. Warum das gefährlich ist, sehen Sie gleich.

WordPress Debug-Modus in der wp-config.php sicher aktivieren – vier Zeilen für WP_DEBUG und das Fehler-Logging
Vier Zeilen in der zentralen Konfigurationsdatei entscheiden, ob Fehler still im Log landen oder offen auf der Seite erscheinen.

Die Debug-Konstanten erklärt

WordPress kennt mehrere Debug-Konstanten. Jede steuert einen anderen Teil der Fehlersuche. Die folgende Tabelle zeigt, was sie tun und ob sie auf einer Live-Seite etwas zu suchen haben:

Konstante Default Typ Was sie tut Live-tauglich?
WP_DEBUG false Boolean Schaltet den Debug-Modus ein: PHP-Fehler, Notices, Warnings, Deprecated-Hinweise. Nur temporär, mit Log statt Anzeige
WP_DEBUG_LOG false Boolean oder Pfad-String true schreibt Fehler nach wp-content/debug.log. Ein Pfad-String legt das Log an einen beliebigen Ort. Braucht WP_DEBUG = true. Ja (mit Display = false)
WP_DEBUG_DISPLAY true ⚠️ Boolean Steuert, ob Fehler im HTML auf der Seite ausgegeben werden. Braucht WP_DEBUG = true. Nein, auf Live immer false
SCRIPT_DEBUG false Boolean Lädt unminifizierte Core-CSS/JS für die Entwicklung an Core-Dateien. Nein
SAVEQUERIES false Boolean Speichert Datenbank-Queries samt Laufzeit in $wpdb->queries. Kostet Performance. Nein (nur beim Debuggen)
WP_DISABLE_FATAL_ERROR_HANDLER Handler aktiv (seit WP 5.2) Boolean true schaltet den Fatal-Error-Handler und damit den Recovery-Mode ab. Statt der Seite „Es gab einen kritischen Fehler auf deiner Website" erscheint der echte Fehler (nur für die Entwicklung). Nein

Am wichtigsten ist das Zusammenspiel der beiden Log-Konstanten, also das WordPress Debug Log über WP_DEBUG_LOG und die Anzeige über WP_DEBUG_DISPLAY. WP_DEBUG_LOG schreibt Fehler still in wp-content/debug.log, WP_DEBUG_DISPLAY zeigt sie im Browser. Für sicheres Debuggen wird das erste an- und das zweite ausgeschaltet. Alle Konstanten samt Werten stehen in der wp-config.php-Konstanten-Referenz.

Der Fehler, den alle machen: Fehler auf der Live-Seite anzeigen

Hier ist der Punkt, an dem die meisten Anleitungen zu kurz greifen. Die Konstante WP_DEBUG_DISPLAY steht per Default auf true. Wer also nur define('WP_DEBUG', true); setzt und sonst nichts ändert, lässt WordPress die Fehler offen anzeigen, mitten auf der Live-Seite. Jeder Besucher, der die betroffene Seite aufruft, liest die vollständige Fehlermeldung mit.

Und da wird es zum echten Problem, aus reiner Entwickler-Hygiene-Sicht. Eine offene PHP-Fehlermeldung verrät erstaunlich viel: absolute Serverpfade wie /var/www/..., die Namen der beteiligten Plugins und Themes samt Versionsnummern und oft auch das Tabellenpräfix Ihrer Datenbank. Das ist genau die Art von Information, die jemand sammelt, bevor er eine bekannte Schwachstelle gezielt ausnutzt. Ich bin PHP-Entwickler, kein Security-Analyst, aber diese Zeilen schließe ich aus Prinzip.

Die Lösung steht schon in der sicheren Konfiguration von oben: WP_DEBUG_DISPLAY auf false. Zur Sicherheit kommt @ini_set('display_errors', 0); dazu, das ist der Gürtel zum Hosenträger und unterdrückt die Anzeige auch dann, wenn eine Server-Einstellung sich querstellt. Die Gegenüberstellung macht den Unterschied deutlich:

❌ Gefährlich auf einer Live-Seite (zeigt Fehler offen im Frontend):

// WP_DEBUG_DISPLAY ist per Default true, Fehler erscheinen sichtbar auf der Seite
define( 'WP_DEBUG', true );

✅ Sicher (loggen statt anzeigen):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Wenn eine Fehlermeldung auf ein tieferes Problem deutet oder Ihre Seite bereits Schaden genommen hat, können Sie Ihre Website professionell reparieren lassen.

WordPress Debug-Modus als Sicherheitsrisiko: eine offene Fehlermeldung verrät Serverpfade auf der Live-Seite
Eine ungefilterte Fehlermeldung auf der Live-Seite ist ein offenes Fenster: Sie verrät Serverpfade, Datei- und Versionsdetails.

Was tun mit der Fehler-Ausgabe?

Die protokollierten Fehler landen standardmäßig in der Datei wp-content/debug.log. Dort sammelt WordPress jede Meldung mit Zeitstempel, Dateipfad und Zeilennummer, ordentlich untereinander. Das eigentliche Entschlüsseln der Einträge ist ein Thema für sich: Wie Sie diese Zeilen lesen und häufige Fehlermeldungen deuten, zeigt der Artikel WordPress Error-Logs finden und verstehen.

Der Debug-Modus liefert damit das Rohmaterial; die eigentliche Diagnose ist der nächste Schritt. Je nachdem, was im Log steht, geht es gezielt weiter:

WordPress Debug-Modus wieder ausschalten

Sobald der Fehler gefunden ist, gehört der Debug-Modus wieder aus. Setzen Sie dazu WP_DEBUG in der wp-config.php zurück auf false:

// Debug-Modus deaktivieren
define( 'WP_DEBUG', false );

Danach löschen oder leeren Sie die Datei wp-content/debug.log. Sie hat ihren Zweck erfüllt und würde sonst weiter mitschreiben und dabei nach und nach sensible Pfad- und Fehlerdetails ansammeln, die auf einer Live-Seite nichts zu suchen haben. Das Deaktivieren erfolgt genauso wie das Aktivieren: direkt in der wp-config.php, ganz ohne Plugin. Hinterlassen Sie die Produktion sauber.

WordPress Debug-Modus wieder ausschalten und die debug.log leeren, um die Live-Seite sauber zu hinterlassen
Nach der Fehlersuche gehört die Live-Seite sauber hinterlassen: Debug abschalten und das Protokoll leeren.

Häufige Fragen zum WordPress Debug-Modus

Wie aktiviere ich den WordPress Debug-Modus?

Öffnen Sie die wp-config.php und fügen Sie vier Zeilen ein: WP_DEBUG auf true, WP_DEBUG_LOG auf true, WP_DEBUG_DISPLAY auf false sowie @ini_set('display_errors', 0);. So werden Fehler in wp-content/debug.log protokolliert, aber nicht auf der Seite angezeigt. Ein Plugin brauchen Sie dafür nicht.

Ist der WordPress Debug-Modus ein Sicherheitsrisiko?

Nur dann, wenn Fehler angezeigt statt geloggt werden. Eine offene Fehlermeldung verrät Serverpfade, Datei- und Versionsdetails, die ein Angreifer auslesen kann. Setzen Sie auf einer Live-Seite deshalb WP_DEBUG_DISPLAY auf false und schreiben Sie Fehler ausschließlich ins Log. Dann sinkt das Risiko deutlich; idealerweise liegt die debug.log zusätzlich außerhalb des Webroots.

Was ist der Unterschied zwischen WP_DEBUG_LOG und WP_DEBUG_DISPLAY?

WP_DEBUG_LOG schreibt alle Fehler still in die Datei wp-content/debug.log, ohne dass ein Besucher etwas merkt. WP_DEBUG_DISPLAY steuert dagegen, ob Fehler direkt im Browser auf der Seite erscheinen. Für sicheres Debuggen schalten Sie das erste an und das zweite aus, so protokollieren Sie Fehler, ohne sie öffentlich zu zeigen.

Warum wird meine debug.log-Datei nicht erstellt?

Meistens fehlt eine der beiden Voraussetzungen: WP_DEBUG und WP_DEBUG_LOG müssen beide auf true stehen. WP_DEBUG_LOG allein genügt nicht. Außerdem entsteht die Datei erst, wenn tatsächlich ein Fehler auftritt, rufen Sie also die betroffene Seite auf. Der Standardpfad ist wp-content/debug.log; prüfen Sie zusätzlich die Schreibrechte des Ordners.

Muss ich den Debug-Modus wieder ausschalten?

Ja. Nach der Fehlersuche setzen Sie WP_DEBUG wieder auf false und leeren die debug.log. Ein dauerhaft aktiver Debug-Modus kostet Performance, weil WordPress zusätzlich protokolliert, und die Log-Datei wächst unkontrolliert. Zudem sammelt sie sensible Pfad- und Fehlerdetails, die auf einer Live-Seite nichts zu suchen haben. Kurz: nur temporär zur Fehlersuche aktivieren.

Kann ich den Debug-Modus ohne Plugin aktivieren?

Ja, der Standardweg kommt ganz ohne Plugin aus: Sie setzen die Konstanten einfach direkt in der wp-config.php. Debug-Modus ohne Plugin ist auf Live-Seiten sogar die sauberere Variante. Werkzeuge wie Query Monitor sind optionale Ergänzungen, die Abfragen und Hooks komfortabel im Backend anzeigen, den Debug-Modus selbst aktivieren Sie aber über die Konfigurationsdatei.

Über den Autor

Sascha Fix ist PHP-Entwickler und SEO-Spezialist aus Witzeeze in Schleswig-Holstein und betreut kleine und mittlere Unternehmen. Für Webentwicklung begeistert er sich seit 1999, hauptberuflich arbeitet er als Entwickler, nebenberuflich selbstständig. Mehr über mich.

Zuletzt aktualisiert:

🔧

Fehler gefunden, aber unsicher, wie es weitergeht?

Sie haben den Debug-Modus aktiviert, aber die Fehlermeldung weist auf ein tieferes Problem hin, oder Ihre Seite wurde bereits kompromittiert? Dann schauen wir gemeinsam drauf. Ich analysiere den Fehler, sichere Ihre Installation und bringe die Website wieder sauber zum Laufen.

Sascha Fix, Webentwickler aus Witzeeze in Schleswig-Holstein

Direkter Draht

Lieber kurz fragen?

Ich bin Sascha Fix. Sagen Sie mir, worum es geht – das Erstgespräch ist kostenlos und unverbindlich.

Jetzt anfragen