A WordPress site going down is stressful, but the causes are predictable. Nearly every outage comes from the same short list. Work through this checklist in order - it goes from the most likely and easiest to check, to the rarer causes.
Step 0: Confirm it's really down
Check from outside your own network with the free website checker. If it loads there, the problem is your connection, DNS cache or browser. (How to tell if a site is down for everyone.) Note the exact status code and error message - you'll need them below.
Match the symptom
| What you see | Most likely cause | Jump to |
|---|---|---|
| "There has been a critical error on this website" or a blank white page | PHP fatal error in a plugin or theme | Step 2 |
| "Error establishing a database connection" | Database down or wrong credentials | Step 3 |
| "Briefly unavailable for scheduled maintenance" | An update didn't finish | Step 1 |
| Browser security warning | Expired SSL certificate | Step 4 |
| 500, 502, 503, 504, 508 | Server, PHP or resource limits | Step 5 |
| Site loads but shows spam or redirects elsewhere | Compromised site | Step 6 |
Step 1: Stuck in maintenance mode
WordPress creates a .maintenance file in the site root during updates and deletes it when they finish. If an update times out, the file stays. Delete it over SFTP or with your host's file manager, reload, then re-run the update that failed from Dashboard → Updates.
Step 2: Plugin or theme errors (the most common cause)
- Check your inbox. Since WordPress 5.2, a fatal error triggers an email to the admin address naming the plugin or theme, with a recovery mode link that lets you log in and deactivate it.
- Turn on logging if there's no email. In
wp-config.php, above "That's all, stop editing":define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Reload the site, then openwp-content/debug.log. The fatal error names the file, which names the plugin. - Disable the culprit. Rename its folder in
wp-content/plugins/. If you can't tell which one, rename the wholepluginsfolder toplugins-offto disable them all. - Theme problem? Rename the active theme's folder in
wp-content/themes/. WordPress falls back to a default theme if one is installed. - With WP-CLI it's quicker:
wp plugin list --status=active wp plugin deactivate plugin-slug wp plugin deactivate --all # nuclear option
Turn WP_DEBUG off again when you're done.
Step 3: "Error establishing a database connection"
- Compare
DB_NAME,DB_USER,DB_PASSWORDandDB_HOSTinwp-config.phpwith your hosting panel. Hosts sometimes rotate passwords or change hosts during migrations. - Check whether MySQL/MariaDB is running (on a VPS:
systemctl status mysql). A full disk or an out-of-memory kill is a common reason it stops. - If WordPress reports corrupted tables, add
define( 'WP_ALLOW_REPAIR', true );, visit/wp-admin/maint/repair.php, and remove the line afterwards.
Step 4: SSL certificate or domain expired
A browser warning like NET::ERR_CERT_DATE_INVALID means the certificate expired. Renew it in your hosting panel (most use Let's Encrypt), or check why auto-renewal failed - a DNS change or a CDN in front of the site is the usual reason. If the domain itself expired, the registrar shows a parking page: renew it immediately, as there's a limited grace period. How to check an SSL expiry date.
Step 5: Server errors and resource limits
- 500: often a broken
.htaccess. Rename it, then go to Settings → Permalinks and click Save to regenerate it. Also check the PHP error log. - Memory exhausted: "Allowed memory size exhausted" in the log. Raise
WP_MEMORY_LIMITto 256M, then find what's using it. - 502/504: PHP-FPM is down or too slow. See our guides to 502 and 504.
- 503/508 on shared hosting: you've hit CPU or process limits. Aggressive bots and
wp-cronon busy sites are the usual cause. Replace wp-cron with a real cron job (define( 'DISABLE_WP_CRON', true );, then runwp cron event run --due-nowevery 5 minutes) and add page caching.
Step 6: Hacked or redirecting
Spam pages, redirects to other domains or unknown admin users mean the site is compromised. Take it offline, restore a clean backup from before the infection, update WordPress, all plugins and themes, and change every password and the salts in wp-config.php. Remove plugins you don't use - abandoned plugins are the most common way in.
Keep it from happening again
- Update on a staging copy first, or at least take a backup right before updating.
- Keep plugins lean. Every plugin is code you run and have to trust.
- Monitor more than the homepage. A cached homepage can load while
wp-login.php,wp-adminor WooCommerce checkout is broken. Monitor each separately. - Watch the certificate and the domain, the two outages that are completely preventable.
Our tutorial Monitor a WordPress site in 5 minutes sets up uptime, SSL and response-time monitoring for all of these. Upmonora also detects your WordPress version, theme and plugins and tells you when they change - handy when you're trying to work out which update broke the site.
Frequently asked questions
Why is my WordPress site suddenly down?
The most common causes are a plugin or theme update that caused a fatal PHP error, a database connection problem, an expired SSL certificate or domain, the hosting account hitting resource limits, or an update that left the site in maintenance mode.
How do I fix "There has been a critical error on this website"?
Check the email WordPress sends to the admin address - it usually names the plugin or theme at fault and includes a recovery-mode link. If there is no email, enable WP_DEBUG_LOG, reload the page, and read wp-content/debug.log.
How do I disable all WordPress plugins without admin access?
Using SFTP or your host's file manager, rename wp-content/plugins to plugins-off. WordPress deactivates them all. Rename it back, then re-activate plugins one by one to find the culprit.
How do I know when my WordPress site goes down?
Use an external uptime monitor that checks your homepage (and ideally wp-login.php and your checkout) every minute and alerts you by email, Slack or Teams. Upmonora's free plan covers 5 monitors.