---
title: "How to fix the 503 Service Unavailable error in WordPress"
url: https://wpministry.co/errors/503-service-unavailable/
description: "A 503 means the server is running but cannot handle the request right now. The words on the page show whether WordPress, a plugin or the host sent it."
lang: en-US
---

Skip to content

# How to fix the 503 Service Unavailable error in WordPress

A 503 means the server is running and cannot handle the request right now, because of maintenance or overload. The words on the page show who sent it. That can be WordPress during an update, a plugin, the web server at a hosting limit, or a service in front of the site.

By

WP Ministry

Published

October 7, 2026

Tested on

WordPress 7.1.4, PHP 8.3.36

## In short

- A 503 is a temporary refusal. The server answered, and nothing on the site has been deleted.
- If the page says "Briefly unavailable for scheduled maintenance", WordPress sent it during an update, and that message has a page of its own.
- The words on the page show who sent the 503. It can be WordPress, a plugin, the web server or a service in front of the site.
- On shared hosting, reaching the account's memory or process limit can show as a 503 that comes and goes.
- A plugin that answers 503 on purpose is cleared by switching it off from outside the dashboard.
- Google keeps indexed pages through a short 503 and removes addresses that keep returning one.

"503 Service Unavailable" means the server is running, has answered, and says it cannot handle the request right now. The HTTP standard gives two reasons, a temporary overload or scheduled maintenance, and expects either to pass after a delay. A 502 or a 504 is a different report: a server acting as a gateway got an invalid answer from the server behind it (502 (https://wpministry.co/errors/502-bad-gateway/)), or no answer in time (504 (https://wpministry.co/errors/504-gateway-timeout/)).

Nothing has been lost. A 503 is about whether the site can be served at this moment, not about your posts, pages or settings. If the page reads "Briefly unavailable for scheduled maintenance. Check back in a minute.", WordPress sent it while installing an update, and the page about that message (https://wpministry.co/errors/briefly-unavailable-for-scheduled-maintenance/) has the fix. This page covers every other 503.

## Where it goes wrong

A page request passes through each of these in turn. This one comes from **the web server**.

1. Browser
2. DNS
3. HTTPS
4. CDN or firewall
5. Web server (this error comes from here)
6. PHP
7. WordPress
8. Database and files

## What causes it

- ### An update left WordPress in maintenance mode
  Common
  WordPress answers 503 with "Briefly unavailable for scheduled maintenance. Check back in a minute." while it installs an update. If the update is cut short, it goes on answering that way.
  Fix: Find out who sent the 503
- ### The hosting account has reached its limit on memory or processes
  Common
  On shared hosting each account is held to limits. CloudLinux, server software made so that no single site can bring a server down, documents 500 or 503 errors when an account reaches its memory limit or its limit on the number of processes.
  Fix: Find out who sent the 503, or Ask the host whether a limit was reached
- ### A plugin is answering 503 on purpose
  Sometimes
  A maintenance-mode plugin that was left switched on can send visitors a 503 page. A security plugin can send one to a visitor it has blocked or slowed down.
  Fix: Find out who sent the 503, or Switch off the plugin that is answering 503
- ### More requests are arriving than the server can handle
  Sometimes
  The requests can be real visitors or automated ones, such as a flood of login attempts. A server at its limit may refuse requests with a 503 rather than fail in a worse way.
  Fix: Find out who sent the 503, or Take load off the server
- ### The host is doing maintenance or has a fault
  Sometimes
  During maintenance, a server's administrators may send all traffic to a 503 page until the work is done.
  Fix: Find out who sent the 503, or Ask the host whether a limit was reached

## How to fix it

### Find out who sent the 503

- Easy
- No risk
- About 5 minutes
- Steps tested on WordPress 7.1.4

WordPress, a plugin, the web server or a service in front of the site can each send a 503. The page and its headers show which one did.

1. #### Step 1: Read the words on the page
   - **"Briefly unavailable for scheduled maintenance. Check back in a minute."** WordPress sent it. Follow the page about that message (https://wpministry.co/errors/briefly-unavailable-for-scheduled-maintenance/).
   - **"Your access to this site has been limited by the site owner"**, with "(HTTP response code 503)" under it. The Wordfence security plugin sent it, because it has blocked or slowed down your visit.
   - **A designed page that says the site is under maintenance or coming soon.** A maintenance-mode plugin is switched on.
   - **A plain page.** Apache's says "The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later." The one built into nginx says "503 Service Temporarily Unavailable". The web server sent it, not WordPress.
   - **A page that names Cloudflare.** Cloudflare's documentation says a 503 with "cloudflare" in the page's HTML was generated by Cloudflare, and one without it by your own server.
   - **"Error establishing a database connection".** WordPress sends that message with a 500. A site can replace the message with a file of its own, `db-error.php` in `wp-content`, and then that file sets the status. Either way, follow how to fix the database connection error (https://wpministry.co/errors/error-establishing-a-database-connection/).
2. #### Step 2: Ask for the page from a command line
   Run this in a terminal on your own computer, with your own address in place of `example.com`. It prints the status line and the headers the server sent, and leaves out the page itself.
   Without a terminal, the HTTP status and redirect checker (https://wpministry.co/tools/redirect-checker/) shows the status code an address answers.
   bash Copy

   ```
   curl -s -o /dev/null -D - https://example.com/
   ```

3. #### Step 3: Look for a Retry-After line
   `Retry-After` says how long the service is expected to be unavailable, as a number of seconds or as a date. WordPress sends `Retry-After: 600` with its maintenance message. A server is not required to send the header, so its absence tells you nothing.
   text Copy

   ```
   HTTP/1.1 503 Service Unavailable
   Retry-After: 600
   ```

4. #### Step 4: Open the login page
   Go to `https://example.com/wp-login.php`, with your own domain. If it loads while the public pages answer 503, the server is working and something on the site itself, such as a plugin, is turning visitors away: go to the next fix.

If you have WP-CLI, this says whether WordPress itself is in maintenance mode:

bash

```
wp maintenance-mode status
```

### Switch off the plugin that is answering 503

- Takes care
- Low risk
- About 15 minutes
- Steps tested on WordPress 7.1.4

A maintenance-mode plugin answers visitors with its own page for as long as its mode is on. The listing of the Maintenance plugin, for one, describes a "503 Service temporarily unavailable" option, and says that a logged-in WordPress user sees the website in normal mode. That is how an owner can miss it.

If you can log in, switch the plugin's maintenance mode off in its settings. If you cannot, switch plugins off from outside.

1. #### Step 1: List the active plugins and keep the list
   `--skip-plugins` and `--skip-themes` stop WP-CLI from loading the plugins and the theme while it runs.
   bash Copy

   ```
   wp plugin list --status=active --field=name --skip-plugins --skip-themes
   ```

2. #### Step 2: Switch them all off
   bash Copy

   ```
   wp plugin deactivate --all --skip-plugins --skip-themes
   ```

3. #### Step 3: Reload the site
   If it loads, a plugin was sending the 503.
4. #### Step 4: Activate the plugins one at a time
   Use each name from your list in place of `plugin-folder-name`, and reload the site after each one.
   When the 503 comes back, the plugin you activated last is the one sending it. Deactivate it again, then log in and turn its maintenance mode off before you activate it.
   bash Copy

   ```
   wp plugin activate plugin-folder-name
   ```

Without WP-CLI, renaming a plugin's folder switches it off. How to deactivate WordPress plugins when you are locked out (https://wpministry.co/blog/deactivate-wordpress-plugins-locked-out/) has that way and one through the database, step by step. The same applies if Wordfence on your own site has blocked you.

**To undo it:** Activate the plugins again on the Plugins screen, one at a time.

### Ask the host whether a limit was reached

- Easy
- No risk
- About 20 minutes

A plain 503 from the web server, or one that comes and goes, is a question for the host first.

1. #### Step 1: Check the host's status page and your inbox
   A host may send all traffic to a 503 page while it works on a server. Its status page, or a notice it emailed, says whether that is happening now.
2. #### Step 2: Look at the account's resource usage
   CloudLinux documents what a visitor sees at each of an account's limits:
   - **Memory, or the number of processes:** 500 or 503 errors.
   - **CPU, or disk reads and writes:** the site answers more slowly.
   - **Concurrent connections:** a 508 page that says "Resource Limit Reached".
   On hosts that run it, the control panel has a page that CloudLinux's documentation calls "CPU and concurrent connection usage". Its dashboard shows whether the site has been limited, and its charts mark each time a limit was reached.
3. #### Step 3: Write to the host with the facts
   Give the exact time with your time zone, the address that failed and the exact words on the page. Ask whether there is an incident on your server, and whether the account reached its memory or process limit and at what times. How to tell whether the fault is the host or the site (https://wpministry.co/blog/fix-wordpress-hosting-problems/) has a message to copy.
4. #### Step 4: If a limit was reached, find out why before you pay for a larger plan
   Reaching a limit does not prove the plan is too small. WordPress's documentation says the number of plugins and how well they perform have a huge impact on a site's performance, and a plugin that uses too much moves with the site to any plan. How to find and fix a WordPress plugin conflict (https://wpministry.co/blog/fix-wordpress-plugin-conflicts/) shows how to test plugins in turn; watch the usage charts as you go. The guide to hosting problems lists the signs that the plan itself is the problem.

### Take load off the server

- Takes care
- Low risk
- About 30 minutes

WordPress's documentation says that without caching, performance slows to a halt as page requests come in and stack up, and that abusive traffic such as brute force login attempts adds to the load.

1. #### Step 1: Find out what the traffic is
   Ask the host which addresses were requested most at the time of the 503, or read the access log if your control panel shows it. Many requests for `wp-login.php` or `xmlrpc.php` are a program guessing passwords. How to protect WordPress from brute force attacks (https://wpministry.co/blog/protect-wordpress-brute-force-attacks/) shows how to cut down how much of that reaches the site.
2. #### Step 2: Serve saved copies of pages
   A caching plugin saves posts and pages as static files and serves those, which reduces the processing the server does for each visitor. Ask the host first whether it already runs a page cache. WordPress caching plugins compared (https://wpministry.co/blog/best-wordpress-caching-plugins/) covers the choice.

## When to get help

If the page is not WordPress's maintenance message, the 503 stays with every plugin off, and the host reports no incident and no limit reached, the cause is in the server's own logs. On most hosting plans only the host, or someone with access to the server, can read them.

## Common questions

Will a 503 hurt my site in Google?

Not a short one. Google's documentation says server errors make its crawlers slow down, that pages already indexed are kept at first, and that addresses which persistently return a server error are removed from the index. If a site has to be closed urgently for a day or two, its advice is to return an error page with a 503, and never to answer 503 for `robots.txt`.

Why does the 503 come and go?

A limit that is counted at one moment is being reached and then freed. CloudLinux's documentation says that once an account reaches its limit on processes, no new process can be created until another one ends. Requests that arrive in that moment can get an error, and the next ones get through.

How long should I wait before I do anything?

If the page is WordPress's maintenance message, ten minutes: WordPress treats maintenance as over once its maintenance file is ten minutes old. If the answer has a `Retry-After` line, wait that long. If the host's status page reports an incident, wait for it to close. Otherwise there is nothing to wait for, so start with the first fix.

## More on this subject

- WordPress errors and troubleshooting: https://wpministry.co/topics/wordpress-troubleshooting/
- Guide How to update the PHP version of a WordPress site: https://wpministry.co/blog/update-php-version-wordpress/
- Guide WordPress uptime monitoring: what a check sees and what it misses: https://wpministry.co/blog/wordpress-uptime-monitoring/
- Glossary term debug.log: https://wpministry.co/glossary/debug-log/
- Glossary term Heartbeat API: https://wpministry.co/glossary/heartbeat-api/
- Guide How to change WordPress permalinks without breaking your old links: https://wpministry.co/blog/change-wordpress-permalinks-safely/
- Guide How to deactivate WordPress plugins when you are locked out of the dashboard: https://wpministry.co/blog/deactivate-wordpress-plugins-locked-out/

## Would you rather we fixed it?

Emergency Fix is $99. Site down or checkout broken. Goes to the front of the queue. No fix, no fee. 30-day warranty.

More about this work: Emergency WordPress support (https://wpministry.co/services/emergency-support/)

May we measure how this site is used?

A yes notes the pages of this visit and loads Google Analytics. A no keeps and loads nothing. See the cookies page (https://wpministry.co/legal/cookies/).

If you say yes, we note the pages you look at during this visit and load Google Analytics. If you say no, nothing is kept and nothing is loaded. The site works the same either way. The cookies page (https://wpministry.co/legal/cookies/) has the details.

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://wpministry.co/#organization",
      "name": "WP Ministry",
      "url": "https://wpministry.co/",
      "logo": "https://wpministry.co/brand/logo.png",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "1309 Coffeen Ave STE 1200",
        "addressLocality": "Sheridan",
        "addressRegion": "WY",
        "postalCode": "82801",
        "addressCountry": "US"
      },
      "sameAs": [
        "https://www.linkedin.com/company/wp-ministry/",
        "https://x.com/wpministryco",
        "https://www.instagram.com/wpministryco/",
        "https://www.facebook.com/wpministryco",
        "https://www.tiktok.com/@wpministryco",
        "https://www.pinterest.com/wpministryco/",
        "https://www.youtube.com/channel/UCOZRuAukk5QSTRPG6BaHl3Q"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://wpministry.co/#website",
      "name": "WP Ministry",
      "url": "https://wpministry.co/",
      "inLanguage": "en-US",
      "publisher": {
        "@id": "https://wpministry.co/#organization"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://wpministry.co/errors/503-service-unavailable/#article",
      "headline": "How to fix the 503 Service Unavailable error in WordPress",
      "description": "A 503 means the server is running but cannot handle the request right now. The words on the page show whether WordPress, a plugin or the host sent it.",
      "url": "https://wpministry.co/errors/503-service-unavailable/",
      "mainEntityOfPage": "https://wpministry.co/errors/503-service-unavailable/",
      "inLanguage": "en-US",
      "image": "https://wpministry.co/og/errors/503-service-unavailable.png",
      "author": {
        "@id": "https://wpministry.co/#organization"
      },
      "publisher": {
        "@id": "https://wpministry.co/#organization"
      },
      "datePublished": "2026-10-07T00:00:00.000Z",
      "dateModified": "2026-10-07T00:00:00.000Z"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://wpministry.co/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Error fixes",
          "item": "https://wpministry.co/errors/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to fix the 503 Service Unavailable error in WordPress"
        }
      ]
    }
  ]
}
```