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.

When your WordPress site stops loading, the cause could be anything from an expired domain to a faulty plugin to a crashed database server. "My site is down" covers a lot of different symptoms: a blank page, a specific error message, a browser security warning, unexpected redirects or a page that never finishes loading.

The key to getting back online quickly is working through the possibilities in order rather than changing things at random. This guide takes you through the most common causes, starting with the quickest checks.

Check the site is actually down

Before changing anything, make sure the site is down for everyone and not just for you.

Clear your browser's cache and cookies for the site, or try a private or incognito window. Try a different device or network (for example, switching from Wi-Fi to mobile data), and switch off any VPN.

You can also use an online "is it down" checker to see whether the site loads from elsewhere. If it loads for others but not for you, the problem is probably on your side, such as your internet connection, your network or your computer's stored DNS information, rather than with the site.

Check with your hosting provider

If the site is down for everyone, start with your hosting provider. Check their status page for outages or maintenance, and if there's nothing listed, contact their support with a description of what you're seeing and when it started.

Common hosting-level causes include server maintenance or restarts, a stopped web server or database service, your account being suspended (for example, over billing or resource use) and a change of PHP or database version that your site doesn't get on with.

Your host can see server logs and settings that you can't see from WordPress, so it's always worth contacting them early.

Check your domain and DNS

If your host says the server is fine, the problem may be with your domain or its DNS settings.

Check your domain hasn't expired. An expired domain is a surprisingly common cause of sudden downtime. Log in to your domain registrar and check the expiry date and renewal status.

Check your DNS records point to the right server. Your domain's records need to point at your hosting server's address, and your host can tell you what that should be. If you've recently moved host or changed DNS settings, the records may be pointing to the wrong place, or the change may not have reached everyone yet. DNS changes can take anywhere from minutes to a day or two to take effect everywhere, depending on how the records are set up.

DNS records also control things like your email, so be careful changing them. Take a screenshot or copy of the existing records before changing anything, and if you're not sure, ask your host or registrar to make the change for you.

Check your SSL certificate

If visitors see a browser security warning (such as "Your connection is not private") instead of your site, your SSL certificate may have expired or be set up incorrectly.

Click the padlock or warning icon in your browser's address bar to see the certificate details and expiry date. Most hosts renew free certificates automatically, but renewal can fail, for example after DNS changes. Your host can reissue the certificate. If you've recently moved the site or changed its domain, a new certificate may be needed. Our guide to fixing "Not Secure" warnings and mixed content covers certificate problems in more detail.

Identify the error

If the server is running and the domain points to the right place, the next step depends on what you're seeing. Each of these has its own guide:

If you're not sure what the error is, or the page never loads at all, the general steps below cover the most common causes.

Check plugins and your theme

Plugin and theme problems are one of the most common causes of downtime, especially after an update. If you know which update caused it, our guide to recovering a site broken by an update covers rolling back.

Connect via SFTP or your hosting file manager, go to wp-content/plugins/ and rename plugin folders one at a time (for example, from plugin-name to plugin-name-disabled), checking the site after each. WordPress can't load a plugin whose folder has been renamed, but its settings are kept. Rename the folders back when you've finished, and check each plugin is active again under Plugins.

To test whether your theme is the cause, rename your active theme's folder inside wp-content/themes/. WordPress then switches to its default theme, if one is installed.1 This is a real theme change that visitors will see. When you've finished, rename the folder back, reactivate your theme under Appearance → Themes and check your menus and widgets are still in place.

Reset .htaccess

On Apache and LiteSpeed servers, a faulty .htaccess file is a common cause of server errors. Connect via SFTP and rename .htaccess to .htaccess_old, then try loading the site. Renaming rather than deleting keeps a copy of any custom rules.

If the site comes back, create a clean file by going to Settings → Permalinks and clicking Save Changes, then copy back any custom rules you still need from .htaccess_old one block at a time, checking the site after each. Our 500 error guide covers this in more detail.

If your server runs Nginx, there's no .htaccess file. Ask your host to check the server configuration instead.

Check PHP memory

If an error message or log mentions "Allowed memory size ... exhausted", a plugin or process is using more memory than PHP allows. You can ask WordPress for more by adding this line to wp-config.php, with a copy of the file downloaded first:2

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

It only works up to the limit your host allows. If it fixes the site, it's worth finding out what's using so much memory rather than just leaving the limit raised, and your host may need to raise the server's limit.

Reinstall WordPress core files

If you think WordPress's own files have been damaged (for example, after a failed update), you can replace them without affecting your content.

Take a backup first, since reinstalling overwrites WordPress's core files. If you can reach the dashboard, go to Dashboard → Updates and click the Re-install version button.3 If you can't, you can replace the files by hand with a fresh copy of the same WordPress version, following WordPress's manual update process.4 Take great care not to overwrite or delete wp-content or wp-config.php. If you're not confident, ask your host or a developer.

If you think the site has been hacked, replacing files isn't enough on its own. See the malware section below.

Check resource limits

If your site goes down during traffic spikes or at busy times, your hosting plan may not have enough resources for the load. Our guide to fixing 502, 503 and 504 errors covers finding out whether the traffic is real visitors or bots.

Check your hosting control panel for resource usage warnings. If you regularly hit your limits, the options are to reduce the load (better caching, blocking bad bots and trimming heavy plugins) or to move to a plan with more resources. Your host can advise on what your plan allows.

Check for malware

If your site shows unexpected redirects, content you didn't add or unknown user accounts, it may have been hacked. A hack can take a site down directly, or indirectly if your host suspends the account to protect other customers.

An online scanner can check your public pages for known malware, and a scanner plugin or your host can check the files on the server. If you find signs of a hack, see our guide to cleaning up a hacked WordPress site. If you think a vulnerable plugin was the way in, our guide to handling a plugin security vulnerability will help you check.

Still down?

If your site still isn't loading after these steps, there may be a server problem that needs access to logs and settings you can't reach. Your hosting provider is the best first contact. My freelance WordPress development and emergency WordPress support can also help find and fix persistent downtime.


  1. theme.php (validate_current_theme), WordPress source code on GitHub. ↩

  2. wp-config.php, WordPress Advanced Administration Handbook. ↩

  3. update-core.php, WordPress source code on GitHub. ↩

  4. Upgrading, WordPress Advanced Administration Handbook. ↩

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 emergency WordPress support today?

If your site is down, hacked or throwing errors, send me the details and I will assess the problem quickly. Support starts from £50, you will get a fixed quote before any work begins, and if I cannot fix the issue, you will not pay.