A 503 Service Unavailable is unusual among server errors because it is frequently deliberate. The machine is running, the web server is answering, and it is telling you — correctly and politely — that it is not going to serve this request at the moment. That is very different from a crash.
The first job is therefore to work out which kind of 503 you have: someone put the site into maintenance mode on purpose, or the server is refusing work because it cannot cope. The fixes have nothing in common, so guessing wrong wastes the whole afternoon.
What a 503 Means
The status code means "temporarily unavailable". It is explicitly a short-term condition, which is why it is the correct code to return during planned maintenance and the reason search engines treat it more gently than other errors.
A well-configured 503 also carries a Retry-After header telling clients when to come back. Most sites omit it, but it is worth setting during planned work: search engines respect it and will schedule their next crawl accordingly instead of guessing.
Which Kind Is It?
These two look identical to a visitor and are opposites underneath. A few observations separate them quickly.
| Clue | Planned maintenance | Server cannot cope |
|---|---|---|
| The page itself | A designed message: "back soon" | A plain server error page |
| Consistency | Every visitor, every page, all the time | Comes and goes; some requests succeed |
| Timing | Starts and ends at a chosen moment | Follows traffic — peaks and recoveries |
| Server load | Normal | CPU or memory at the limit |
| Who knows about it | Someone on the team scheduled it | Nobody expected it |
Common Causes When It Is Not Intentional
- The server has run out of workers. All PHP-FPM or Apache processes are busy and the queue is full, so new requests are rejected immediately rather than queued forever.
- A traffic spike beyond what the plan allows. A campaign, a viral post, or a scraper hitting the site hard enough to look like one.
- Shared hosting resource limits. Most shared plans cap concurrent processes per account and return 503 when you exceed it — often because of a neighbour's activity as much as your own.
- A stuck WordPress update. A failed core or plugin update can leave a .maintenance file behind, and WordPress keeps serving 503 until it is deleted.
- A crashed backend that a supervisor is restarting. During the restart window the front server has nothing to talk to and returns 503.
- A DDoS or aggressive bot traffic. Protection systems return 503 by design when they decide to shed load.
- A database that has hit its connection limit, causing the application to fail health checks.
What to Do
- Check whether anyone planned it. Ask the team, check the host's status page, and look for a maintenance plugin left switched on. This takes a minute and avoids hours of pointless debugging.
- On WordPress, check for a file named .maintenance in the site root. A failed update leaves it behind; deleting it brings the site straight back.
- Look at server load — CPU, memory, and the number of running processes. If the machine is saturated, that is your answer and no configuration change will help until the load drops or the machine gets bigger.
- Check the error log for the front server. Nginx records "no live upstreams" and similar messages that say precisely which backend is refusing work.
- Look at traffic. If the 503s track your visitor graph, it is capacity. If they are constant regardless of traffic, it is configuration.
- On shared hosting, look at the resource-usage page in the control panel. Most panels show how often you have hit the concurrent-process limit, which turns a vague problem into a number.
- Add a Retry-After header if you are doing planned work, so crawlers know when to return.
What a 503 Does to SEO
This is the one server error Google explicitly prefers you to use. When Googlebot receives a 503 it understands the situation is temporary: it keeps the page in the index and comes back later rather than treating the URL as broken.
That protection is time-limited. A few hours is genuinely safe. Several days of continuous 503s and Google begins treating the situation as permanent, at which point pages start dropping out of the index and recovering takes considerably longer than the outage did.
The practical guidance for planned maintenance: return a real 503 status rather than a 200 page saying "we are down", include a Retry-After header, and keep the window as short as you can. A maintenance page served with a 200 is the worst of both worlds — Google indexes "we are down" as the content of your page.
Hitting your hosting plan's process limit?
Cloud VPS with dedicated CPU and RAM — your traffic limits are yours alone, not shared with the account next door. From ฿150/month.
Frequently Asked Questions
How long can a site stay 503 before it hurts?
Hours are fine and Google handles them gracefully. Days are the risk zone — crawling slows and pages begin to drop out. If you know maintenance will run long, it is worth using a staging site and switching over rather than leaving production returning 503 for days.
My WordPress site is stuck on "briefly unavailable for scheduled maintenance".
That is the .maintenance file left behind by an update that failed partway through. Delete it from the site root over FTP or File Manager and the site returns immediately. Then check whether the update actually completed before you run it again.
I keep getting 503s at the same time every day. Why?
Something scheduled is consuming the server at that hour — a backup, a cron job, a report, or an import. Find the schedule and either move it to a quieter time or make it lighter. Shared hosting neighbours running their own backups can do this to you too, which is one of the arguments for a VPS.
GUIDES
Related articles
Keep reading on similar topics
504 Gateway Timeout — And Why Raising the Timeout Is the Wrong Fix
A 504 means the backend was reachable but too slow to answer in time. The instinctive fix — raise the timeout — turns a fast error into a slow one and solves nothing. This guide covers what actually causes 504s and how to fix the cause instead of the symptom.
Read more502 Bad Gateway — What It Means and How to Fix It
A 502 means one server asked another server for the page and got back something it could not use. This guide explains which two machines are involved, how 502 differs from 500 and 504, and the order to work through the causes so you find the real one first.
Read moreMy Website Is Down — A Step-by-Step Checklist
When a site goes down the instinct is to start changing things, which usually makes the diagnosis harder. This checklist runs in order: confirm it is actually down, read what the screen is telling you, check the four things that break most often, then look at what changed.
Read more