HTTP 503 Website Error: How to Diagnose the Outage
What a 503 website error means, the most common causes, how to diagnose it step by step, and how to find out the next time it happens.
A website 503 error means "Service Unavailable." The server is running and answering, but it can't handle the request right now. That's different from a site that doesn't respond at all: something on the other end is there, and it's telling you "not now."
The upside is that a 503 is usually temporary. The downside is that "temporary" can stretch into hours if nobody notices. Here's what causes it, how to track down the reason, and how to avoid hearing about it from a customer first.
What a 503 actually means
The HTTP standard defines 503 as a temporary condition: the server can't handle the request right now, typically because it's overloaded or down for maintenance, and will likely be able to later. It may include a Retry-After header saying when to try again.
That sets it apart from its neighbors:
| Code | What it says |
|---|---|
| 500 | Something broke inside the application |
| 502 | A proxy or CDN got an invalid response from the origin server |
| 503 | The server can't serve requests right now, usually due to load or maintenance |
| 504 | A proxy or CDN gave up waiting for the origin server |
Common causes
- Maintenance mode that never turned off. WordPress shows a maintenance page during updates. If an update is interrupted, the site can stay stuck until someone deletes the
.maintenancefile in the site root. - No free workers. On shared hosting or PHP-FPM setups, each request takes a worker process. A traffic spike, an aggressive crawler, or one slow page can exhaust them, and every request after that gets a 503.
- Hosting resource limits. Many plans throttle a site once it exceeds its CPU, memory, or connection quota.
- The origin behind a proxy is down. With a load balancer, reverse proxy, or CDN in front, the 503 may come from that layer because the origin isn't responding.
- A half-finished deployment. Some platforms return 503 while a new release boots. If the boot fails, they stay there.
- A firewall or bot-protection rule. Some return 503 to traffic they consider automated, so the site works for people but not for a monitor.
How to diagnose it, step by step
- Rule out your own connection. Load the site from another network, such as your phone on cellular data, or use the Is it down? checker.
- Find out who's answering. Run
curl -I https://yourdomain.comor use the HTTP headers checker and look at theServerheader and any CDN headers. If your CDN signed the 503, the problem is usually at the origin. - Look for
Retry-After. If it's there, someone set up that 503 on purpose, such as a maintenance mode or a rate limit. - Check the server's error log or your hosting panel for the time the errors started.
- Review recent changes: plugin updates, deployments, DNS changes, or server configuration edits.
- Check resource usage in your hosting panel. If you're maxed out on CPU or processes, the 503 is the symptom, not the cause.
What to do about it
- Stuck maintenance mode: finish or roll back the update and turn maintenance mode off.
- Out of workers or resources: find the slow page or the crawler hammering the site. If the traffic is legitimate, add caching or upgrade the plan.
- Origin down behind a CDN: restart the service on the origin or contact your host.
- Bots blocked with 503: if your firewall returns 503 to monitors, add an exception for the one you use.
For planned maintenance, returning 503 with Retry-After is the right call, because it tells search engines the outage is temporary. Google documents that it treats 5xx errors as a signal to slow down crawling, and that URLs which keep returning server errors can eventually be dropped from the index. A one-hour 503 is fine. A multi-day one isn't.
How to know the next time it happens
A 503 at 2 a.m. is only seen by your visitors, unless something is watching. A monitor that requests your page every minute counts the 503 as a failure, retries after 10 seconds, and once it fails three times in a row, confirms the outage and alerts your channels. Before planned maintenance, schedule a maintenance window on the monitor so the intentional 503 doesn't trigger alerts.
Keep the limits in mind: MonitoraWeb checks from a single location, so a firewall that blocks only our server will also show up as a failure. We explain the details in website uptime monitoring.
Frequently asked questions
Is a 503 error my host's fault?
Not always. It can come from the host running out of resources, but also from maintenance mode, a failed deployment, a CDN, or a firewall. Check which system signed the response and read the error log.
Does a 503 hurt SEO?
A short one doesn't. It's the correct way to signal a temporary outage. If it lasts for days, search engines crawl less and may eventually drop pages from the index.
Why does my site load for me while the monitor reports a 503?
Your firewall or bot protection may be returning 503 to automated requests, or the failure may be intermittent. Review your blocking rules.
How long does a 503 last?
As long as its cause does. If the response includes Retry-After, that's the server's suggested wait; otherwise it depends on when the underlying problem gets fixed.
How do I avoid alerts during planned maintenance?
Schedule a maintenance window on the monitor for that time. Outside the window, alerts resume as usual.
Sources
- HTTP Semantics, RFC 9110, 503 Service Unavailable: rfc-editor.org
- Google Search Central, HTTP and network errors: developers.google.com
Check it on your site now, free and without an account.
Open the tool