XiaTools

Diagnosing WordPress White Screen of Death Using Server Error Logs

Updated 10 Oct 2026

The WordPress white screen error logs point directly to the underlying fatal PHP crashes or memory exhaustion issues that cause your site to render a completely blank page. When your visitors see nothing instead of your content, server logs capture the exact script, line number, and error message responsible for the failure. By enabling and reading these logs, you can bypass guesswork and resolve the root cause in minutes.

Before diving into complex code debugging, it is always wise to confirm whether your entire server is unreachable or just your WordPress application. You can use the Website Down Checker to quickly verify if your domain is experiencing a global outage or just returning an internal application error, helping you separate server-level network failures from PHP script crashes.

Understanding the WordPress White Screen of Death

The White Screen of Death, commonly abbreviated as WSoD, occurs when PHP encounters a fatal error during page execution but is configured to suppress error output on the frontend for security reasons. Instead of displaying a descriptive stack trace to your visitors, WordPress simply halts execution and sends an empty HTTP 200 or HTTP 500 status code response. Because the web server receives no output from the PHP processor, the browser renders a blank white screen.

Common triggers for this behavior include memory limit exhaustion, faulty theme or plugin updates, PHP version incompatibilities, or corrupted core files. While disabling plugins via FTP is a common trial-and-error approach, reading your server error logs provides immediate, undeniable proof of what went wrong.

Locating and Enabling WordPress Error Logs

By default, WordPress hides error reporting to protect sensitive database credentials and file paths from potential attackers. To diagnose the WSoD, you need to enable debugging and locate your server error logs.

Enabling WP_DEBUG in wp-config.php

Connect to your hosting account via FTP or File Manager, locate your root directory containing wp-config.php, and download a backup copy. Open the file in a plain text editor and look for the following line:

define( 'WP_DEBUG', false );

Change this setting to true, and add lines to instruct WordPress to log errors to a file rather than displaying them on the screen:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

Save the file and upload it back to your server. WordPress will now record all warnings, notices, and fatal errors in a file named debug.log located inside your wp-content directory (/wp-content/debug.log).

Accessing Web Server Error Logs

Depending on your hosting environment, your web server maintains its own error logs outside of WordPress. You can find these through your hosting control panel's metrics or file manager sections, or via SSH:

  • Apache: Usually located at /var/log/apache2/error.log or /usr/local/apache/logs/error_log.
  • Nginx: Usually located at /var/log/nginx/error.log or within your site-specific virtual host directory.
  • cPanel: Navigate to the Metrics or Software section and select Errors to view the last 300 server error log entries.

Analyzing Common Log Entries

Once you access your error logs, you must know what to look for. Fatal PHP errors explicitly state the nature of the failure, the file path, and the exact line number.

Memory Exhaustion Errors

A memory limit error looks like this in your logs:

[15-Oct-2023 12:45:22 UTC] PHP Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20480 bytes) in /home/example/public_html/wp-includes/class-wp-image-editor.php on line 124

This indicates that a script (in this case, image processing) tried to consume more RAM than allocated by your PHP configuration. To fix this, increase your memory limit in wp-config.php by adding:

define( 'WP_MEMORY_LIMIT', '256M' );

Call to Undefined Function Errors

[15-Oct-2023 13:10:05 UTC] PHP Fatal error: Uncaught Error: Call to undefined function wp_craft_plugin_init() in /home/example/public_html/wp-content/plugins/broken-plugin/broken-plugin.php:45

This error points directly to a broken plugin. The function wp_craft_plugin_init does not exist, usually because a plugin update was interrupted or is incompatible with your current WordPress core version.

Plugin and Theme Conflict Resolution Table

Log Indicator Root Cause Immediate Remediation Step
.../wp-content/plugins/plugin-name/... Faulty or incompatible plugin Rename the plugin folder via FTP to trigger auto-deactivation.
.../wp-content/themes/theme-name/... Broken theme functions.php Switch to a default theme (Twenty Twenty-Four) via database or FTP.
.../wp-includes/... Corrupted WordPress core file Re-upload core files (wp-admin, wp-includes) via FTP.
Allowed memory size exhausted Low PHP memory allocation Increase WP_MEMORY_LIMIT in wp-config.php or php.ini.

Step-by-Step Troubleshooting Procedure

Follow this structured sequence to resolve a white screen of death using your logs:

  1. Reproduce and Monitor: Open your terminal and tail the live error log if you have SSH access:

    tail -f /home/example/public_html/wp-content/debug.log
    

    Refresh your browser window pointing to your WordPress site to generate a fresh log entry.

  2. Identify the Culprit File: Read the output from the log tail. Look for the absolute path following in /home/example/public_html/wp-content/....

  3. Isolate the Component: If the path references a specific plugin, use FTP to navigate to /wp-content/plugins/ and rename that specific plugin folder to plugin-name-disabled.

  4. Test Frontend Rendering: Refresh your website in an incognito browser window. If the white screen disappears, you have successfully isolated the faulty extension.

  5. Review PHP Version: If multiple plugins throw syntax errors, check your server's active PHP version. You can verify your environment using a quick curl command or your control panel:

    curl -I https://example.com
    

    Ensure your hosting account runs a supported PHP version matching your plugins (e.g., PHP 8.1 or 8.2).

Common Mistakes and How to Fix Them

  • Leaving WP_DEBUG Enabled in Production: Keeping debug mode active indefinitely exposes sensitive path disclosures and system details to the public. Always set WP_DEBUG back to false once troubleshooting is complete.
  • Ignoring File Permissions: Uploading error log handlers or editing files with root-only permissions can trigger permission denied errors (AH00129 or HTTP 500). Ensure your WordPress files are owned by the web server user (e.g., www-data or apache) with 644 for files and 755 for directories.
  • Confusing Nginx and Apache Logs: If you are running a reverse proxy setup where Nginx sits in front of Apache, check both log files. Nginx logs 502 Bad Gateway errors, while Apache logs the actual PHP fatal errors.

Quick Checklist for WSoD Resolution

  • Enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php.
  • Trigger a page reload to write a fresh entry to /wp-content/debug.log.
  • Check web server error logs (Apache/Nginx/cPanel) for system-level faults.
  • Isolate and rename offending plugins or themes via FTP or File Manager.
  • Increase the PHP memory limit if memory exhaustion errors appear.
  • Disable debugging in wp-config.php after restoring site access.

Frequently asked questions

What is the WordPress White Screen of Death?

The WordPress White Screen of Death is an error state where your website displays a completely blank white page instead of your normal content. It happens when a fatal PHP error halts script execution, and frontend error reporting is disabled.

How do I find my WordPress error log file?

If you enabled debugging, your log file is saved as debug.log inside the wp-content directory of your WordPress installation. You can also view web server error logs through your hosting control panel metrics section or via SSH.

Can I troubleshoot the white screen without FTP access?

If you cannot access FTP, you can try logging into your hosting control panel's File Manager or database phpMyAdmin. In phpMyAdmin, you can disable active plugins by editing the active_plugins option in the wp_options table.

Why does my error log show nothing new when my site is blank?

If the log remains empty, PHP might be crashing before it can initialize logging, or your web server lacks write permissions to create the debug.log file. Check your main web server error logs in your hosting panel for low-level daemon crashes.

Is it safe to leave WP_DEBUG turned on permanently?

No, leaving WP_DEBUG enabled in a live production environment is insecure. It can display database paths, server directory structures, and code snippets to public visitors, which hackers can exploit.

Related articles

Free tools