How to Fix WordPress Stuck in Maintenance Mode (2026 Guide)

WordPress stuck in maintenance mode - laptop displaying a website maintenance message

You click “Update” on a plugin, wait a few seconds, and instead of your site you get one flat sentence: “Briefly unavailable for scheduled maintenance. Check back in a minute.” A minute passes. Then ten. Your site is still down, and so is your wp-admin. A WordPress stuck in maintenance mode message looks like a crash, but the fix takes about five minutes — the cause is almost always a single hidden file that an interrupted update left behind.

In this guide, you will learn what maintenance mode actually is, how to get your site back with File Manager, FTP, or WP-CLI, and how to finish the update that died halfway.

What “Briefly Unavailable for Scheduled Maintenance” Actually Means

Every time WordPress updates core, a plugin, or a theme, it briefly puts your site into maintenance mode. Before it touches a single file, WordPress writes a tiny hidden file called .maintenance into your site’s root folder — the same folder that holds wp-config.php, wp-admin, and wp-content. While that file exists, visitors see the maintenance message instead of your site.

<?php $upgrading = 1792682904; ?>

That number is a Unix timestamp recording when the update started. When the update finishes, WordPress deletes the file and the site comes straight back — a normal update holds the lock for five to thirty seconds. The page is served with an HTTP 503 status and a Retry-After header, the correct response for a temporary outage.

Why WordPress Gets Stuck in Maintenance Mode

A WordPress stuck in maintenance mode error is almost never a broken site — it is an unfinished update. The process dies before it deletes the .maintenance file. The usual causes are:

  • You closed the browser tab mid-update. Closing the tab or navigating away at the wrong moment can kill the update process.
  • The server timed out. A slow server, a low PHP execution time limit, or a large update package can push the update past the server’s time limit. On shared hosting, this is the most common cause.
  • The update hit a plugin or theme conflict. A plugin that hooks into the update process can stop the update halfway.
  • The server ran out of disk space or memory. If there is no room to extract the new files, the update stops and never cleans up.
  • You updated several items at once. Bulk-updating a dozen plugins in one go increases the chance that one of them fails and leaves the flag file behind.

There is one piece of good news built into WordPress core: the maintenance check has a 10-minute timeout. The function wp_is_maintenance_mode() compares the timestamp in the .maintenance file against the current time, and once the file is more than 10 minutes old, WordPress ignores it and the site loads again on its own. If the message has been showing for less than ten minutes, the fastest fix is often to wait. If it has been longer, delete the file yourself.

How to Fix WordPress Stuck in Maintenance Mode

You cannot fix this from wp-admin. While the .maintenance file is fresh, /wp-admin/ and wp-login.php return the same 503 and the same message as the front of the site. You need file access instead — pick whichever method matches the access you have.

Method 1: Delete the .maintenance File with Your Hosting File Manager

This is the easiest method for most site owners, and it works on cPanel, Plesk, hPanel, and DirectAdmin.

  1. Log in to your hosting control panel and open File Manager.
  2. Navigate to your WordPress root folder — usually public_html, www, or htdocs, the folder that contains wp-config.php.
  3. Turn on hidden files. Files starting with a dot are hidden by default. In cPanel File Manager, click Settings in the top-right corner and tick Show Hidden Files (dotfiles).
  4. Find .maintenance, right-click it, and select Delete.
  5. Open your site in a private or incognito window. It should load normally.

Method 2: Delete the .maintenance File via FTP

  1. Connect to your site with an FTP client such as FileZilla or Cyberduck.
  2. Enable hidden files — in FileZilla, Server > Force showing hidden files; in Cyberduck, View > Show Hidden Files.
  3. Open the WordPress root folder, right-click .maintenance, and delete it.
  4. Hard-refresh your site with Ctrl+F5 on Windows or Cmd+Shift+R on Mac.

Method 3: Delete It with WP-CLI (Fastest, for Developers)

If you have SSH access and WP-CLI installed, you do not need to hunt for the file at all:

wp maintenance-mode status
wp maintenance-mode deactivate

The deactivate command removes the .maintenance file for you. Without WP-CLI, delete the file directly over SSH:

cd /path/to/your/wordpress
rm .maintenance

After deleting the file, reload the site in a private window. If the message still shows, purge your page cache and CDN cache — a cached 503 page is usually the cause.

After the Fix: Finish the Interrupted Update

Deleting the file brings the site back, but it does not finish the update that died. Run it again — that is part of the fix:

  1. Log in to Dashboard > Updates and check what shows as pending. If the item that failed still lists an available update, run it again — one item at a time, not in a bulk update.
  2. Check the site’s front end and key pages after the update finishes. A half-finished plugin update can leave broken layouts even after the site loads.
  3. If a plugin update fails repeatedly, deactivate that plugin, update it, then reactivate it. If it still fails, check the plugin’s changelog — the new version may require a newer PHP version than your server runs.

If the Site Is Still Down After Deleting the File

Sometimes the WordPress stuck in maintenance mode message is still there after you delete the file. Work through these in order:

  • Clear every cache. Purge your caching plugin, your CDN, and your browser cache. A cached 503 page is the most common reason the message survives the fix.
  • Look for a custom maintenance page. A file called maintenance.php inside wp-content replaces WordPress’s default message. If a plugin created one, the site may show a custom “under maintenance” page even without the .maintenance file — rename or delete it if you no longer want it.
  • Check whether the update actually broke something. If the site returns a white screen or a 500 error instead of the maintenance message, the update itself failed badly. See our guide on fixing the WordPress 500 internal server error for the next steps.
  • Check disk space and PHP limits. If the server ran out of space mid-update, the update cannot complete no matter how many times you retry it. Your host can confirm this from the server logs.

How to Prevent WordPress Getting Stuck in Maintenance Mode Again

You cannot eliminate maintenance mode — it is a normal part of every update. You can make it far less likely to get stuck:

  • Update one item at a time. Bulk updates are convenient, but a single failure leaves the whole site locked. Update core first, then plugins one by one, then the theme.
  • Back up before every update. A recent backup turns a failed update from a crisis into a five-minute restore. Never update without one.
  • Keep your server healthy. Make sure your host runs a supported PHP version, and that you have free disk space and enough memory for updates to finish.
  • Test big updates on staging first. Major core or plugin updates deserve a run on a staging site before they touch the live site.
  • Do not close the tab mid-update. Wait for the update screen to confirm completion before navigating away.

For a fuller routine around updates, see our guide on updating WordPress safely without breaking your site.

Frequently Asked Questions

Is it safe to delete the .maintenance file?

Yes. The file is only a flag that WordPress creates during updates and removes afterward. Deleting it does not touch your content, database, or files. Just check afterward that the interrupted update actually completed, and run it again if it did not.

Will my site fix itself if I just wait?

Usually, yes. WordPress ignores a .maintenance file that is more than 10 minutes old, so the site should come back on its own at the 10-minute mark. If it does not, a cache layer is probably serving the old 503 page — purge your caches and check again.

Wrap-Up

A WordPress stuck in maintenance mode message looks like a crash, but it is one of the easiest problems to fix. The .maintenance file in your site root is the whole story: delete it through File Manager, FTP, or WP-CLI, and the site comes back immediately. Then finish the interrupted update and clear your caches.

If your site keeps getting stuck during updates, or you would rather have a professional handle updates, backups, and maintenance for you, get in touch — I keep WordPress sites updated, backed up, and fast.