Diagnosing and fixing a WordPress site that's down

A systematic guide to troubleshooting WordPress downtime, covering hosting and DNS checks, plugin and theme conflicts, database issues, server errors, malware and resource limits.

Diagnosing and fixing a WordPress site that's down

When your WordPress site stops loading, the cause could be anything from an expired domain to a corrupted plugin to a crashed database server. "My site is down" covers a wide range of symptoms: a completely blank page, a specific error message (like a 500 error or a database connection error), a browser security warning, unexpected redirects or a page that simply never finishes loading.

The key to getting back online quickly is working through the possibilities methodically rather than changing things at random. This guide takes you through the most common causes of WordPress downtime in a logical order, starting with the quickest checks and moving on to more involved fixes.

Confirm the site is actually down

Before you start troubleshooting your server or WordPress configuration, make sure the site is genuinely down and not just inaccessible from your location.

Clear your browser cache and cookies for the domain, then try loading the site again. Test in an incognito or private browsing window. Try from a different device or a different network (for example, switch from Wi-Fi to mobile data). If you're using a VPN, try disabling it.

You can also use an online status-checking tool to see whether the site is down for everyone or just for you. Search for "is my site down" and you'll find several free options. If the site loads for others but not for you, the issue is likely your local DNS cache, your ISP or a network-level block rather than a problem with your server.

Check your hosting provider

If the site is genuinely down for everyone, start with your hosting provider. Check their status page for any reported outages, maintenance windows or infrastructure issues. If there's nothing listed, contact their support team with a description of the error you're seeing and when it started.

Common hosting-level causes of downtime include server maintenance or reboots, a crashed web server or MySQL service, your account being suspended (often due to a billing issue, resource overuse or a terms-of-service violation) and a PHP or MySQL version change that has broken compatibility with your site.

Your hosting provider has access to server logs and configuration that you can't see from WordPress, so it's always worth checking with them early in the process.

Check your domain and DNS

If your hosting provider confirms that the server is running normally, the problem may be with your domain or DNS configuration.

Verify that your domain registration hasn't expired. An expired domain is a surprisingly common cause of sudden downtime. Log into your domain registrar and check the expiry date and renewal status.

Check that your DNS records are pointing to the correct server. The A record for your domain should contain the IP address of your hosting server. If you recently changed hosting providers or made DNS changes, the records may be pointing to the wrong server, or DNS propagation may still be in progress (which can take up to 48 hours).

Your registrar or hosting provider's control panel will show your current DNS records. If you're not sure what your A record should be set to, your hosting provider can confirm the correct IP address.

Check your SSL certificate

If visitors are seeing a browser security warning (such as "Your connection is not private" or "NET::ERR_CERT_DATE_INVALID") rather than your site content, your SSL certificate may have expired or be misconfigured.

Click the padlock icon (or the warning icon) in your browser's address bar to view the certificate details and check the expiry date. If the certificate has expired, your hosting provider may renew it automatically, or you may need to renew it manually through your hosting control panel or certificate provider.

If you recently moved your site to a new server or changed your domain, you may need to issue a new SSL certificate for the new configuration.

Identify the error

If the server is running and the domain is resolving correctly, the next step depends on what error you're seeing. Different errors have different causes and fixes:

If you're seeing "Error establishing a database connection", the problem is with your database credentials, the MySQL server or a corrupted database table. See our detailed guide to fixing the database connection error for step-by-step instructions.

If you're seeing a 500 internal server error or a blank white page, a plugin conflict, memory exhaustion, a corrupted .htaccess file or a PHP error is the most likely cause. See our guide to fixing the 500 internal server error or our guide to the critical error and white screen of death.

If you're seeing ERR_TOO_MANY_REDIRECTS, a redirect loop is preventing the page from loading. See our guide to fixing redirect loops.

If you're seeing a 403 forbidden error, the server is refusing access. See our guide to resolving the 403 error.

If you're not sure what error you're seeing, or if the page simply never loads, continue with the general troubleshooting steps below.

Disable plugins and switch themes

Plugin and theme conflicts are one of the most common causes of WordPress downtime, especially after a recent update.

Connect via FTP, SFTP or your hosting file manager and navigate to wp-content/plugins/. Rename each plugin folder one at a time (for example, change plugin-name to plugin-name-disabled) and check whether the site recovers after each one. This preserves your plugin settings for later reactivation.

To test whether a theme is the cause, rename your active theme's folder inside wp-content/themes/. WordPress will fall back to a default theme (such as Twenty Twenty-Four) if one is installed. If the site loads with a default theme, the problem is in your theme.

Reset .htaccess

A corrupted .htaccess file is one of the most common causes of server errors and unexpected behaviour. Connect via FTP and rename .htaccess to .htaccess_old, then try loading the site.

If the site recovers, regenerate a clean .htaccess by going to Settings → Permalinks in the WordPress dashboard and clicking Save Changes.

If your server runs Nginx rather than Apache, there is no .htaccess file. Check your server configuration with your hosting provider instead.

Increase the PHP memory limit

If your site is failing with a memory-related error (visible in the debug log or error message), a plugin or process may be exhausting the available PHP memory. Add the following line to wp-config.php:

define('WP_MEMORY_LIMIT', '256M');

If this resolves the issue, investigate which plugin or process is consuming excessive memory rather than simply leaving the limit raised. Your hosting provider may also need to increase the server-level PHP memory allocation.

Restore core files

If you suspect WordPress core files have been corrupted (for example, after a failed update or a hack), you can replace them without affecting your content.

If you can access the dashboard, go to Dashboard → Updates and click Re-install now. If you can't access the dashboard, download a fresh copy of WordPress from wordpress.org and upload the files via FTP, overwriting the existing core files. Do not overwrite wp-content or wp-config.php, as these contain your site's content and configuration.

Check for resource limits

If your site goes down during traffic spikes or at busy times of day, your hosting plan may not have enough resources to handle the load. Shared hosting plans have limits on CPU usage, memory, database connections and bandwidth. When these limits are reached, the server may temporarily refuse new connections or display an error page.

Check your hosting control panel for any resource usage warnings or throttling notices. If your site is regularly hitting resource limits, you may need to optimise your site (through caching, image optimisation and reducing plugin overhead), upgrade to a higher-tier hosting plan or move to a hosting environment that can scale with traffic.

Check for malware

If your site is showing unexpected redirects, unfamiliar content, unknown user accounts or injected code, it may have been compromised. A malware infection can cause downtime directly (by breaking site functionality) or indirectly (by triggering your hosting provider to suspend your account).

Run a remote malware scan using an online scanning tool to check your site's public pages for known malware signatures. For a more thorough check, use a server-side scanning tool that can examine files on your server directly.

If you find signs of a compromise, see our detailed guide to cleaning up a hacked WordPress site for step-by-step instructions.

Still down?

If your site is still not loading after working through these steps, there may be a deeper server-level issue that requires access to error logs and configurations beyond what's available through WordPress. My emergency WordPress support service can help diagnose and resolve persistent downtime.

Adam Greenough

Written by Adam Greenough

Freelance web developer with over 15 years of experience building and fixing WordPress sites. I work with businesses across the UK on everything from emergency support to full builds.

Need hands-on help?

I offer emergency WordPress support with a no-fix, no-fee guarantee.