How to Fix WordPress White Screen of Death (WSOD)

Step-by-step guide to diagnose and fix the WordPress White Screen of Death error with proven troubleshooting methods.

WordPress Expert
7 min
#troubleshooting#errors#debugging#wsod
How to Fix WordPress White Screen of Death (WSOD) - Featured image for Troubleshooting guide

The WordPress White Screen of Death (WSOD) is one of the most frustrating errors you can encounter. Your site appears completely blank with no error messages, leaving you wondering what went wrong. This guide will help you diagnose and fix this issue.

What is the White Screen of Death?

The White Screen of Death occurs when:

  • Your site displays a blank white page
  • No error messages appear
  • The admin area may or may not be accessible
  • Only certain pages may be affected

Common Causes

The WSOD typically happens due to:

  1. PHP memory exhaustion
  2. Plugin conflicts
  3. Theme issues
  4. PHP errors
  5. Corrupted WordPress core files
  6. Database connection problems

Before You Start

Before troubleshooting, ensure you have:

  • FTP/SFTP access to your server
  • cPanel or hosting control panel access
  • Recent backup of your site
  • Database access via phpMyAdmin

Enable WordPress Debugging

The first step is to see what error is actually occurring.

Enable WP_DEBUG

Edit your wp-config.php file:

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

This will:

  • Enable error reporting
  • Log errors to /wp-content/debug.log
  • Hide errors from public view

Check the Debug Log

# Via SSH, tail the debug log
tail -f /path/to/wordpress/wp-content/debug.log

# Or download via FTP and review locally

Look for:

  • Fatal errors
  • Memory exhausted messages
  • Plugin/theme errors
  • Database errors

Solution 1: Increase PHP Memory Limit

Memory exhaustion is a common cause of WSOD.

Method 1: wp-config.php

// Add to wp-config.php before "That's all, stop editing!"
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Method 2: php.ini

memory_limit = 256M
max_execution_time = 300
max_input_time = 300
post_max_size = 64M
upload_max_filesize = 64M

Method 3: .htaccess

php_value memory_limit 256M
php_value max_execution_time 300

Method 4: Contact Hosting Provider

If you can't edit these files or changes don't work, contact your host to increase PHP memory.

Solution 2: Deactivate All Plugins

Plugin conflicts are the #1 cause of WSOD.

Via FTP/SFTP

  1. Connect to your site via FTP
  2. Navigate to /wp-content/plugins/
  3. Rename the plugins folder to plugins-disabled
  4. Check if site loads
  5. If fixed, rename back to plugins
  6. Rename each plugin folder individually to identify the culprit
# Via SSH
cd /path/to/wordpress/wp-content
mv plugins plugins-disabled
# Test site
mv plugins-disabled plugins

Via Database

If you can't access FTP:

-- Deactivate all plugins via database
UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';

Via WP-CLI

# Deactivate all plugins
wp plugin deactivate --all

# Activate plugins one by one
wp plugin activate plugin-name

# Check status
wp plugin list

Solution 3: Switch to Default Theme

Theme issues can also cause WSOD.

Via FTP

  1. Navigate to /wp-content/themes/
  2. Rename your active theme folder (e.g., your-theme to your-theme-disabled)
  3. WordPress will automatically switch to a default theme
  4. Check if site loads

Via Database

-- Switch to Twenty Twenty-Three theme
UPDATE wp_options
SET option_value = 'twentytwentythree'
WHERE option_name = 'template'
OR option_name = 'stylesheet';

Via WP-CLI

# List available themes
wp theme list

# Activate default theme
wp theme activate twentytwentythree

Solution 4: Check File Permissions

Incorrect permissions can prevent PHP from executing properly.

Correct Permissions

# Set correct permissions recursively
find /path/to/wordpress -type d -exec chmod 755 {} \;
find /path/to/wordpress -type f -exec chmod 644 {} \;

# wp-config.php should be more restrictive
chmod 600 /path/to/wordpress/wp-config.php

Ownership Issues

# Ensure web server owns WordPress files
# Replace 'www-data' with your server's user
chown -R www-data:www-data /path/to/wordpress

# On some servers it might be 'apache' or 'nginx'
chown -R apache:apache /path/to/wordpress

Solution 5: Re-upload WordPress Core Files

Corrupted core files can cause WSOD.

Fresh Core Upload

  1. Download fresh WordPress from wordpress.org
  2. Extract the zip file
  3. Delete wp-content folder from extracted files
  4. Upload via FTP, overwriting existing files
  5. Important: Don't upload wp-config.php
# Via WP-CLI
wp core download --force --skip-content

Solution 6: Check Database Connection

Database issues can cause blank screens.

Verify Database Credentials

Check wp-config.php:

define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASSWORD', 'your_database_password');
define('DB_HOST', 'localhost'); // or your host IP

Test Database Connection

Create a test file db-test.php in your WordPress root:

<?php
$connection = mysqli_connect('localhost', 'db_user', 'db_pass', 'db_name');

if (!$connection) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($connection);
?>

Visit yoursite.com/db-test.php to test.

Repair Database

// Add to wp-config.php temporarily
define('WP_ALLOW_REPAIR', true);

Then visit: yoursite.com/wp-admin/maint/repair.php

Important: Remove this line after repair!

Solution 7: Check .htaccess File

Corrupted .htaccess can cause WSOD.

Reset .htaccess

  1. Rename .htaccess to .htaccess-backup
  2. Create new .htaccess with default WordPress rules:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
  1. Save and test site

Solution 8: Increase PHP Limits

Various PHP limits can cause WSOD.

Edit php.ini

max_execution_time = 300
max_input_time = 600
memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 64M

Via .htaccess

php_value max_execution_time 300
php_value max_input_time 600
php_value memory_limit 256M
php_value post_max_size 64M
php_value upload_max_filesize 64M

Solution 9: Check for Syntax Errors

PHP syntax errors in functions.php or plugins cause WSOD.

Common Syntax Errors

// Missing semicolon
echo "Hello World"

// Unclosed bracket
function my_function() {
    echo "test";
// Missing closing brace

// Extra closing bracket
function my_function() {
    echo "test";
}}

// Wrong quotes
echo 'It's broken'; // Should be: echo 'It\'s working';

Find Syntax Errors

# Check PHP syntax via command line
php -l /path/to/file.php

# Output will show line number of error

Solution 10: Contact Your Host

If none of these solutions work:

  1. Check server logs - Ask your host for PHP error logs
  2. Server issues - Memory limits, mod_security blocking requests
  3. PHP version - Incompatible PHP version with your theme/plugins
  4. Server resources - CPU/RAM exhaustion

Prevention Tips

Prevent WSOD from happening again:

Regular Maintenance

  • Test updates on staging site first
  • Keep backups - automated daily backups
  • Monitor errors - enable error logging
  • Update PHP - keep PHP version current
  • Quality plugins - only use reputable plugins
  • Code reviews - check custom code for errors

Development Best Practices

// Always check if function exists
if (!function_exists('my_custom_function')) {
    function my_custom_function() {
        // Your code
    }
}

// Use proper error handling
try {
    // Risky operation
} catch (Exception $e) {
    error_log('Error: ' . $e->getMessage());
}

// Check if class exists
if (class_exists('MyClass')) {
    $object = new MyClass();
}

Troubleshooting Checklist

Work through this checklist systematically:

  • Enable WordPress debugging
  • Check debug.log file
  • Increase PHP memory limit
  • Deactivate all plugins
  • Switch to default theme
  • Check file permissions
  • Re-upload WordPress core files
  • Verify database connection
  • Reset .htaccess file
  • Increase PHP execution limits
  • Check for syntax errors
  • Review server logs
  • Contact hosting support

Conclusion

The WordPress White Screen of Death can be intimidating, but it's almost always fixable. Start with the simple solutions (debugging, memory limit, plugins) before moving to more complex fixes.

Remember to:

  1. Always backup before making changes
  2. Change one thing at a time
  3. Document what you've tried
  4. Ask for help if needed

Most WSOD issues are caused by plugins or themes, so those should be your first targets. If you work through this guide systematically, you'll likely find and fix the issue.

Additional Resources


Still experiencing WSOD? Feel free to reach out for personalized assistance!

WordPress Expert

WordPress Expert

Expert WordPress & Shopify Developer

Senior full-stack developer with 10+ years experience specializing in WordPress, Shopify, and headless CMS solutions. Delivering custom themes, plugins, e-commerce stores, and scalable web applications.

10+ Years500+ Projects100+ Agencies