← Repair Hub

503 Service Unavailable Error

HTTP & Server Errors

What you’re seeing

Visitors see “503 Service Unavailable”, “Service Temporarily Unavailable”, or a maintenance message that never goes away. On WordPress it often follows an update that did not finish.

What it actually means

A 503 is different from the other server errors in one important way: nothing is broken. The server is running, it received the request, and it decided not to answer. It is a refusal, not a crash.

That refusal is usually deliberate and temporary — maintenance mode, a deploy in progress, a rate limiter. It becomes a problem when the temporary state gets stuck, which on WordPress happens more often than anyone would like.

What usually causes it

Most likely first.

  1. 1

    A stuck WordPress maintenance file

    WordPress writes a .maintenance file during updates and deletes it afterward. If the update fails partway, the file stays and every visitor gets a 503 until it is removed by hand.

  2. 2

    The server is out of capacity

    Too many concurrent requests for the resources available. The server sheds load by refusing new connections rather than collapsing entirely.

  3. 3

    A bot crawl or attack

    Aggressive scraping or a flood of login attempts consumes the connection pool, and real visitors get turned away alongside the bots.

  4. 4

    A deploy or restart in progress

    Perfectly normal for a few seconds during a deployment. Only a problem if it persists after the deploy reports success.

  5. 5

    A plugin or security tool holding the gate

    Caching, firewall, and maintenance plugins can all serve a 503 by design — and can all fail to switch it off.

How to fix it

Work through these in order. Take a backup before you change anything.

  1. Step 1Delete the .maintenance file

    Connect over SFTP, look in the site root for a file named .maintenance, and delete it. On WordPress this single step resolves the majority of stuck 503s.

  2. Step 2Finish or roll back the update

    The 503 usually means an update stopped midway. Re-run it deliberately, or restore the previous version, so the site is not left in a half-updated state.

  3. Step 3Check resource and traffic graphs

    If there is no maintenance file, look at concurrent connections and CPU. A 503 that tracks your traffic peaks is a capacity problem, not a configuration one.

  4. Step 4Look for a bot flood

    Scan the access log for one address or user-agent hitting you hundreds of times a minute. Block it at the firewall or CDN rather than in the application.

  5. Step 5Disable maintenance and caching plugins

    If a plugin put the site into maintenance mode, disable it over SFTP by renaming its folder, then bring it back once the site is serving.

When to stop and call someone

Call someone if deleting the maintenance file does not restore the site, if the 503 returns every time traffic rises, or if your store has been offline long enough that customers are noticing. A capacity-driven 503 tends to arrive at exactly the moment you can least afford it.

Frequently asked

It means the server is running but is refusing to handle the request right now. Unlike a 500, nothing has crashed — the server is deliberately turning visitors away, usually because of maintenance mode, overload, or a rate limit.

Because an update failed partway and left behind a file named .maintenance in the site root. WordPress creates it when an update starts and deletes it when the update finishes; if the process is interrupted, the file remains and everyone sees a 503. Deleting it over SFTP restores the site.

Briefly, no — a 503 tells search engines to come back later, which is exactly why it is the correct code for planned maintenance. Left in place for days it becomes harmful, as crawlers stop retrying and pages begin to drop from the index.

Yes. When concurrent requests exceed what the server can handle, it protects itself by refusing new connections rather than crashing. A 503 that appears at your busiest hours and clears when things quiet down is almost always a capacity limit.

Seconds during a deploy, minutes during planned maintenance. Anything lasting hours is stuck rather than temporary, and needs someone to find the maintenance file, plugin, or resource ceiling holding the door shut.

Free · AI-powered · Emailed to you

See exactly what’s holding your website back.

Get a free audit of your site — speed, SEO, mobile, and security — with the fixes that matter most, delivered as a PDF to your inbox.

Get my free audit
CallGet a quote