HTTP errors
What does 503 Service Unavailable mean, and how do you fix it?
A 503 says the server cannot handle the request right now. When it is the right response, what causes accidental ones, and how to use it for maintenance.
503 Service Unavailable means the server is temporarily unable to handle the request, because it is overloaded, down for maintenance or has no healthy instance to route to. It is the correct status for planned maintenance, ideally with a Retry-After header. An unplanned 503 usually means your app is crashing, scaled to zero or out of capacity.
Published · Last updated
What 503 Service Unavailable means
503 is the status for a temporary inability to serve. Unlike 500, it is often sent on purpose: during maintenance, when a service is shedding load, or when a platform has no healthy instance of your app to send traffic to. The specification allows a Retry-After header telling clients when to come back.
If you are a visitor
A 503 means the site is overloaded or under maintenance. Wait and try again later. If the site has a status page, it will usually say what is happening and for how long.
Why your own site returns 503
- Planned maintenance, where you or your platform intentionally return 503.
- No healthy instance. Every instance failed its health check, crashed, or is restarting.
- Scale to zero. Some hosting plans stop idle apps, and the first request after a quiet period meets a 503 or a long wait while the app starts.
- Overload. More traffic than the app can handle, often from a launch, a viral post or a bot.
- Resource limits on your plan, such as connection or memory caps.
- A dependency the app checks at startup, such as the database, is down.
How to fix it
Work out whether the 503 is intentional. If you did not plan maintenance, check the platform dashboard for instance health and restarts, then the application logs.
- Crashing instances: fix the crash. The 503 is only the router saying it has nowhere to send traffic.
- Scale to zero: move to a plan that keeps one instance warm if first-request delays matter to you.
- Overload: add caching for pages that do not change per user, put static assets on a CDN, and scale instances if the load is legitimate.
- Bot load: rate limit or block the abusive client rather than letting it take the site down for everyone. For planned maintenance, return 503 with a Retry-After header and a short human message:
HTTP/1.1 503 Service Unavailable Retry-After: 3600
Do not serve a maintenance page with status 200. Crawlers will index the maintenance message in place of your real pages.
What a 503 does to Google and AI crawlers
Google treats 503 as a temporary problem and slows down crawling, which is exactly why it is the right status for maintenance. Indexed pages stay in place during a short outage. If the 503 continues for a long time, Google eventually drops those URLs, so planned maintenance should be measured in hours, not weeks.
A 503 is also the correct way to ask crawlers to slow down when they overload you. A 403 or 404 used for that purpose removes pages instead.
What a scan can and cannot tell you
WebAuditOS reports crawled pages that return 5xx, slow server responses that often come before overload errors, and whether a status page is linked for visitors to check during an outage.
A scan cannot predict capacity. A site that is fine for one crawler can still return 503 to ten thousand visitors after a launch. Load testing and uptime monitoring answer that question.
If your app scales to zero, the first request of a scan may hit a cold start. A slow first response in a report is sometimes that, not a slow app.
Short answers
Is 503 good for maintenance? Yes, with a Retry-After header and for a limited time.
Why do I get 503 after a period of no traffic? Your host likely scaled the app to zero and the first request arrived before it woke up.
503 or 429? 503 means the whole service is unavailable. 429 means this particular client is sending too many requests.
Will a short 503 hurt my rankings? No. Long or frequently repeated 503s can.
In the product
The checks this maps to
Every check named here runs on every scan, on every plan - what a plan changes is how many pages are crawled, how long the history is kept and what you can do with the result. These are the ids the findings carry, so you can match a line in a report to the explanation above.
- tech.status.ok - Page returns a successful status
- saas.status-page - Status page linked
- perf.ttfb - Server responds quickly (TTFB)
Read next
HTTP errors
What does 429 Too Many Requests mean, and how do you fix it?
A 429 means you hit a rate limit. How to handle it from AI and other APIs with backoff, and how to use it on your own site without hurting search crawling.
HTTP errors
What does 502 Bad Gateway mean, and how do you fix it?
A 502 means a proxy or load balancer got no valid answer from your app. The usual causes on modern hosting, and how to find which layer failed.