Nothing is worse than entering your WordPress site and finding the white screen of death, making it inaccessible to administrators and visitors. Today we are going to see 5 Common Issues That Cause WordPress White Screen of Death, the most frequent causes and most importantly, the solutions so you can get your site up and running again as quickly as possible.
WordPress White Screen of Death
A WordPress white screen of death (WSOD) is almost always caused by PHP code errors or memory limit exhaustion. The first thing you need to do is determine if your site manager is working or not.
If the front-end of the website is down, but the admin is up and running, you probably have a broken theme or plugin. You can check your manager by simply navigating to yourdomain.com/wp-admin.
A white screen of death might also appear slightly different depending on the browser. Here is an example in Google Chrome. In fact, it gives us a warning saying “This page is down and cannot handle the request.” This is an HTTP 500 error.
In Mozilla Firefox, it is simply a completely white screen with no errors or warnings.
If you're seeing a screen like the one above, here are six common steps to resolve the issue:
- Disable plugins and themes
- Turn on debugging
- Increased memory limits
- Check file permission issues
- Check if the automatic update was not successful
Disable plugins and themes
One of the easiest and most common ways to fix the white screen of death is to simply disable all your plugins. Many times a site goes down due to a bad plugin update. If you can still access your manager, a quick way to do this is to look under “Plugins” and select “Disable” from the bulk actions menu.
This will disable all your plugins. If this corrects the problem, you will need to find the culprit. Start activating them one by one, reloading the site after each activation. When your front-end stops displaying, you have found the misbehaving plugin. You can then contact the plugin developer for help or post a support ticket in the WordPress repository.
If you can't access your administrator you can access your server via FTP and change the name of the plugin folder to something like plugins_old. Then check your site again. If it works then you will have to test each plugin one by one. Rename your folder back to “plugins” and then rename each plugin folder, one by one, until you find the faulty one.
The same goes for WordPress themes.. You can temporarily replace your theme with a default WordPress theme, Twenty Seventeen is a good option. If you can access your administrator, go to “Themes” in the Appearance menu, and activate the Twenty Seventeen theme and then test your site again. If your site appears again, the theme is responsible for the problem.
If you can't access your admin, the process is exactly the same as with plugins. Rename your wp-content/themes folder to another, something like themes_old. WordPress will default to the latest theme, which is probably Twenty Seventeen (if you don't have any other themes, you can download Twenty Seventeen from the WordPress repository and upload it to your themes folder. If it works, then maybe your theme has a conflict or a bad update, in which case you may need to contact your theme developer.
Turn on debugging
If you're still seeing the white screen, or the manager isn't working (or if you've found the culprit but want to dig deeper) you can enable debugging which will expose any errors. The problem is that when a fatal error occurs, the script simply terminates execution. If this happens before any content is displayed, all you'll see is a blank screen with absolutely no text.
To enable debugging you will have to open the wp-config.php file from your WordPress installation. Inside you should find the following line:
Define ('WP_DEBUG', false)
You will have to replace false with true and reload your site. If it doesn't exist, you can add it.
Instead of the blank screen, you will get a blank screen and error messages. It's not a huge improvement, but at least we can start! If you haven't disabled plugins or themes, you can figure out which is the culprit by looking at the error message. You should indicate which file the error originates from, something like this:
Cannot redeclare get_posts() (previously declared in /var/www/html/wordpress/wp-includes/post.php:1874) in /var/www/html/wordpress/wp-content/plugins/my-test-plugin/ my-test-plugin.php on line 38
You can see at the end of the message that the problem is in the 38 line from a plugin called “my-test-plugin”. Disabling that plugin should work.
If you're happy with modifying the code, you can fix that too. If it is a plugin from the repository, I recommend writing to the author instead of doing it yourself.. If you modify the plugin you will have to keep all the changes which is a pain, it is easier to disable it until it is fixed by the developer.
If you don't see any errors at all after enabling debugging, you may need to contact your host, as debugging may not be configured correctly on your server.
Increased memory limits
If you keep seeing an empty page or receive an error complaining about the memory limits or memory exhausted, you will need to allocate more memory to the application. This can be done through the file wp-config.php In many installations, simply add the following code to the file:
define('WP_MEMORY_LIMIT', '64M');
If this doesn't seem to work you have a few options. In a normal environment you can use your .htaccess file - in the WordPress root directory - to increase the memory limit, simply add the following line:
Php_value memory_limit 64M
If you are on hosting and your website uses the NGINX architecture, the .htaccess file is not available. You can use the php.ini file to increase the memory limit. Anywhere in the file, add the following line:
Memory_limit = 64M
If you are still out of memory and need to allocate more and more, there may be a problem within your application. Maybe your theme or one of your plugins is using an excessive amount of resources. Ask a developer to take a look, even your hosting may be able to help by showing you SQL logs and other resource statistics.
Check file permission issues
We haven't seen a white screen of death because of this, but permission and ownership issues can still cause problems. Who knows, in some circumstances this may lead to a white screen of death! It is possible to fix it yourself, but unless you really know what you are doing, I don't advise it. For WordPress there are three simple rules:
- The files must be 664,
- Folders should be 775,
- And the wp-config.php file must be 660
If you have SSH access on your server, you can apply the appropriate rules with the following command, running it from the WordPress root directory.
sudo find . -type f -exec chmod 664 {} + sudo find . -type d -exec chmod 775 {} + sudo chmod 660 wp-config.php
If you are not sure how to do this or are a little afraid ask your hosting provider. Some WordPress-specific hosts even have automatic verification permissions that can do all of this for you.
Check if it has not been updated automatically
Sometimes WordPress can run into issues with updates, such as server timeouts. Often this resolves automatically, but in some cases, it can lead to a white screen of death.
The first thing you should do is Go to the WordPress root directory and see if there is a .maintenance file there. Feel free to delete that file and load your site again. If the update was successful, but WordPress was unable to delete this file automatically, everything will be back to normal.
If the update didn't complete, it can be done automatically for you, in which case things should go back to normal in the same way. If all else fails, follow the recommended procedure manual WordPress update this should solve the problem once and for all.
Summary
There are a number of things that can go wrong, but fortunately the situation is usually not as serious as it seems. A simple plugin/theme check should fix the issue and enabling debugging will definitely shed more light on the issue. If you have encountered any other problematic situations in WordPress, let us know so we can learn from it and share the experience!