
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:
- PHP memory exhaustion
- Plugin conflicts
- Theme issues
- PHP errors
- Corrupted WordPress core files
- 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
- Connect to your site via FTP
- Navigate to
/wp-content/plugins/ - Rename the
pluginsfolder toplugins-disabled - Check if site loads
- If fixed, rename back to
plugins - 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
- Navigate to
/wp-content/themes/ - Rename your active theme folder (e.g.,
your-themetoyour-theme-disabled) - WordPress will automatically switch to a default theme
- 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
- Download fresh WordPress from wordpress.org
- Extract the zip file
- Delete
wp-contentfolder from extracted files - Upload via FTP, overwriting existing files
- 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
- Rename
.htaccessto.htaccess-backup - Create new
.htaccesswith 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
- 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:
- Check server logs - Ask your host for PHP error logs
- Server issues - Memory limits, mod_security blocking requests
- PHP version - Incompatible PHP version with your theme/plugins
- 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:
- Always backup before making changes
- Change one thing at a time
- Document what you've tried
- 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
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.

