How to Fix the WordPress White Screen of Death in 5 Steps

How to Fix the WordPress White Screen of Death in 5 Steps

a laptop computer sitting on top of a table
Photo by Deng Xiang on Unsplash

Staring at a blank white screen instead of your WordPress site means you’ve hit the white screen of death (WSOD). It’s one of the most common—and alarming—WordPress errors. One minute your site is running, the next it’s completely blank. No error message, no clue what happened.

The good news? This is almost always fixable without a development background. The white screen usually comes from a PHP fatal error—code runs out of memory, conflicts with another plugin, or calls a function that doesn’t exist. Your server can’t render the page, so it shows nothing.

This article walks through five practical steps to fix the WordPress white screen of death. These come from real day-to-day maintenance work, not theory. You don’t need to rebuild your site or start from scratch. Just work through these steps in order.

A blank white web browser screen showing a WordPress white screen of death error

Before You Start: What’s Actually Happening?

Technically, the white screen of death is a PHP fatal error. PHP is the programming language WordPress runs on. When PHP hits a critical error—like calling a function that doesn’t exist or running out of allocated memory—it stops entirely. The result is a blank page.

The tricky part is that PHP doesn’t show the error by default. It just stops. So you’re left with a white screen and no explanation.

Common triggers include:

  • Memory exhaustion – A plugin or theme tries to use more memory than your server allows.
  • Plugin conflict – Two plugins try to do the same thing, or a plugin calls a function that’s been removed.
  • Theme function error – A PHP function in your theme’s functions.php file is syntactically incorrect or calls a nonexistent function.
  • Corrupted core file – A WordPress core file got damaged during an update or migration.

Because the error hides the actual message, the first step is to make that error visible. Once you see what PHP is complaining about, the fix is usually straightforward.

Step 1: Enable WP_DEBUG and Locate the Error

WP_DEBUG is a built-in WordPress feature that forces PHP to display errors instead of hiding them. You activate it by editing your wp-config.php file.

You’ll need access to your site’s files. If you have cPanel, use the File Manager. If you prefer FTP, use a client like FileZilla. Navigate to the root directory of your WordPress installation (usually public_html or a subfolder) and find wp-config.php.

Open it with a plain text editor. Look for the line that says:

define('WP_DEBUG', false);

Change it to:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

This does three things: enables debugging, writes errors to a debug.log file in /wp-content/, and hides errors from the frontend.

Now reload the blank white screen page. Then check /wp-content/debug.log. You’ll see lines like:

[01-Jan-2025 12:00:00 UTC] PHP Fatal error: Call to undefined function some_plugin_function() in /wp-content/plugins/broken-plugin/functions.php on line 45

That tells you exactly which file and line caused the error. If the log is empty, try enabling display_errors by adding this line right after the opening

ini_set('display_errors', 1);

Many hosts disable error display by default, so this forces it on. Reload the white screen page. You should see an error message at the top. Write down the plugin or theme file mentioned—it’s your roadmap for the next step.

Step 2: Deactivate All Plugins via FTP (The Fastest Test)

If Step 1 didn’t give you a clear error, or you want to confirm the issue is plugin-related, deactivate everything at once. You can’t do this from the WordPress admin because you can’t access it. Use FTP or cPanel File Manager instead.

Navigate to /wp-content/. You’ll see a folder called plugins. Rename it to plugins_old. That’s it. WordPress will look for the plugins folder, not find it, and assume all plugins are deactivated.

Now reload your site. If the white screen is gone, the problem is a plugin. If it’s still blank, move to Step 3.

Assuming the site loaded, you need to find the specific bad plugin. Rename the folder back to plugins. Then, inside the plugins folder, rename individual plugin folders one by one to deactivate them. Start with caching plugins (like W3 Total Cache or WP Super Cache) and security plugins (like Wordfence or Sucuri)—these are common WSOD culprits because they hook into WordPress early in the loading process.

After renaming a single plugin folder, reload the site. If it loads, you found the problem. Delete or replace that plugin. Continue until all plugins are checked.

A few tips: don’t rename a plugin folder while it’s actively being written to—do this when your site isn’t getting traffic. Also, some plugins have interdependencies. If you deactivate one and the site loads, confirm it was the actual conflict and not just a symptom.

Editing the wp-config.php file in a code editor to enable WP_DEBUG for troubleshooting WordPress

Step 3: Switch to a Default Theme

If plugins aren’t the problem, your theme might be. WordPress automatically falls back to a default theme (like Twenty Twenty-Four) if your current theme folder is missing or renamed. You can force this switch via FTP.

frozen, landscape, cold, sunrise, file, wilderness, rock, december, mongolia, nature, mongolia eastern
Photo by Kanenori on Pixabay

Go to /wp-content/themes/. Find the folder for your active theme. Rename it to something like themefolder_old. WordPress will then use the first available default theme. Reload your site.

If the white screen disappears, your theme is the cause. Check your theme’s functions.php file for syntax errors—a missing semicolon or a typo in a function name is all it takes. If you’re using a child theme, rename the child theme folder first. If the issue persists, rename the parent theme folder. Sometimes a theme update introduces a function conflict with your child theme.

After switching themes, you might notice broken styling or missing custom post types. That’s expected. Once you fix the theme issue and reactivate it, re-save your permalinks (go to Settings > Permalinks and click Save Changes) to restore custom post type URLs.

If the white screen persists after switching to a default theme, the problem isn’t theme-related. Move on to Step 4.

Step 4: Increase the PHP Memory Limit

Memory exhaustion is one of the most overlooked causes of WSOD. WordPress has a default memory limit of 40MB. That’s fine for a simple blog, but if you’re using a page builder, a slider plugin, WooCommerce, or a caching plugin, 40MB runs out fast.

To increase the memory limit, 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');

If that doesn’t work, you might need to set a PHP-level memory limit via .htaccess (for Apache servers). Add this line to your .htaccess file:

php_value memory_limit 256M

Some managed hosts (like WP Engine or Kinsta) don’t allow .htaccess overrides. In that case, check your hosting control panel for a PHP settings section, or contact support to ask them to increase the memory limit to 256M.

For heavy sites—especially those with media-heavy plugins—you might need 512M. Try 256M first, then bump higher if the white screen returns.

A word of caution: increasing memory is a temporary fix. If your site frequently hits the limit, you need to optimize plugins or upgrade your hosting plan. A site that regularly needs more than 512M likely has a poorly coded plugin or theme.

Step 5: Manually Re-upload Core WordPress Files

If you’ve done Steps 1 through 4 and still see a white screen, the issue might be a corrupted core file. Files like wp-settings.php, wp-load.php, or various admin files can get damaged during an update, migration, or even a bad plugin action.

Fixing this is simpler than it sounds. Download a fresh copy of WordPress from wordpress.org. Extract the zip file on your computer. Using FTP, upload the /wp-admin and /wp-includes folders from the fresh copy to your server, overwriting the existing files.

Important: overwrite, don’t delete first. Deleting these folders can break things further. Just upload and let FTP replace the files. Do not upload the wp-content folder or wp-config.php—those contain your themes, plugins, uploads, and site configuration.

After the upload completes, reload your site. If it works, the corruption is fixed. If not, you might have a damaged database connection or a server-level issue.

This step is safe for most sites. The only exception is if your host has custom file permissions. Managed hosts sometimes lock core files. If you’re on a managed host, check with support before overwriting. They might have a built-in “reinstall core” tool that does the same thing without FTP.

If you’re still stuck after Step 5, read the next section.

What If the 5 Steps Don’t Work? (Common Edge Cases)

These five steps resolve 95% of WSOD cases. But sometimes the problem is something else entirely. Here are the most common edge cases and how to check them.

Database connection issues. If the database credentials in wp-config.php are wrong, WordPress can’t connect to the database and shows a white screen or a database connection error. Double-check DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST. A common mistake is typing the host as “localhost” when your host uses a specific socket. Check with your hosting provider.

Broken .htaccess file. A bad rewrite rule or a memory limit directive that conflicts with server settings can cause WSOD. Rename .htaccess to .htaccess_old. If the site loads, regenerate your permalinks (Settings > Permalinks > Save Changes). If you had custom redirects, you’ll need to rebuild them.

Plugin-specific quirks. Some plugins use eval() or ob_start() in ways that break when other plugins are active. If you suspect a specific plugin, check its changelog or support forum. Also, flush any object cache (Redis, Memcached, or a caching plugin) before testing.

PHP version incompatibility. If your hosting provider updated PHP to a new version (e.g., from 7.4 to 8.0), your theme or plugins might not be compatible. Most hosts let you switch PHP versions in the control panel. Try reverting to an older version temporarily. If the site loads, you know which component needs updating.

Server-level issue. Sometimes the problem isn’t WordPress at all. Check your PHP error logs via cPanel or your hosting dashboard. If you see “Allowed memory size exhausted” at the PHP level, your server’s PHP memory limit is too low. Contact support to increase it.

If the site was working before a recent update (plugin, theme, core, or PHP version), use your hosting control panel to restore a file-level backup. Most hosts keep automatic backups for 30 days.

excavator, construction machine, two-way excavator, gripper, site, construction site, machinery, heavy machinery, excava
Photo by Tama66 on Pixabay

Last resort: contact your host’s support team with the debug.log file open. They can check server-level errors you can’t see.

How to Prevent the White Screen of Death From Returning

Prevention is about having a safety net, not being perfect. Here’s a practical maintenance routine that minimizes downtime if the WSOD comes back.

Use a staging environment. Before updating plugins, themes, or WordPress core, clone your site to a staging environment. Most hosts offer this built-in. Test updates there before pushing to production. If something breaks, only your staging site is affected.

Set up a maintenance mode plugin. Plugins like WP Maintenance Mode show a custom message when your site goes down. This manages user expectations and gives you time to troubleshoot without visitors seeing a blank page.

Keep regular backups. Use a plugin like UpdraftPlus, BlogVault, or BackWPup to automatically back up your site daily and store copies off-site. If WSOD hits and you can’t fix it quickly, restore the last working backup.

Monitor PHP error logs weekly. Even if your site is running smoothly, PHP error logs can reveal small issues that could escalate into a WSOD. Check /wp-content/debug.log once a week. If you see repeated warnings about a specific plugin or theme, address it early.

Upgrade your hosting plan if memory is borderline. If you had to increase the memory limit in Step 4, and your site frequently hits 256M or more, your hosting plan is undersized. A VPS or managed WordPress hosting plan with higher PHP memory limits is worth the investment.

Use a security plugin that scans for file changes. Plugins like Wordfence or Sucuri can alert you when core files change unexpectedly. This helps catch corrupt files or unauthorized changes before they cause a white screen.

The goal isn’t to never see a white screen again—it’s to recover in 10 minutes instead of panicking.

Tools That Make Troubleshooting Easier

You don’t need a lot of gear to fix WSOD, but the right tools save time. Here are the essentials.

FTP client: FileZilla or WinSCP. If you’re comfortable with FTP, FileZilla is free and reliable. If you’re on Windows, WinSCP has a more intuitive interface. Both let you rename folders and upload files quickly.

Code editor: Notepad++ (Windows), Sublime Text (Windows/Mac/Linux), or VS Code. You need a plain text editor to edit wp-config.php. Don’t use Word or a rich text editor—they add formatting that breaks PHP files.

Backup plugin: UpdraftPlus is free and works with Google Drive, Dropbox, and more. BlogVault is paid but offers real-time backups and a one-click restore feature that works even if your admin area is down.

Staging plugin: WP Staging creates a clone of your site on the same server. It works well for testing updates. For larger sites, use your host’s built-in staging feature if available.

Managed backup/restore service: If WSOD keeps happening, a service like ManageWP or Jetpack VaultPress Backup can automate backups and restore with one click.

Before buying anything, check what your host already provides. Many hosts include file managers, staging, backups, and one-click restore tools. You might have everything you need already.

A collection of WordPress troubleshooting tools including a laptop and backup drive for site recovery

When to Call in a Professional

Sometimes DIY troubleshooting isn’t the right call. Here’s when to hire help.

Your site is a high-traffic ecommerce store. If your site generates revenue, every minute of downtime costs money. A professional WordPress maintenance service with a guaranteed response time is worth the monthly fee.

You’ve tried all five steps and still have a white screen. At this point, the issue is likely at the server level. A developer with server access can check logs and configs you can’t see.

You’re not comfortable with FTP or editing files. If editing wp-config.php or renaming folders makes you nervous, you risk breaking more than you fix. A professional can handle it in 15 minutes for a flat fee.

Hiring a developer costs $50 to $150 per hour. You can also find flat-rate emergency fixes from services like Codeable or WP Buffs. If you want ongoing peace of mind, a monthly maintenance service handles these issues daily.

Your Next 10 Minutes: A Recovery Action Plan

If you’re reading this with a white screen staring back at you, here’s your immediate action checklist:

  1. Access your site via FTP or cPanel File Manager. Navigate to wp-config.php. Enable WP_DEBUG with define('WP_DEBUG', true); and define('WP_DEBUG_LOG', true);. Reload the white screen, then check /wp-content/debug.log.
  2. Rename your plugins folder to plugins_old. Reload the site. If it works, find the bad plugin by renaming folders one at a time.
  3. If Step 2 didn’t fix it, rename your current theme folder to themefolder_old. WordPress will fall back to a default theme.
  4. Add define('WP_MEMORY_LIMIT', '256M'); to wp-config.php to increase memory. Try 512M if needed.
  5. Re-upload core files by downloading a fresh WordPress copy and overwriting /wp-admin and /wp-includes via FTP.

If you’ve done all this and your site still shows a white screen, you’re likely looking at a server-level issue. Contact your host’s support team and ask them to check the PHP error log directly. Tell them you’ve ruled out plugins, themes, memory, and core files.

The white screen of death is stressful, but it’s also fixable. You haven’t broken anything permanent. Work through the list methodically, and you’ll have your site back up.