Dealing with WordPress White Screen of Death

A White Screen of Death in WordPress occurs when PHP has crashed. Usually this is caused by malformed coding which causes the interpreter to stop processing the page. Most common reasons include installing incompatible plugins or themes. Remember many years ago troubleshooting a White Screen for someone and determined that they had installed a Joomla theme in WordPress. While they both used the same file structure there are vast differences between WordPress and Joomla.  WordPress has made several enhancements over the last couple years that greatly reduce the likelihood of there being a White Screen of Death such as performing a check on an installed plugin or theme before allowing it to be activated. However, it can still happen and it happened to me earlier this week.

I  was in the process of trying to update plugins on the many WordPress sites I manage. Multiple plugins needed to be updated on most of the sites. I tried to do several sites and updates at once which used up the resources that were allocated to me on the sever. As a result I was getting a White Screen of Death in the dashboard (the sites were still visible). Had the main site brought up a White Screen of Death, I would have known it was a problem with them theme. Since I was updating plugins at the time, that help narrow down to where the problem lied.

One of the methods to troubleshoot bad plugins is much like troubleshooting add-on issues in Firefox and that is to disable everything, then re-enable one-by-one until the problem child is found. But wait, how can you disable plugins if you can’t get to the Dashboard? In this case you would need to FTP or SSH into your server and then go into the /wp-content/plugins folder and start renaming all the folders (each folder is associated with a plugin) to manually disable them and then rename one at a time back to the correct name. However, there is an easier method…WordPress has a ‘debug’ mode which will enable PHP error messages to be displayed as the page is being processed.

You don’t need to know much about PHP in order to troubleshoot as the path specified in the error message will tell you where the problem lies. Again, you will need to FTP into your server and go to the root of your WordPress install. From there you will need to locate and edit (recommend using Notepad++ for this) the wp_config.php file. For those of you who have ever done a manual install of WP are familiar with this file as this is where you declare all the database settings for your site. Once you have the file opened in Notepad++ (or other text editor) do a search for debug. Below the first result will be a line which should display:

define('WP_DEBUG', false);

You will want to change the ‘false’ to ‘true’ (without quotes). Save the file (and if need re-upload to the server) then reload your WP site (or in my case the Dashboard). You may see several PHP ‘warnings’, don’t worry about all of these as the only one you are interested in is the last one. This was what caused the PHP interpreter to crash. Again, you don’t really need to concern yourself with the error message itself, just the path. In my case the path was to the plugin Updraft Plus (which is an automated backup/recovery plugin). Once I determined this was the issue I went back into FTP to the /wp-content/plugins folder and deleted the updraft plus folder. With that folder gone the dashboard was once again loading. I simply re-installed the Updraft Plugin via the WP Dashboard and was up and running again.

Don’t forget to go back in and edit the wp_config.php file setting debug back to ‘false’ (without the quotes). Now keep in mind this method applies mostly to plugins. If you were editing a theme’s PHP file and getting a White Screen of Death, you can still use the debug method to find out where in the file the problem lies (again look for the last error thrown by the interpreter to determine what caused it to crash). To regain access to your site while you work on this issue you can go in via FTP and rename the folder of theme (in /wp-content/themes) to regain access to your site. WordPress will automatically use and activate the default theme (Twenty Fifteen) provided it is installed. While you could reinstall the theme, any customizations you successfully made will be lost. If you get stuck simply Google the error messages the PHP interpreter is throwing.