HTTP 503 — Service Unavailable
5xx Server Error
What it means
The server is temporarily unable to handle the request — overloaded, or down for maintenance.
What to do about it
Send a Retry-After header so clients and crawlers know when to come back. Google treats a short 503 as temporary and will not drop the page from its index.
Where it sits
503 belongs to the 5xx family: The server failed to fulfil an apparently valid request. The fix is on the server side.
HTTP/1.1 503 Service Unavailable
Checking it yourself
# see the status code and headers only
curl -sI https://example.com/path
# follow redirects and print each hop
curl -sIL -o /dev/null -w "%{http_code} %{url_effective}\n" https://example.com/path
# JavaScript
const r = await fetch(url);
console.log(r.status, r.statusText);
How this code behaves
| Cacheable by default | No — caches must not store this response unless explicit cache headers permit it. |
| Safe to retry | Yes, with backoff. This is a transient condition; retrying the same request is reasonable. |
| Effect on search indexing | Treated as temporary. A short 503 with a Retry-After header will not cost you your ranking; a long one will. |
Returning 503 correctly
# nginx
return 503;
# Express
res.status(503).json({ error: 'Service Unavailable' });
# Go
w.WriteHeader(503)
# Python (Flask)
return jsonify(error='Service Unavailable'), 503;
Frequently asked questions
What does HTTP 503 mean?
The server is temporarily unable to handle the request — overloaded, or down for maintenance.
How do I fix a 503 error?
Send a Retry-After header so clients and crawlers know when to come back. Google treats a short 503 as temporary and will not drop the page from its index.
Is 503 a client or server problem?
A server problem. The request was valid; the server failed to fulfil it. Nothing the client changes will help.