DEV Community

guardlabs_team
guardlabs_team

Posted on • Originally published at guardlabs.online

How to Fix the WordPress White Screen of Death (WSOD)

How to Fix the WordPress White Screen of Death (WSOD)

The WordPress White Screen of Death (WSOD) is typically caused by PHP memory limit exhaustion, a fatal PHP error (often from a plugin or theme conflict), or corrupted core files. Because no error message is displayed on the frontend, you must use backend diagnostics to locate and resolve the issue.

1. Enable WordPress Debug Mode

To identify the exact file and line of code causing the error, enable WordPress's built-in debugging tool. This forces PHP errors to write to a private log file instead of displaying a blank screen.
Access your site files via FTP or your hosting control panel's File Manager, open wp-config.php, and locate this line:

define( 'WP_DEBUG', false );
Enter fullscreen mode Exit fullscreen mode

Replace it with the following configuration to enable debugging and log errors to a private file (/wp-content/debug.log):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Enter fullscreen mode Exit fullscreen mode

Refresh your site. If the screen remains blank, check /wp-content/debug.log for the specific error trace indicating which plugin, theme, or core file failed.

2. Increase PHP Memory Limit

If the error log indicates an exhausted memory limit (e.g., "Allowed memory size of X bytes exhausted"), you need to allocate more RAM to WordPress.
Add this line to your wp-config.php file, right before the line that says /* That's all, stop editing! Happy publishing. */:

define( 'WP_MEMORY_LIMIT', '256M' );
Enter fullscreen mode Exit fullscreen mode

If you do not have permission to modify this via PHP, you may need to edit your .htaccess file in the root directory and add the following line:

php_value memory_limit 256M
Enter fullscreen mode Exit fullscreen mode

3. Deactivate All Plugins

If debugging points to a plugin or if you cannot access the logs, a faulty plugin is the most likely culprit. You can disable all plugins simultaneously without admin access:

- Connect to your server via FTP or File Manager.
- Navigate to the `/wp-content/` directory.
- Rename the `plugins` folder to `plugins_old`. This forces WordPress to deactivate all plugins.
- Test your site. If it loads, rename the folder back to `plugins`, log into your WordPress dashboard, and reactivate them one by one to isolate the broken plugin.
Enter fullscreen mode Exit fullscreen mode

4. Revert to a Default Theme

If plugins are not the issue, your active theme might be causing a fatal PHP error. To test this, temporarily force WordPress to use a default theme:

- In your FTP or File Manager, navigate to `/wp-content/themes/`.
- Locate your active theme's folder and rename it (e.g., `mytheme-old`).
- WordPress will automatically fallback to an active default theme (like Twenty Twenty-Four). If the site loads, the issue lies within your theme's `functions.php` or template files.
Enter fullscreen mode Exit fullscreen mode

5. Check Server Error Logs and .htaccess

If the steps above do not resolve the WSOD, the issue may be server-side or related to a corrupted configuration file:

- **Check .htaccess:** Rename your `.htaccess` file to `.htaccess_old` to check for corruption. If the site works, go to Settings > Permalinks in your dashboard and click "Save Changes" to generate a clean file.
- **Check Server Logs:** Access your hosting account's control panel and look for "Error Logs" or "Apache/Nginx Logs" to catch low-level server errors that WordPress cannot log.
Enter fullscreen mode Exit fullscreen mode

Need this done? We handle this hands-on at GuardLabs (https://guardlabs.online/) — get in touch for a quote.

Top comments (0)