14+ years building on WordPress / Replies in under 5 hours
WordPress 9 min read · Updated July 2026

How to Fix the WordPress White Screen of Death (Step-by-Step)

Photo of Ajay Khandal
Ajay Khandal
WordPress Developer
WordPress white screen of death — blank white browser window with faint WordPress logo and an emerald wrench icon representing the fix
TL;DR

The WordPress White Screen of Death (WSOD) is a blank white page with no error message, caused by a PHP fatal error that terminates execution before WordPress outputs any HTML. The four most common causes are: PHP memory exhaustion, a broken plugin (especially after an update), a syntax error in your theme's functions.php, and a failed WordPress core update. The fastest diagnosis: add define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); to wp-config.php and check /wp-content/debug.log for the exact error. The most common fix: rename the /wp-content/plugins/ folder via FTP to deactivate all plugins. If the site loads, one of your plugins is the culprit. For memory errors: add define('WP_MEMORY_LIMIT', '256M'); to wp-config.php. WSOD never causes data loss. Your database and content stay intact; you're just fixing the PHP execution error that's stopping WordPress from rendering them.

Your WordPress site loads a blank white page. No error, no warning, nothing. You refresh and get the same blank page. You check your hosting control panel and the server is running fine. That’s the WordPress White Screen of Death, usually shortened to WSOD.

Here’s the reassuring part: it almost always comes down to one of four causes, and every one of them is fixable without losing any data. The steps below are ordered from most likely to least likely, and in my experience most people are back up and running by step 2 or 3.

Before you start: check whether the blank screen shows up on your site’s front end, in wp-admin, or both. That single detail narrows down the cause quite a bit, and it’s covered in the scenario breakdown further down.

What Causes the WordPress White Screen of Death?

Four causes account for the vast majority of WSOD incidents:

  • PHP memory exhausted: WordPress ran out of memory mid-execution and produced no output instead of an error page
  • Plugin conflict: a plugin update, or a newly installed plugin, contains a PHP fatal error
  • Theme error: a syntax error in functions.php or a template file crashes PHP before anything renders
  • WordPress core update failure: an incomplete update left core files in a mixed state

Less common causes: a corrupted .htaccess file, incorrect file permissions, or a stale opcode cache serving a broken file after a recent change.

Step 1: Enable WP_DEBUG to Find the Actual Error

Before trying anything else, turn on WordPress’s error logging and let it tell you exactly what broke. Open wp-config.php through FTP or your host’s file manager, and add these three lines just above the line that reads /* That's all, stop editing! */:

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

Setting WP_DEBUG_DISPLAY to false keeps errors out of the browser and routes them to /wp-content/debug.log instead, which matters if your site still has visitors landing on that blank page. Reload the site after saving the file, then open /wp-content/debug.log in your FTP client or file manager.

Whatever broke will be right there in the log: a specific plugin file, your theme’s functions.php, or a WordPress core file. See Allowed memory size of X bytes exhausted? Skip ahead to Step 2. Named plugin file? Go to Step 3.

Step 2: Increase the PHP Memory Limit

PHP memory exhaustion is the single most common cause of WSOD. WordPress requires a minimum of 64MB, but complex sites with WooCommerce, a page builder, and multiple active plugins routinely need 256MB or more.

Add this line to wp-config.php (above the stop-editing line):

define('WP_MEMORY_LIMIT', '256M');

If that doesn’t take effect (some hosts override it), try adding this to .htaccess in your WordPress root:

php_value memory_limit 256M

If neither change sticks, your hosting plan has a hard memory cap set at the server level. Contact your host and ask them to raise PHP memory to at least 256MB. This is where shared hosting tends to hit a wall; memory becomes the limiting factor long before anything else does.

Step 3: Deactivate All Plugins

Plugin conflicts are the most common cause of WSOD right after an update. Deactivating everything at once is the fastest way to find out if a plugin is responsible: if the site comes back, you reactivate plugins one at a time until the white screen returns.

If you can access wp-admin: Go to Plugins → Installed Plugins, check the box at the top to select all, then Bulk Actions → Deactivate → Apply. If the site now loads, reactivate plugins one at a time. Whichever one you turn back on right before the white screen reappears is the cause.

If wp-admin is also blank (use FTP): Connect to your server via FTP (FileZilla is the most common client). Navigate to /wp-content/ and rename the plugins folder to plugins_disabled. WordPress can no longer load any plugin at all. If the site loads now, rename the folder back to plugins, then deactivate and re-enable plugins one at a time from wp-admin.

If you’ve got a lot of plugins installed, testing them one at a time gets tedious fast. The plugin conflict diagnosis guide walks through a binary-search approach instead: halve the active set each round rather than toggling plugins one by one.

Step 4: Switch to a Default WordPress Theme

If deactivating plugins didn’t fix it, look at your theme next. A syntax error in functions.php, or in a template file, will crash PHP before it outputs anything.

Via FTP: Navigate to /wp-content/themes/ and rename your current active theme folder (e.g. my-thememy-theme-backup). WordPress falls back to the most recent default theme it can find (Twenty Twenty-Five, Twenty Twenty-Four, etc.). If the site now loads, your theme’s code is the cause.

Via wp-admin (if accessible): Go to Appearance → Themes and activate a default theme.

Once you’ve confirmed the theme is the problem, open functions.php and check whatever code was added most recently. A missing semicolon, an unclosed bracket, or a function call that doesn’t exist will crash every single page load. This happens a lot after copying in a code snippet from a tutorial without checking it first.

Step 5: Check and Reset Your .htaccess File

A corrupted or malformed .htaccess file can produce a blank response, though it more commonly causes 500 errors instead. Via FTP, rename .htaccess to .htaccess_backup in your WordPress root directory. WordPress will temporarily lose its permalink rules, but if a bad rewrite rule was causing the blank screen, the site will now load.

To regenerate a clean .htaccess once the site is accessible: go to Settings → Permalinks and click Save Changes. WordPress writes a fresh file with correct rewrite rules automatically.

Step 6: Disable the Object Cache

If you’re using a caching plugin (WP Rocket, W3 Total Cache) or Redis object cache, a stale or corrupt cache entry can cause WSOD on specific pages. Temporarily add this to wp-config.php:

define('WP_CACHE', false);

Then delete your cache plugin’s cached files, usually from the plugin’s dashboard, or by deleting /wp-content/cache/ via FTP. If the white screen disappears, the cache was serving a broken response.

Step 7: Check Server Error Logs

Your hosting control panel captures PHP errors independently of WordPress. In cPanel, go to Metrics → Errors. On a VPS, check /var/log/apache2/error.log or /var/log/nginx/error.log. Look for any line containing PHP Fatal error; it’ll name the exact file and line number that crashed PHP.

Server error logs are often more complete than wp-content/debug.log because they capture errors that occur before WordPress even starts loading, which WP_DEBUG can’t catch.

Step 8: Fix File Permissions

Incorrect file permissions can prevent PHP from reading or executing WordPress files. The correct permissions are:

  • Directories: 755 (drwxr-xr-x)
  • Files: 644 (-rw-r--r--)
  • wp-config.php: 640 or 600 for extra security

Via FTP (FileZilla), right-click the WordPress root folder and set permissions recursively. Via SSH:

find /path/to/wordpress -type d -exec chmod 755 {} \;
find /path/to/wordpress -type f -exec chmod 644 {} \;

I see this most often after a manual file transfer or server migration, where ownership and permission defaults don’t carry over correctly.

WSOD in Specific Scenarios

White screen in wp-admin only (frontend works)

If the frontend loads normally but wp-admin is blank, the problem is isolated to an admin-only plugin or an admin hook in a plugin or theme. Start by deactivating the most recently updated or installed plugin. If you added code to functions.php recently, a syntax error there would crash the admin without affecting a frontend that’s already cached.

White screen after a WordPress core update

A core update that fails partway through leaves wp-admin and wp-includes in a mixed state, part old version, part new. Download that same WordPress version from wordpress.org, connect via FTP, and upload fresh wp-admin and wp-includes folders. That replaces every core file without touching your content, plugins, themes, or database.

White screen after installing or updating a plugin

If the timing lines up, the white screen showed up right after you installed or updated a specific plugin, that plugin is almost certainly your cause. Rename its folder inside /wp-content/plugins/ over FTP to deactivate it without needing wp-admin access at all. The site should come back immediately.

White screen on one page only

A blank screen on a single post or page, but not sitewide, is almost always a problem with a specific block or shortcode on that page. Edit the page in wp-admin, switch to the Code Editor view, and remove content sections one at a time until the page renders again. Whatever breaks it, usually a page builder widget, an embed, or a complex shortcode, will point you straight to the offending plugin.

How to Prevent WSOD from Happening Again

Most WSOD incidents trace back to one habit: applying updates directly to a live site without testing them first. The WordPress staging guide covers setting up a staging environment, and testing plugin and theme updates there before they touch production is honestly the single most effective thing you can do to prevent this. If a plugin breaks on staging, you fix it there. Your live site never goes down.

Keep current backups before every update. The backup and disaster recovery guide covers setting up automated backups so you always have a restore point if something breaks. For the wider range of WordPress errors beyond WSOD, common WordPress errors is worth a look. Keeping PHP current helps too, since it cuts down on a whole class of memory and execution bugs; the PHP 8.5 upgrade guide walks through the process on Ubuntu servers.

If you’d rather not manage all this yourself, a WordPress maintenance plan covers proactive monitoring, managed updates tested on staging first, and daily backups, so a WSOD gets caught and fixed before any visitor sees a blank screen.

If None of These Fixes Work

If you’ve worked through all eight steps and the white screen persists, the underlying cause is likely environment-specific: a server-level PHP configuration conflict, a compatibility issue between WordPress and your hosting environment’s PHP version, or a corrupted database table. These require hands-on server access and aren’t diagnosable from WordPress’s own tools.

This is exactly the situation the WordPress bug fix and site rescue service is built for: white screen diagnosis and resolution, usually same-day. If your site takes orders, bookings, or leads and you need it back online now, that’s a faster path than working through escalating rounds of server debugging on your own.

Frequently asked questions

The WordPress white screen of death (WSOD) is when your WordPress site displays a completely blank white page with no content or error message. It happens when PHP hits a fatal error, such as running out of memory or executing malformed code, and stops before WordPress can output any HTML. Because WordPress hasn't started outputting content yet, the browser receives an empty response and renders a blank page. It's called the white screen of death because it gives you no information about what went wrong, which makes diagnosis harder than a standard PHP error page would.

The fastest path to a fix: (1) add define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); to wp-config.php and check /wp-content/debug.log for the exact PHP error; (2) if the log shows a memory error, add define('WP_MEMORY_LIMIT', '256M'); to wp-config.php; (3) if it names a plugin file, connect via FTP, rename /wp-content/plugins/ to disable all plugins, confirm the site loads, then reactivate plugins one at a time to find the culprit. Most WSOD cases resolve at step 2 or 3.

Plugin and theme updates occasionally introduce PHP fatal errors: code in the update that works in isolation but crashes on your specific server environment or in combination with other plugins. A WordPress core update can also fail mid-way, leaving core files in a mixed state. After an update produces WSOD, the immediate fix is to deactivate whichever item was just updated, via FTP, by renaming its folder in /wp-content/plugins/ or /wp-content/themes/. For core update failures, re-uploading the wp-admin and wp-includes folders from a fresh WordPress download of the same version fixes the corrupted state.

No. WSOD is a runtime error: PHP fails to execute and produce output, but your WordPress database and files stay completely intact. No content is deleted or corrupted by the error itself. Your posts, pages, settings, and uploaded media are all still in the database and on the server; the blank screen is simply PHP failing to render them. Fixing WSOD, through debug mode, plugin deactivation, or a memory limit increase, immediately restores the site without any content recovery needed.

Most WSOD fixes need either wp-admin access or FTP access to the server files. If you have neither, your hosting provider's file manager (available in cPanel or Plesk) can do everything FTP can: rename plugin/theme folders, edit wp-config.php, and view error logs. Managed WordPress hosts (Kinsta, WP Engine, Cloudways) also provide server-level tools in their dashboards. If you have no access at all, your hosting provider's support team can rename folders or restore from a backup; contact them directly.

Three practices prevent the vast majority of WSOD incidents: (1) test plugin and theme updates on a staging site before applying them to production, since a staging environment is an identical copy of your live site where updates can't affect visitors; (2) maintain automated backups so you can restore in minutes if an update breaks something, rather than spending hours debugging; (3) keep your PHP version current, since PHP 8.1+ reduces a class of memory and execution bugs that older versions are prone to. Combine staging, automated backups, and current PHP, and unrecoverable WSOD incidents become essentially a non-issue.

Photo of Ajay Khandal

Written by Ajay Khandal

I'm a freelance WordPress developer with 14+ years of experience building, fixing, and speeding up sites for businesses, agencies, and store owners across the US, UK, Europe, and Australia. I specialize in custom themes, WooCommerce, and performance — the kind of work that shows up as faster load times and fewer support tickets. No account managers, no outsourced tickets — you work directly with me, with replies typically inside 5 hours.

Work with me →