Don’t Panic. Diagnose.
Your WordPress site just went down. Maybe it’s a white screen. Maybe a 500 Internal Server Error. Maybe it just loads forever.
WordPress sites go down all the time. 90% of crashes have the same handful of causes. Here’s how to figure out what went wrong and fix it.
Step 1: Confirm It’s Actually Down
Before debugging, rule out the obvious:
- Check from another device/network - might be your ISP or DNS cache
- Try incognito mode - rules out browser cache
- Check your hosting status page - the server itself might be down
- Try
curl -I https://yoursite.com- see the actual HTTP response code
If you get a 200 but the site looks broken, that’s a theme/frontend issue. If you get 500, 502, or 503, keep reading.
Step 2: Check the Error Log
If you have SSH access:
tail -50 /var/log/apache2/error.log
# or
tail -50 /var/log/nginx/error.log
# or WordPress-specific:
tail -50 /var/www/yoursite/wp-content/debug.log
No SSH? Check your hosting control panel for error logs. Most hosts have them in cPanel or their custom dashboard.
The error log almost always tells you exactly what’s wrong: -
PHP Fatal error: Allowed memory size exhausted - memory
limit - PHP Fatal error: Cannot redeclare function - plugin
conflict - Error establishing a database connection -
database problem - PHP Parse error: syntax error -
corrupted file
Step 3: The Plugin Test
Plugin conflicts cause more WordPress crashes than anything else. To test:
If you have SSH/FTP access:
cd /var/www/yoursite/wp-content
mv plugins plugins_disabled
mkdir plugins
Reload the site. If it works, a plugin caused the crash. Now:
rm -rf plugins
mv plugins_disabled plugins
Then activate plugins one at a time through wp-admin until the crash returns. That’s your culprit.
If you have WP-CLI:
wp plugin deactivate --all
# Site works? Reactivate one at a time:
wp plugin activate plugin-name
Step 4: Check wp-config.php
If renaming the plugins folder didn’t help, check wp-config.php. This is the file that breaks sites most often when edited by hand.
- Check for syntax errors (missing semicolons, unclosed quotes)
- Verify database credentials - did the DB password change?
- Check for recent edits - was anyone in this file recently?
Common gotcha: copying wp-config.php from another environment and forgetting to update the database host, name, or password.
Step 5: Check the Database
If you see “Error establishing a database connection”:
- Verify MySQL is running:
mysqladmin -u root -p status - Test the credentials:
mysql -u wp_user -p wp_database - Check disk space:
df -h- databases can’t write if the disk is full - Repair tables: Add
define('WP_ALLOW_REPAIR', true);to wp-config.php, then visityoursite.com/wp-admin/maint/repair.php
Remove that line after repair.
Step 6: Check PHP Memory
If the error log shows memory exhaustion:
Add to wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
If this doesn’t help, the real problem is a plugin or theme consuming unreasonable memory. The memory increase is a band-aid. Find and fix the actual leak.
Step 7: Switch to a Default Theme
If plugins aren’t the cause, the theme might be:
wp theme activate twentytwentyfour
Or via FTP - rename your active theme’s folder. WordPress will fall back to a default theme.
Step 8: Check File Permissions
Wrong file permissions can cause 500 errors:
# Standard WordPress permissions
find /var/www/yoursite -type d -exec chmod 755 {} \;
find /var/www/yoursite -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
Step 9: Reinstall WordPress Core
If nothing else works, the core files might be corrupted:
wp core download --force --skip-content
This replaces WordPress core files without touching wp-content. Your plugins, themes, and uploads stay intact. Fixes corruption from failed updates or malware.
Quick Recovery Table
| Symptom | Most Likely Cause | Quick Fix |
|---|---|---|
| White screen | Plugin conflict or PHP fatal | Disable all plugins |
| 500 error | Memory, permissions, or .htaccess | Check error log first |
| Database connection error | Wrong credentials or MySQL down | Test credentials manually |
| “Briefly unavailable” | Failed update | Delete .maintenance file |
| Redirect loop | Wrong WP_HOME/WP_SITEURL | Fix in wp-config.php |
| Login redirect loop | Cookie/cache issue | Clear cookies, check HTTPS |
When You Don’t Want to Debug It Yourself
Sometimes the site is down, it’s 2 AM, and you have a client meeting in 6 hours. You don’t want to SSH in and methodically test plugins.
The done-for-you service exists for exactly this. Send your site URL, get it diagnosed and fixed within 1 hour. $100 one-time. Money held in escrow until you verify the fix works. Automatic backup before any changes.
No subscription. No retainer. Just a broken site made working again.
Prevention
Most WordPress crashes are preventable:
- Keep plugins updated - but not blindly on production. Test on staging first.
- Limit the plugin count - each plugin is a potential failure point. Can you consolidate?
- Monitor database health - autoload bloat and slow queries degrade over time
- Use a config manager instead of hand-editing wp-config.php
- Automate backups - daily, tested, stored off-server
WP Multitool handles the monitoring side - database health, slow query detection, autoload analysis, frontend optimization. 13 modules, zero overhead when disabled.
The best time to fix performance problems is before they take the site down.