Skip to content

Troubleshooting

503 Service Unavailable: causes and how to fix it

A 503 Service Unavailable error means the server is up but can't handle requests right now. The usual causes, WordPress specifics, and what 503s mean for SEO.

Updated · 5 min read

Check if your site is down — down for everyone or just you? Names the exact stage that failed.

What 503 Service Unavailable means

A 503 Service Unavailable error means the server received the request but cannot handle it right now, usually because it is overloaded, under maintenance, or has no working backend to pass the request to. The HTTP specification defines 503 as a temporary condition, and the server can include a Retry-After header saying when to try again.

That tells you two useful things straight away. DNS works and the server is reachable, so the problem is not the domain or your connection. And the server is choosing, or being forced, to turn requests away, so the fix is on the website's side.

How 503 differs from other 5xx errors

The 5xx codes all mean a server-side failure, but each points somewhere different:

  • 500 Internal Server Error: the application crashed or hit an unhandled error while building the page.
  • 502 Bad Gateway: a proxy got an invalid response or a refused connection from the server behind it.
  • 503 Service Unavailable: the server or proxy is refusing requests for now, because of load, maintenance, rate limiting or no available backend.
  • 504 Gateway Timeout: a proxy waited for the server behind it and gave up when its timeout ran out.

Common causes

A 503 can come from the application, the web server, a load balancer or a CDN. The usual sources:

  • Overload. A traffic spike, a heavy crawler or a bot flood uses up the server's workers or connections, and new requests are turned away.
  • Maintenance mode. Many applications return 503 deliberately during updates. WordPress does this while updating core, plugins or themes.
  • No healthy backend. Apache's mod_proxy returns 503 when it cannot reach the application it proxies to, and load balancers return 503 when no backend server passes its health check.
  • Rate limiting. nginx's limit_req module rejects excess requests with 503 by default, so an aggressive limit can block real visitors or your own monitoring.
  • Hosting resource limits. Shared hosts cap CPU, memory and simultaneous processes per account. When a site hits the cap, requests fail with a 503, or on some platforms a 508 Resource Limit Is Reached page.
  • A stopped application. If PHP-FPM or the app server is down, some setups report 503 rather than 502.

Read the 503 page for clues

The page that comes with a 503 often says which layer sent it. nginx's default page reads "503 Service Temporarily Unavailable" with "nginx" below it, which commonly means a rate limit or an upstream setting in nginx itself. Apache's default page says the server is temporarily unable to service the request due to maintenance downtime or capacity problems, which often means mod_proxy could not reach the application. A styled page from the hosting company, a load balancer or a CDN points at that layer instead.

Check the response headers as well. A Retry-After header, given as a number of seconds or a date, usually means the 503 is deliberate, such as maintenance. Its absence, combined with a default server page, usually means something failed.

Fixing 503 errors on WordPress

A WordPress site stuck on "Briefly unavailable for scheduled maintenance. Check back in a minute." has a leftover .maintenance file. WordPress creates it in the site's root folder during updates and deletes it when they finish. If an update is interrupted, the file stays and every page returns 503. Delete .maintenance over SFTP or the hosting file manager, then check the update that was running actually completed.

If there is no maintenance message, look at load and plugins. Too many uncached requests can exhaust the PHP workers a hosting plan allows, which shows as 503s under traffic. A page cache reduces how many requests reach PHP at all. A plugin that runs slow queries or calls external services on every page load can tie workers up too; deactivating plugins in bulk, by renaming the plugins folder, quickly shows whether one is responsible.

How to fix a 503 as the site owner

Treat it as a capacity or availability question and check each layer:

  1. 1Confirm the error from outside with the uptime check. It retries automatically and names the failing stage, which separates an HTTP 503 from a timeout or connection failure.
  2. 2Check whether the 503 is intentional: a maintenance mode, a maintenance page set at the CDN, or a Retry-After header. The HTTP header checker shows every response header, including Retry-After and the server and CDN headers that reveal which layer answered.
  3. 3Check the host's status page and your control panel's resource usage graphs for hit limits.
  4. 4Read the web server and application logs around the time of the errors. Look for worker limits reached, backend connection failures and rate-limit rejections.
  5. 5Look at the traffic. If a single IP address range or user agent is generating a large share of requests, block or rate-limit it at the firewall or CDN.
  6. 6Restart the application service if it has stopped, then find out why it stopped.
  7. 7If the server is simply too small for the traffic, add caching first, then add resources or move to a larger plan.

503 errors and SEO

Google's documentation says server errors, including 503 and 429, make its crawlers temporarily slow down. URLs already in the index are kept at first but eventually dropped if the errors continue. Once the server responds normally again, Google gradually increases the crawl rate.

That makes 503 the right status for planned maintenance: it tells crawlers the outage is temporary, unlike serving a maintenance page with a 200 status, which can get the maintenance text indexed in place of your content. Keep maintenance windows short, send a Retry-After header, and make sure the 503 is removed when the work is done.

What visitors can do

Wait and retry. A 503 is temporary by definition, and many clear within minutes as a traffic spike passes or maintenance finishes. If the page includes a time to try again, use it.

If the error lasts hours, the site owner is the only one who can fix it. Checking the site's status page or social accounts usually tells you whether they know about it.

Common questions

Is 503 Service Unavailable temporary?
It is meant to be. The status signals a temporary condition such as overload or maintenance, but a misconfiguration, a stuck maintenance file or a stopped backend can keep a site returning 503 until someone fixes it.
How to fix "Briefly unavailable for scheduled maintenance" in WordPress?
Delete the .maintenance file in the site's root folder using SFTP or the hosting file manager. Then rerun or check the update that was interrupted.
What is the difference between 502 and 503?
A 502 means a proxy got a broken or refused response from the server behind it. A 503 means the server or proxy is refusing requests for now, typically because of load, maintenance, rate limits or no healthy backend.
Does a 503 error affect Google rankings?
A brief one does not. Google slows crawling when it sees 5xx errors and eventually drops indexed URLs if they continue, so prolonged 503s can cost visibility.
Can too much traffic cause a 503 error?
Yes. When requests arrive faster than the server's workers can handle them, new requests are rejected with 503. Caching and blocking abusive bots reduce the load reaching the server.

Is my website down?

Down for everyone or just you? Names the exact stage that failed.

Check if your site is down