We’ve all been there. You’re working on your site—or worse, a client’s site—and you refresh the browser, and there it is: Nothing. A white screen where the site should be.
Adrenaline rushes, you start to sweat. You can’t see the site, you can’t access the dashboard. How are you going to fix this?!
This is the dreaded White Screen of Death, also known as the WSOD, and it’s the bane of every WordPress developer’s existence. But don’t worry, the fix is usually pretty simple. You just need access to the hosting provider.
First, think back to the last thing you did before the White Screen of Death reared its ugly head. I’m willing to bet it had something to do with a plugin. You either installed or updated one. If I’m right, here’s how to fix it.
Log into your hosting provider. Chances are, your hosting provider uses a piece of software called cPanel to allow you to interact with your files. So, navigate to cPanel and log in.
Now, navigate to the area of cPanel called “File Manager.” Click into it, and you’ll see a new screen that looks a bit like Windows Explorer on Finder on Mac. This is your file structure.
Luckily, all WordPress installations have almost identical file structures. So, navigate to public_html>wp-content>plugins and find the folder containing the plugin you changed before the WSOD appeared. It will not usually have exactly the same name as your plugin, but it will be similar. For example, if your plugin is called “Random Third-Party Plugin,” its folder might be called “random-third” or “third-party.” Once you find the folder you think contains your plugin, right-click on it and choose “rename.” Now, add something to the end of the name. I usually add “BAK” which is shorthand for “backup.” Since it’s in all caps, it’s easy to locate with just a glance. So if you want to change it back later, you can find it quickly.
Renaming the plugin is a tricky way of deleting the plugin without actually deleting it. Let me explain: The WordPress system is wired up to look for a folder called (in this example) “random-third.” So, if you change the name to “random-thirdBAK” your WordPress installation won’t recognize it. So it will assume the plugin has been removed. But the beauty part is, if you want to reintroduce the plugin to your installation, you don’t have to reinstall it. You just have to change the name back. Nifty, right?
Now, refresh your website. Did it load? If so, great! If not, repeat this process to every plugin you’ve touched recently.
If changing the names of plugin folders doesn’t work, we’re going to have to explore further by making a change to your wp_config.php file. You’ll find it in the root file of your WordPress installation. So just navigate back to your public_html folder. You should see it about two-thirds the way down the list of files. Now, right click on it and select “Edit.”
Now, hit ctrl+F and a search window will appear. Type WP_DEBUG into the search window and hit enter. It should find a line toward the bottom of the document that says:
Now, change “false” to “true,” so it will look like this:
Now, save the document and hit refresh on your web page. The White Screen of Death should no longer be totally blank. It will show you at least one—but probably several—error messages. Here’s an example:
Warning: Invalid argument supplied for foreach() in home/website/public_html/wp-content/plugins/random-third/random-third.php on line 209
You don’t need to worry about what all that exactly means. The important part is, it gives you the name and location of the file that’s creating the problem. It’s probably going to be a plugin or theme folder. In my made-up example, it’s a PHP file inside the random-third plugin folder. So, rename that folder and hit refresh on your web page. Voila! It’s fixed.
If that doesn’t work, we’re going to have to get a little pushier with your system. Go into your file structure, navigate to the plugins folder (which is at public_html/wp-content/plugins) and change the name of the whole plugins folder to something like pluginsBAK. This will trick your WordPress installation into thinking that absolutely no plugins are installed. If the error is caused by any of your plugins, this will get your site running. So, refresh your browser.
Did it get the site back online? If so, great! But you have more work ahead of you. Now you know the problem was a plugin, but you don’t know which one. So you need to activate your plugins from the dashboard one-by-one, refreshing your browser each time. Activate a plugin, refresh. Activate, refresh. Eventually, you’ll activate one, and when you refresh, you’ll get the WSOD. That means, whichever plugin you activated last is your culprit. You can try updating it, and if that doesn’t work, uninstall it.
If your plugins aren’t the culprit, it’s your theme. Go to your themes folder at public_html/wp-content/themes and change the name of its folder. So if the theme is called Suspicious Buggy Theme, it’s folder is probably called “buggy.” So just change the name to “buggyBAK.” This will cause your system to use whichever theme is next in alphabetical order in your themes folder.
But beware: If you only have that one theme in your folder, changing its name will just cause the WSOD, so obviously that’s not useful. If that’s the case, you’ll need to install another theme through the file structure before trying this method. This is kind of a complicated procedure, so we won’t cover it here.
If none of these fixes work, there’s something more serious wrong with your installation. The quickest way to resolve it is to simply restore a backup version. Hosting companies usually include some backup software along with your package, but each software package works a little differently. You’ll have to contact your hosting provider and have them point you in the right direction.