WordPress Site Keeps Crashing: How to Fix It

One moment your WordPress site is fine. The next, it is showing a white screen, a 500 error, or a database connection error. Maybe it crashes once a week. Maybe it happens several times a day. Either way, every minute of downtime means lost visitors, lost revenue, and lost credibility.
WordPress crashes are not random. They always have a cause, and once you find that cause, the fix is usually straightforward. This guide will walk you through the most common reasons WordPress sites crash and give you a systematic approach to diagnosing and resolving each one.
How to Identify What Type of Crash You Are Experiencing
The error message (or lack of one) tells you a lot about the underlying cause.
White Screen of Death (WSOD)
A completely blank white page with no error message. This is typically caused by a PHP fatal error, a memory limit issue, or a plugin/theme conflict.
500 Internal Server Error
A generic server error that means something went wrong, but the server cannot tell you exactly what. Common causes include corrupted .htaccess files, PHP version incompatibilities, and server resource limits.
Error Establishing a Database Connection
WordPress cannot communicate with its database. This can mean the database server is down, your database credentials have changed, or the database has become corrupted.
503 Service Unavailable
Your server is temporarily unable to handle requests, usually because it is overloaded. This often happens during traffic spikes or when a poorly coded plugin consumes too many resources.
Memory Exhausted Error
You will see a message like: Fatal error: Allowed memory size of X bytes exhausted. This means a script is trying to use more memory than your server allows.
Cause 1: Plugin Conflicts
Plugins are the number one cause of WordPress crashes. With thousands of developers building plugins independently, conflicts are inevitable.
Why This Happens
- Two plugins try to modify the same functionality
- A plugin is not compatible with your WordPress version
- A plugin has a bug that causes a fatal error
- A plugin update introduces a breaking change
How to Diagnose It
If you can access your dashboard:
- Go to Plugins and deactivate all plugins
- Check if the site works
- Reactivate plugins one at a time, checking the site after each
- The plugin that causes the crash when activated is the culprit
If you cannot access your dashboard:
- Connect to your server via FTP or your hosting file manager
- Navigate to
wp-content/plugins/ - Rename the
pluginsfolder toplugins_disabled - Check if the site loads (this effectively deactivates all plugins)
- If the site works, rename the folder back to
plugins - Rename individual plugin folders one at a time to identify the problematic one
How to Fix It
- Update the plugin to the latest version (it may have been fixed)
- Contact the plugin developer with details about the conflict
- Find an alternative plugin that provides the same functionality
- Remove the plugin entirely if it is not essential
For a more robust maintenance approach, check out our guide on how to manage and update WordPress safely.
Cause 2: Insufficient Hosting Resources
Your hosting plan has limits on CPU, memory, database connections, and storage. When your site exceeds these limits, it crashes.
Signs This Is Your Problem
- Crashes happen during peak traffic hours
- Your hosting provider has sent you resource limit warnings
- The site is slow before it crashes completely
- You are on a cheap shared hosting plan ($3-10/month)
- Your site has grown significantly since you first set up hosting
How to Diagnose It
- Check your hosting control panel for resource usage graphs
- Review error logs for messages about resource limits
- Ask your hosting provider if your account has hit any limits recently
How to Fix It
Short-term fixes:
- Enable caching to reduce server load (install WP Super Cache or W3 Total Cache)
- Optimize your database to reduce query overhead
- Disable resource-heavy plugins during peak hours
Long-term solutions:
- Upgrade your hosting plan. Move from shared hosting to VPS or managed WordPress hosting.
- Choose a host optimized for WordPress. Managed WordPress hosts like SiteGround, Cloudways, or WP Engine are configured specifically for WordPress performance.
- Use a CDN to offload static files from your server.
For a detailed comparison of hosting options, read our guide on WordPress hosting compared.
Cause 3: PHP Memory Limit Too Low
WordPress and its plugins require memory to run. If the PHP memory limit is set too low, your site will crash when it tries to do anything memory-intensive.
Signs This Is Your Problem
- You see "Allowed memory size exhausted" errors
- Crashes happen when performing specific tasks (uploading images, running reports, importing data)
- The site crashes during WordPress or plugin updates
How to Fix It
Step 1: Increase the WordPress memory limit. Add this line to your wp-config.php file:
define('WP_MEMORY_LIMIT', '256M');
Step 2: Increase the PHP memory limit. Edit your php.ini file (if you have access) or add to .htaccess:
php_value memory_limit 256M
Step 3: Contact your hosting provider. Some hosts restrict memory limits on shared plans. Ask if they can increase it, or consider upgrading to a plan with higher limits.
Step 4: Identify memory-hungry plugins. If you keep hitting memory limits even after increasing them, a specific plugin is likely consuming too much memory. Use the Query Monitor plugin to identify which plugins are using the most resources.
Cause 4: Corrupted Core Files
WordPress core files can become corrupted during failed updates, server errors, or hack attempts.
Signs This Is Your Problem
- Crashes started immediately after a WordPress update
- You see errors referencing specific WordPress core files
- The site partially loads but with significant errors
How to Fix It
Step 1: Re-install WordPress core files. If you can access the dashboard, go to Dashboard > Updates and click "Reinstall version X.X.X."
Step 2: Manual reinstall via FTP. Download a fresh copy of WordPress from wordpress.org. Upload all files except wp-content and wp-config.php to your server, overwriting the existing files.
Step 3: Verify file permissions. After uploading, make sure file permissions are correct: 644 for files and 755 for directories.
Cause 5: Database Issues
WordPress relies entirely on its MySQL database. If the database is corrupted, overloaded, or misconfigured, the entire site goes down.
Signs This Is Your Problem
- "Error establishing a database connection" message
- Some pages load but others show database errors
- The site is extremely slow with database-heavy operations
- Crashes correlate with database-intensive activities (publishing posts, running WooCommerce)
How to Fix It
Step 1: Verify database credentials. Open wp-config.php and confirm that DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST are correct.
Step 2: Check if the database server is running. Contact your hosting provider or check your server management panel. Sometimes the MySQL service simply needs to be restarted.
Step 3: Repair the database. Add this line to wp-config.php:
define('WP_ALLOW_REPAIR', true);
Then visit yourdomain.com/wp-admin/maint/repair.php and click "Repair Database" or "Repair and Optimize Database." Remove the line from wp-config.php when done.
Step 4: Optimize the database. Use phpMyAdmin (accessible through your hosting panel) to optimize all database tables. Or install the WP-Optimize plugin for ongoing database maintenance.
Step 5: Increase max connections. If your database is running out of connections during traffic spikes, ask your hosting provider to increase the max_connections value.
Cause 6: Theme Issues
A poorly coded or incompatible theme can crash your entire site, especially after updates.
Signs This Is Your Problem
- Crashes started after switching or updating your theme
- The error messages reference theme files
- The admin dashboard works, but the front-end crashes
How to Fix It
Step 1: Switch to a default theme. If you can access the dashboard, go to Appearance > Themes and activate a default WordPress theme (like Twenty Twenty-Four).
If you cannot access the dashboard:
- Connect via FTP
- Navigate to
wp-content/themes/ - Rename your active theme folder (this forces WordPress to fall back to a default theme)
Step 2: Check for theme updates. If the theme developer has released an update, apply it. The crash may be a known bug that has been fixed.
Step 3: Contact the theme developer. Report the issue with specific error messages and your WordPress/PHP version. Good theme developers will investigate and provide a fix.
Cause 7: Traffic Spikes
A sudden influx of visitors can overwhelm a server that is not prepared for it. This can happen because of a social media post going viral, a seasonal rush, a press mention, or even a bot attack.
Signs This Is Your Problem
- Crashes correlate with specific events or times
- Your analytics show a traffic spike at the time of the crash
- The server recovers on its own once traffic subsides
- Your hosting provider reports high CPU or bandwidth usage
How to Fix It
Immediate response:
- Enable a CDN (Cloudflare free tier can be set up quickly)
- Enable page caching if not already active
- Temporarily disable resource-heavy features (comment sections, real-time search, complex queries)
Prevention for next time:
- Use a caching plugin (WP Super Cache, W3 Total Cache, or WP Rocket)
- Set up a CDN to distribute traffic across multiple servers
- Choose a hosting plan that can handle traffic spikes (autoscaling VPS or managed WordPress hosting)
- Set up uptime monitoring so you know immediately when the site goes down
Cause 8: Cron Job Overload
WordPress uses a built-in task scheduler called WP-Cron that runs maintenance tasks like publishing scheduled posts, checking for updates, and sending emails. On busy sites, WP-Cron can become a resource drain.
Signs This Is Your Problem
- Crashes happen at regular intervals
- Server logs show excessive wp-cron.php requests
- The site is slow or unresponsive during scheduled task times
How to Fix It
Step 1: Disable WordPress's built-in cron. Add this to wp-config.php:
define('DISABLE_WP_CRON', true);
Step 2: Set up a real server cron job. In your hosting control panel (cPanel), set up a cron job to call wp-cron.php at a specific interval (every 15 minutes is usually sufficient):
*/15 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
This gives you control over when cron tasks run instead of letting them fire on every page load.
Debugging: How to Find the Exact Error
When you are stuck and the cause is not obvious, enable WordPress debugging to see detailed error messages.
Step 1: Enable debug mode. Add these lines to wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
This writes all errors to a log file at wp-content/debug.log without displaying them to visitors.
Step 2: Reproduce the crash. Do whatever triggers the crash.
Step 3: Read the debug log. Open wp-content/debug.log and look for fatal errors. The log will tell you exactly which file and line number is causing the problem.
Step 4: Turn off debug mode when you are done troubleshooting by setting WP_DEBUG back to false.
Your Crash Recovery Action Plan
When your WordPress site crashes, follow this sequence:
- Check the error message to identify the type of crash
- Check your error logs (server error log and WordPress debug log)
- Deactivate all plugins to rule out plugin conflicts
- Switch to a default theme to rule out theme issues
- Check database connectivity by verifying credentials and testing the connection
- Review server resources (memory, CPU, disk space) through your hosting panel
- Restore from backup if manual troubleshooting does not resolve the issue
- Contact your hosting provider if you suspect a server-level issue
For ongoing stability and security, our guide on keeping your WordPress site secure and updated outlines a maintenance routine that prevents most crashes before they happen.
Preventing Future Crashes
The best crash is the one that never happens. Here is how to keep your WordPress site stable:
- Keep everything updated (WordPress core, plugins, themes, PHP version)
- Use quality plugins from reputable developers with active support
- Limit your plugin count to only what you actually need
- Test updates on a staging site before applying them to production
- Set up automated backups so you can always recover quickly
- Monitor uptime with a service like UptimeRobot (free) or Pingdom
- Choose appropriate hosting that matches your site's needs and traffic, and check out our WordPress performance optimization guide for a comprehensive setup
- Schedule regular maintenance (database optimization, log cleanup, security scans)
A WordPress site that is well-maintained and properly hosted rarely crashes. Invest a small amount of time each week in maintenance, and you will save yourself from the much larger headache of emergency troubleshooting.