You’re trying to load a page and instead you get a blunt message: 502 Bad Gateway. Or maybe 503, or 500, or 504. These HTTP status codes look cryptic, but each one tells a specific story about what went wrong — and, crucially, whether it’s something you can fix or something only the website can. This guide decodes the common server errors in plain English.

First: is it you or the website?

Before diving into codes, run one quick check. Look the site up on an independent status checker. If it’s down for everyone, the error is on the website’s side and no amount of refreshing on your end will help. If it’s up for everyone but you, the fixes later in this article are worth trying. This one step saves you from troubleshooting a problem that was never yours.

What HTTP status codes are

Every time your browser requests a page, the server answers with a three-digit status code. Most of the time it’s a silent "200 OK" and the page just loads. You only see a code when something goes wrong. The first digit tells you the category: 4xx codes mean the request had a problem (often on your side), while 5xx codes mean the server failed to fulfill a valid request (on the website’s side). That single distinction is the key to reading them.

500 Internal Server Error

This is the generic "something broke on our end" message. The server hit an unexpected problem — a bug in the site’s code, a misconfiguration, or a crashed process — and couldn’t complete your request. A 500 is squarely the website’s responsibility. You didn’t do anything wrong, and there’s usually nothing you can fix. A refresh a minute later sometimes works if it was a momentary glitch; if not, the site’s team has to resolve it.

502 Bad Gateway

A 502 is one of the most common errors you’ll meet. It means one server, acting as a gateway (often a load balancer or CDN like Cloudflare), tried to pass your request to another server upstream — and got an invalid or no response back. In plain terms: the front door is answering, but the room behind it isn’t.

Causes include the upstream server being overloaded, crashing, or being mid-restart during a deployment. Because 502s are often momentary, refreshing after a short wait genuinely can work here. But if it persists, it’s a server-side issue for the site to fix — frequently a sign the service is having a broader outage, which you can confirm on its status page.

503 Service Unavailable

A 503 means the server is up but deliberately not handling requests right now. The two usual reasons are that it’s overloaded (too much traffic, so it’s shedding requests) or it’s in maintenance mode. Sometimes a 503 is also what you get when a site’s bot protection or rate-limiting steps in — which is why an automated checker treats a lone 503 cautiously: the site may well be working fine for regular browsers even while it briefly blocks automated traffic. If a real outage is underway, though, 503s tend to arrive alongside a spike in user reports.

504 Gateway Timeout

Closely related to the 502, a 504 means a gateway server waited for a response from an upstream server and gave up because it took too long. The upstream isn’t returning an error — it’s just too slow, often because it’s overwhelmed or stuck on a heavy database query. Like the others in the 5xx family, a 504 is the website’s problem to solve, though a retry after a pause occasionally succeeds once load eases.

A quick word on 4xx errors

Not every error is the server’s fault. The 4xx family points at the request itself:

  • 403 Forbidden — you’re not allowed to access this resource. Often geo-blocking, bot protection, or a permissions rule.
  • 404 Not Found — the page doesn’t exist at that address. Usually a broken or mistyped link, not an outage.
  • 429 Too Many Requests — you’ve hit a rate limit by refreshing or requesting too fast; wait a bit and slow down.

Importantly, a 403, 404, or 429 means you actually reached the site — so the service itself is up, even if this particular request was refused. That’s the opposite of a 5xx, where the server tried and failed.

How to tell if you can fix it

Here’s the simple rule of thumb:

  • 5xx (500, 502, 503, 504) → the website’s problem. Try one refresh after a short wait, then simply wait it out. If many people report it at once, it’s a genuine outage — see why websites go down for what’s likely happening behind the scenes.
  • 4xx (403, 404, 429) → your request or your access. A 404 means check the URL; a 403 might clear with a VPN or by disabling a blocker; a 429 means slow down.

What you can actually try

When you’re on the receiving end of a server error and want to rule out your own setup, these quick steps cover the local possibilities:

  • Refresh once after 30–60 seconds — many 502/503/504s are momentary.
  • Hard-refresh (Ctrl+F5 / Cmd+Shift+R) and try an incognito window to rule out a cached error page.
  • Check a second device or network — if it fails everywhere, it’s the site, not you.
  • For 403s, try a VPN or disable browser extensions in case you’re being geo- or bot-blocked.

For the full local checklist, our guide on fixing a page that won’t load walks through every fix in order.

The takeaway

Server error codes feel intimidating, but they’re really just the internet telling you where the problem lives. A 5xx means the website stumbled and you should wait; a 4xx means the request or your access needs attention. Either way, the fastest path to clarity is to check the service’s live status first — so you know instantly whether to troubleshoot or simply grab a coffee while the site recovers. Next time you hit a 502, look it up here before you do anything else.