How to Fix the WordPress White Screen of Death

WordPress | Updated July 2026

The WordPress White Screen of Death is a blank page with no error message, and it is one of the most alarming problems a site owner runs into because it tells you nothing. On Ultra Web Hosting shared, VPS, and dedicated plans the cause is almost always a hidden fatal PHP error: a broken plugin, a bad theme edit, exhausted memory, or a PHP version mismatch. This guide shows you how to turn the error message back on, read it, and then work through every common cause in order until your site loads again.

Do Not Skip This

Narrow It Down Before You Start Changing Things

The fastest fix begins with one question: where is the screen blank? A site that is down everywhere points at a different cause than one where only the admin area breaks. Section 04 uses that split to tell you which cause below to try first, so you are not renaming folders at random.

  • Whole site blank: usually a plugin, memory, or the PHP version
  • Admin blank, front-end fine: usually a theme or an admin-only plugin
  • One page blank: usually that page's template or a shortcode plugin

01. What the White Screen of Death Actually Is

The White Screen of Death (WSOD) is what you get when PHP hits a fatal error and WordPress is configured to hide it. Instead of printing the error, the server returns an empty page, so your browser shows nothing but white. It is not a WordPress bug and it is not a hardware fault. It is a real PHP error that has been swallowed by the default production setting.

Because the message is hidden, the screen looks identical no matter what broke. A fatal error in a plugin, a call to a function that no longer exists after a PHP upgrade, and a script that ran out of memory all produce the same blank page. That is why the first real step is never "try a fix" but "make the error visible again."

Note

A true white screen is genuinely empty. If instead you see the text "There has been a critical error on this website," WordPress caught the error and switched on Recovery Mode. That is the same underlying problem with a friendlier face, and Section 11 covers the recovery email it sends. If you see a "500 Internal Server Error" page rather than a blank one, start with our companion guide on that error (ID 128) since the cause list overlaps but the diagnosis differs.

02. Back Up Before You Touch Anything

You are about to edit wp-config.php, rename folders, and possibly delete a .htaccess file. All of that is reversible if you keep copies. None of it is if you do not.

Copy These Two Files First

Before you change a single line, download a copy of wp-config.php and .htaccess from your site's root folder to your computer. These two files hold your database credentials and your rewrite rules; a mistake in either can take the whole site down on its own. If you have them saved locally, you can always paste the working version back. A full account backup through cPanel Backup Wizard is better still.

  1. Log in to cPanel and open File Manager.
  2. Navigate to your site's document root, usually public_html (or a subfolder if WordPress is in one).
  3. Right-click wp-config.php, choose Download, and save it somewhere safe.
  4. Do the same for .htaccess. If you do not see it, click Settings in the top-right of File Manager and enable Show Hidden Files (dotfiles).

03. Turn On Error Display with WP_DEBUG

This is the single most useful step in the whole guide. By default WordPress ships with debugging off, which is correct for a live site but useless when you are troubleshooting. Turning it on tells WordPress to record the real error instead of hiding it.

Open wp-config.php in File Manager (right-click, Edit). Find the line that reads /* That's all, stop editing! Happy publishing. */ and add the following above it. If you see an existing define('WP_DEBUG', false); line, replace it rather than adding a duplicate.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Here is what each line does:

  • WP_DEBUG switches debugging on so errors are generated instead of silently dropped.
  • WP_DEBUG_LOG writes every error to a file at wp-content/debug.log so you have a permanent record.
  • WP_DEBUG_DISPLAY set to false keeps the errors out of the visible page, so visitors do not see raw error text. You read the log instead.

Save the file and reload your site once to trigger the error. Then open wp-content/debug.log in File Manager and read the last few lines. A typical fatal error names the exact file:

PHP Fatal error:  Uncaught Error: Call to undefined function
  some_plugin_function() in
  /home/user/public_html/wp-content/plugins/bad-plugin/bad-plugin.php:212
Tip

The path in the error usually points straight at the culprit. A file under wp-content/plugins/bad-plugin/ means that plugin is the problem, so jump to Section 05. A path under wp-content/themes/your-theme/ points at the theme in Section 06. Read the log first and you often skip straight to the right fix.

Turn Debugging Back Off When You Are Done

Once the site is fixed, set WP_DEBUG back to false and delete wp-content/debug.log. Leaving debug logging on a live site fills the disk over time and can expose file paths. This is a troubleshooting switch, not a permanent setting.

04. Is It Front-End, Admin, or Both?

If the log did not give you a clear culprit, use this test to narrow the field before you start renaming folders. Try to reach both your public site and your admin dashboard at yourdomain.com/wp-admin, and note which are blank.

Admin Works, Front-End Blank

Start with the Theme

If you can still log in to /wp-admin but the public site is white, the problem is almost always in the active theme or a front-end plugin. You can fix this from inside the dashboard.

  • Switch to a default theme from Appearance in wp-admin
  • Deactivate plugins one by one from the Plugins screen
  • See Section 06 first, then Section 05

05. Cause 1: Plugin Conflict

A single plugin throwing a fatal error is the most common cause of a white screen by a wide margin. It often shows up right after you update a plugin, or after WordPress or PHP updates underneath one that has not kept up. If your debug.log named a file under wp-content/plugins/, you already know which one. If not, deactivate them all and re-enable one at a time.

If you can still reach /wp-admin, deactivate plugins from the Plugins screen. If the whole site is down, do it from File Manager instead by renaming the plugins folder:

  1. In cPanel File Manager, go to wp-content.
  2. Right-click the plugins folder and choose Rename. Rename it to plugins-off. This deactivates every plugin at once because WordPress can no longer find them.
  3. Reload your site. If it comes back, a plugin was the cause.
  4. Rename the folder back to plugins. All your plugins are now present but deactivated.
  5. In /wp-admin under Plugins, activate them one at a time, reloading the site after each. The plugin that brings the white screen back is your culprit.
  6. Leave that plugin deactivated. Update it, replace it, or contact its developer. Reactivate the rest.
Tip

Renaming the whole plugins folder is the fast way to confirm plugins are involved. To find the exact one without a full round of re-activation, rename plugin subfolders individually instead: go into wp-content/plugins and rename each plugin's own folder one by one, reloading after each, until the site recovers. The last folder you renamed holds the broken plugin.

06. Cause 2: Theme Problem

If plugins were not the cause, or your debug.log pointed at a file under wp-content/themes/, the active theme is next. This is common after editing theme files directly (a stray character in functions.php is a classic) or after a theme update. Forcing WordPress onto a default theme rules it in or out.

From inside /wp-admin, just go to Appearance > Themes and activate a default theme such as Twenty Twenty-Four. If the site recovers, your theme was the problem. If the dashboard is also down, do it by renaming the folder:

  1. In File Manager, open wp-content/themes.
  2. Confirm a default theme is present (for example twentytwentyfour). If none is, download one from wordpress.org and upload it here first.
  3. Rename your active theme's folder, for example my-theme to my-theme-off. WordPress cannot find the active theme, so it falls back to the newest available default automatically.
  4. Reload your site. If it loads on the default theme, the fault is in your theme.
Do Not Edit Theme Files Directly

If a bad edit to functions.php caused this, that is a sign to stop editing the parent theme directly. Use a child theme so your changes survive updates and a broken edit only takes down the child, never the whole site. If you had a recent working copy of the file, paste it back to recover fast.

07. Cause 3: PHP Memory Exhaustion

If debug.log contains a line like Allowed memory size of 268435456 bytes exhausted, WordPress ran out of memory mid-request and PHP killed the script, leaving a blank page. This tends to happen on media-heavy pages, complex page builders, or during imports and backups. The fix is to raise the memory ceiling.

First, try WordPress's own limit. In wp-config.php, add this above the "stop editing" line:

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

WP_MEMORY_LIMIT covers normal front-end requests; WP_MAX_MEMORY_LIMIT covers heavier admin tasks like image processing. If the white screen clears, memory was the cause.

If that alone does not hold, raise the PHP limit at the server level through cPanel, which overrides the WordPress constant:

  1. In cPanel, open MultiPHP INI Editor (under the Software section).
  2. Select your domain from the dropdown.
  3. Find memory_limit and raise it, for example to 256M.
  4. Click Apply and reload your site.
Tip

The same cPanel PHP settings control related limits that cause their own failures, such as upload_max_filesize, post_max_size, and max_execution_time. If your white screen appears only when uploading or importing large files, those limits are worth raising too. See our guide on changing PHP limits and max upload size (ID 192). Persistent memory pressure on a busy site can also mean it is time to look at performance tuning (ID 276).

08. Cause 4: Corrupted Core Files

Less common, but it happens: a WordPress update that was interrupted, an incomplete upload, or a file damaged by a failed edit can corrupt a core file and blank the site. Because the WordPress core is identical on every install, you can safely replace it with a fresh copy without touching your content, which lives in the database and in wp-content.

  1. Download a fresh copy of WordPress from wordpress.org/download and unzip it on your computer.
  2. From that fresh copy, upload only the wp-admin and wp-includes folders to your site's root, overwriting the existing ones. Do not touch wp-content or wp-config.php; those hold your site.
  3. In File Manager you can upload the two folders as a zip and use Extract, choosing to overwrite when prompted.
  4. Reload your site.
Never Overwrite wp-content or wp-config.php

Replacing wp-admin and wp-includes is safe because they contain only stock WordPress code. Overwriting wp-content would wipe your themes, plugins, and uploads, and overwriting wp-config.php would erase your database connection. Replace only those two core folders. If an extraction fails with a PCLZIP error, see our note on that error (ID 429).

09. Cause 5: A Broken .htaccess

A corrupted .htaccess file, often from a plugin that writes rewrite or caching rules, can produce a blank page or a redirect loop that looks like one. Testing this is quick: rename the file so WordPress ignores it, then regenerate a clean one.

  1. In File Manager, make sure hidden files are visible (Settings > Show Hidden Files).
  2. In your site root, rename .htaccess to .htaccess-old.
  3. Reload your site. If it comes back, the old .htaccess was the problem.
  4. Log in to /wp-admin, go to Settings > Permalinks, and click Save Changes without changing anything. WordPress writes a fresh, correct .htaccess for you.
  5. Confirm the site still loads, then delete .htaccess-old.
Note

If your site is in a subfolder or you run custom rules (a caching plugin, a security plugin, forced HTTPS), those rules live in .htaccess too. Re-saving permalinks restores only the standard WordPress block. Any plugin that manages its own rules will rewrite them the next time you save its settings.

10. Cause 6: PHP Version Mismatch

If the white screen appeared right after a WordPress, plugin, or theme update, and none of the above fixed it, the PHP version is a strong suspect. Modern WordPress and many plugins require a recent PHP release. Running on an old version (or a brand-new one a plugin has not caught up with) throws fatal errors that blank the page. Your debug.log often shows this as Call to undefined function or a syntax error.

  1. In cPanel, open MultiPHP Manager (under the Software section).
  2. Tick the checkbox next to the affected domain.
  3. From the PHP Version dropdown, choose a current, supported release. For current WordPress, PHP 8.1 or 8.2 is a safe target.
  4. Click Apply and reload your site.
  5. If a newer PHP version caused the break with an older plugin, step back one minor version instead, then plan to update the plugin.
Tip

Changing the PHP version is a two-way test: too old breaks modern code, too new breaks legacy code. If one version white-screens, try the neighbour. Our full walk-through of the PHP version switcher is in the guide on changing your PHP version (ID 425). If none of the six causes above cleared the screen and the error text mentions unfamiliar files or injected code, treat it as a possible compromise and see our guide on cleaning a hacked WordPress site (ID 478).

11. Recovery Mode and Restoring a Backup

Since WordPress 5.2, a fatal error does not always leave a pure white screen. Often WordPress catches the error, shows the message "There has been a critical error on this website," and emails the site administrator. That email is your shortcut.

  1. Check the inbox of your WordPress admin email address for a message from WordPress about a technical problem.
  2. The email names the plugin or theme that failed and includes a special Recovery Mode login link.
  3. Click that link to log in to a stripped-down dashboard where the broken component is paused, so you can deactivate or update it safely.

If the admin email is wrong or no message arrived, fall back to the manual steps above. And if you have worked through every cause and the site still will not load, the cleanest path is to restore the last known-good backup.

When to Restore Instead of Repair

If the white screen followed a change you cannot undo, or the files look damaged beyond a simple fix, restoring a backup is faster and safer than chasing the error further. Restore from your most recent working backup, then re-apply the update or change more carefully. Every Ultra Web Hosting plan keeps automatic backups, and you can roll back from cPanel; see our guide on restoring from a backup (ID 467).

Still Staring at a Blank Page?

If you have turned on WP_DEBUG, worked through the causes, and the screen is still white, our support team can read the error log on the server and pinpoint the fault for you. Send us the domain and the last few lines of your debug.log and we will take it from there.

Open a Support Ticket

Quick Recap: The White Screen in Six Steps

If you only remember six things from this guide, remember these:

  1. Back up wp-config.php and .htaccess before you change anything.
  2. Turn on WP_DEBUG and WP_DEBUG_LOG in wp-config.php and read wp-content/debug.log to see the real error.
  3. Narrow it down: whole site down points at plugins, memory, or PHP; admin-only points at the theme.
  4. Deactivate plugins by renaming the folder, then re-enable one at a time to find the culprit.
  5. Switch to a default theme, raise the memory limit, and check the PHP version in cPanel.
  6. Use Recovery Mode or restore a backup if the manual fixes do not clear the screen.

Last updated July 2026 · Browse all WordPress articles

  • 0 Users Found This Useful

Was this answer helpful?

Related Articles

Plugins on WordPress

WordPress | Updated 2026 WordPress plugins extend your site's functionality. You can install...

504 Error - Are You Sure You Want to Do This?

WordPress | Updated March 2026 The "Are you sure you want to do this?" message in WordPress...

How to Fix Error Establishing a Database Connection in WordPress

WordPress | Updated July 2026 "Error establishing a database connection" is the WordPress...

How to Fix the WordPress Memory Exhausted Fatal Error

WordPress | Updated July 2026 The "Allowed memory size exhausted" fatal error is one of the...

How to Fix WordPress Stuck in Maintenance Mode

WordPress | Updated July 2026 If every page of your site, including wp-admin, now reads...



Save 30% on web hosting - Use coupon code Hosting30