Skip to content
RO
← All writing

Why is my website down?

  • hosting
  • domains
  • monitoring
  • maintenance

Before anything else, find out whether it is down for everybody or just for you.

Take your phone, turn the Wi-Fi off, and load the site over mobile data. If it opens, the website is fine and the problem is somewhere between your office and the internet, which is annoying but not the emergency it felt like thirty seconds ago. If it doesn’t open on the phone either, it really is down, and the page you are looking at is already telling you roughly where.

I look after small business websites, most of them built by somebody else, and the first thing I ask for when one stops working is not the login. It is a screenshot of the error.

Read the error before you ring anybody

Browsers and servers fail in different words, and the words map to different places in the chain. There are four kinds worth telling apart.

The name doesn’t lead anywhere

Chrome says “This site can’t be reached” with a code underneath like ERR_NAME_NOT_RESOLVED. Google’s own list of Chrome errors describes that one as the web address not existing, or now pointing at a different IP address. Your server may be perfectly healthy. Nobody can find it. Either the domain has lapsed or somebody changed its DNS records, and of those two the first is far worse.

The name works, the server doesn’t answer

“Took too long to respond” or “refused to connect”. The address resolves to a machine, and the machine is either off or has a firewall in front of it that has stopped letting visitors through. Sometimes it is simply swamped.

A number

500, 502, 503 or 504. This is better news than it looks, because it means a server received the request and replied. The definitions are in RFC 9110, the HTTP standard. A 502 means a server acting as a gateway got an invalid response from the one behind it; a 504 means it got no response in time; a 503 means it is overloaded or down for maintenance. In plain terms the front door opened and the room behind it is dark. Don’t take the number too literally, though. I once spent an afternoon on a proxy because a 502 pointed at it, when the real cause was a response a quarter of a gigabyte in size.

A page that isn’t yours

A registrar’s parking page with adverts on it, or a plain “account suspended” notice from the host. These are rarely technical. Somebody’s card expired, or an invoice went to an inbox nobody reads, and the fix is a phone call to accounts rather than a developer.

Two that only WordPress shows

WordPress adds two messages of its own. “Error establishing a database connection” is, according to WordPress’s own documentation, usually a mistake in the wp-config.php file, and otherwise the host’s database being out of quota or down. “There has been a critical error on this website” usually means a plugin or theme update broke something. Since version 5.2, WordPress emails details of that error to the site’s admin email address. Whose address is that? On a lot of sites it still belongs to whoever built it.

The domain is the one I’d check first

It is the cheapest part of a website. It is also the easiest one to lose.

Domains are renewed once a year, or once every few years, and the reminder goes to whoever registered the name. If that was your old web designer, or an email address at a company that no longer exists, you won’t see it. I wrote about whose name the domain sits in when a site changes hands, and it matters here for the same reason.

For a .uk address the timetable is set by Nominet, which runs the registry, and it is laid out in their domain expiry process. For the first 30 days after expiry the domain stays “fully operational”, so nothing looks wrong at all. On day 30 it stops resolving, and the website and the email go at the same moment. You can still renew it through your registrar until day 90. After that there are five days in which nobody can renew it, and then it drops and anybody can register it.

That first month is what catches people. The domain lapses, everything carries on working, and whatever reminder emails went out went somewhere nobody looked. Then one morning the site and the email disappear together. It is the same shape as an expired certificate: the fault happens weeks before anybody can see it.

You can check yours now. For a .uk name, Nominet’s WHOIS lookup shows the registrar and an “Expiry date”. Put that date in your own calendar with a reminder a month before it. That takes two minutes and nobody else will do it for you.

Other endings, .com included, follow their own rules and each registrar’s terms, so don’t assume the .uk timings carry across.

If it’s the server

A timeout or a 5xx that lasts more than a few minutes is somebody’s job, and it matters a lot whose.

If you are on shared hosting, the host’s status page is the first place to look, then your inbox for anything from them about billing or a suspended account. If a developer or agency hosts it on their own server, it is their call, and how fast they pick up tells you most of what you need to know about the arrangement. If nobody hosts it, in the sense that it runs on a server set up years ago that nobody watches, then the outage is the least of your problems and I would start with finding out what else is running on that box.

What uptime monitoring catches, and what it doesn’t

A monitor requests your site on a schedule and raises the alarm when it stops getting a sensible answer. That means you hear about the outage from the monitor and not from a customer, which is the whole point of it. One detail I would insist on: the check should run somewhere other than the server it is checking. A watchdog on the same machine goes down with the thing it is watching.

It does not see the slow failures. A domain 29 days past its expiry answers every check perfectly. So does a contact form whose messages stopped arriving in June, and a site whose backups have been quietly failing since spring. Monitoring tells you something is down. It doesn’t tell you what is about to be.

What I do about it

This is part of the website care plan, £49 a month with no minimum term, and it doesn’t matter whether I built the site.

Uptime monitoring is in it, so I find out first. The hosting is on a Linux server I run and patch myself, which means a 502 on a site I host is mine to fix, not yours to diagnose. If you don’t have a site yet and take the plan, the one-page site I build comes with the first year’s domain included, and renewal after that is about £12 to £15 a year.

The limits, stated plainly. I am one person with an alert on my phone, not a support desk with a night shift. If your site being down at four in the morning costs money by the hour, pay for hosting with staff on shift. If a domain has already dropped and somebody else has registered it, there is no quick fix and I can’t promise one. And if the site is up but showing somebody else’s content, it has been broken into, which is a separate job I would look at before quoting for it.

If yours is down right now, send me the address and a screenshot of the error. I’ll tell you which of these four it is.