Troubleshooting the White Screen of Death in WordPress

One question that I see asked a lot in the WordPress Support Forums is what to do when their website simply displays a white screen. This most likely represents a PHP fatal error that stops the server from generating the HTML for the browser to display.

How to Find the Problem

When PHP has a fatal error, it is usually logged to an error log file. The location and name of this file can change depending on the hosting server’s settings, but often the log file will be in the root of your website (maybe public_html) and called something like error_log or php_errorlog. If you don’t know, you should be able to search at your hosting company’s Support area for this information.

When you find out where the error log file is, open it up in a text editor or the File Manager in CPanel. The newest entries will be at the bottom of the file. If you see a PHP Fatal Error, this is most likely the culprit. Here is an example:

[19-Sep-2017 02:55:44 UTC] PHP Fatal error:  Call to undefined function load_theme_textdomain2() in htdocs/wordpress/public_html/wp-content/themes/twentyfifteen/functions.php on line 62

This tells me that there is a problem in the theme I am using, Twenty Fifteen, trying to call a function that does not exist. Now that I know this, I can look into fixing it.

Does the admin load?

If you go to your site’s home page and get the dreaded white screen, try to access your site’s administration panel at http://<your domain>/wp-admin/. It is possible that the error is only manifesting itself on the front-end and that you will still be able to get into your admin panel.

If you were able to get useful information from the error log, you should be able to disable either the problem theme or plug-in and be back in business. If you were not able to get information from the error log, you can try changing the theme to one of the included WordPress themes to see if there is an issue with the active theme. Or, if that doesn’t work, you can disable plug-ins one at a time, loading the home page of your site in a different tab, between plug-in disables to try to track down the errant plug-in.

Does the admin not load?

If the administration does not load there are a couple of things you can do to disable plug-ins. You can rename the folder of your plug-ins. If WordPress cannot find the plug-in file, it will disable it:

Plug-in was disabled

Another option, if you have access to the database through a tool like phpMyAdmin.phpMyAdmin is often available in CPanel and other hosting control panels. Go to the wp_options table and look for the record with the option_name of “active_plugins.” The option_value of this record will contain a serialized list of active plug-ins for your site. Here is an example of a site with Akismet and Contact Form 7 active:


Delete the option_value completely and this should disable all plug-ins for your site.

Need to change your active theme? There are two rows for this, also in wp_options. You can look for the option_name values of “template” and “stylesheet.” Change these values to a different theme available on your site.

Why did my site break all of a sudden?

It is impossible to give one answer for all the possibilities, of course, but I have found that one of the common causes of this issue would be an upgrade to the version of PHP running on your site. If a plug-in is using a deprecated function from PHP 5, and the host switches your account to use PHP 7, this could cause a problem. Do a Google search for the error you found in your error log to try to find out more. If you suspect the issue is a PHP upgrade and you have access to CPanel, there is often a way to change the version of PHP for your site. Look for an icon like this in CPanel:

PHP Version Manager

If you have that, try reverting to an older version of PHP.

This article just scratches the surface of troubleshooting problems with a WordPress site being down but hopefully it will help get you started on the right track for figuring out your issue.

Leave a comment

Your email address will not be published. Required fields are marked *