🎉 Free WordPress fix for our first 50 sites — in exchange for an honest review. Claim a spot →

Errors

WordPress Stuck in Maintenance Mode: Fix It in 5 Minutes

Jun 19, 2026 · 6 min read · By the Mend engineering team

WordPress stuck in maintenance mode is almost always caused by a single leftover file: .maintenance in your site's root directory. Delete that file and your site comes back immediately. The tricky part is knowing why it got stranded there — and how to stop it happening again mid-update.

What You're Seeing

Your visitors — and quite possibly you — land on a plain white page with this message:

Briefly unavailable for scheduled maintenance. Check back in a minute.

It looks polite and temporary. Sometimes it is: WordPress maintenance mode is completely normal and lasts only a few seconds during a routine update. The problem is when the update process is interrupted before it can clean up after itself. That cleanup never happens, the flag file stays on disk, and WordPress obediently keeps showing the maintenance screen to everyone, indefinitely.

Unlike a white screen of death or a critical error, this one usually doesn't mean anything broke inside WordPress itself. The database is fine, your files are (probably) fine — you just need to flip the switch back off.

Why WordPress Goes Into Maintenance Mode in the First Place

Every time WordPress runs an update — a plugin, a theme, or core — it does three things in sequence:

  1. Creates a file called .maintenance in your WordPress root directory. This tells WordPress to show the maintenance screen to all visitors.
  2. Downloads and installs the update files.
  3. Deletes the .maintenance file, which brings the site back online.

Step 3 is the one that fails. Common reasons include:

  • A PHP timeout mid-update. Shared hosts often set aggressive PHP execution time limits (30–60 seconds). A large plugin update on a slow server can hit that ceiling before the process completes.
  • A fatal PHP error in the new code. If the updated plugin or theme throws an error the moment it's loaded, the update script crashes before it can remove .maintenance.
  • Updating too many items at once. Selecting "Update All" queues every plugin simultaneously. The sheer volume can exhaust memory or time limits.
  • A lost database connection mid-process. If the database goes away briefly during an update, the whole script dies in place.
  • A browser tab closed too early. If you triggered the update manually and closed the tab while the spinner was still spinning, the server-side process may have stopped with it (though modern WordPress updates run server-side, closing the tab during a bulk update can still interrupt the queue on some hosts).

The Fix: Delete the .maintenance File

Back up your site before making any file changes — especially if you suspect the update itself may have partially installed. Most good hosts offer one-click backups from the control panel.

Method 1: Via FTP or SFTP (Recommended)

  1. Open your FTP client (FileZilla is free and reliable) and connect to your server.
  2. Navigate to your WordPress root directory — the folder that contains wp-admin, wp-content, and wp-config.php.
  3. Enable "show hidden files." In FileZilla: Server → Force showing hidden files. Files starting with a dot are hidden by default on Linux servers.
  4. Find the file named .maintenance. It will be small — just a few bytes.
  5. Right-click it and choose Delete.
  6. Reload your site. It should be live immediately.

Method 2: Via Your Host's File Manager

  1. Log in to cPanel, Plesk, or your host's control panel and open File Manager.
  2. Navigate to your WordPress root (often public_html or a subdirectory).
  3. In File Manager, look for a Settings or Preferences option and tick Show Hidden Files (dotfiles).
  4. Select .maintenance and delete it.

Method 3: Via WP-CLI (For Developers)

If you have SSH access and WP-CLI installed, this is the fastest method:

wp maintenance-mode deactivate

Or simply delete the file directly:

rm /path/to/wordpress/.maintenance

After Deleting the File: Check the Update Actually Finished

Removing .maintenance brings your site back online, but it doesn't mean the update completed successfully. Do a quick sanity check:

  • Go to Dashboard → Updates. If the plugin or theme still shows as needing an update, the installation didn't finish. Try running the update again individually — not in bulk.
  • Check Dashboard → Plugins. If a plugin is listed with no version number or appears deactivated with an error, the partial update may have corrupted its files. Deactivate it, manually re-upload the plugin files via FTP from a fresh download at wordpress.org, then reactivate.
  • Browse the front end and admin. A partial update can leave a plugin in a broken state even if it appears active. If something looks wrong, check your error logs.

If your site comes back with a new error — a 500, a critical error, or a white screen — the underlying update itself is the real problem. See our guide on WordPress site broke after an update for the next steps.

How to Prevent Maintenance Mode Getting Stuck

A few habits dramatically reduce the chance of this happening again:

  • Update one item at a time. Avoid "Update All" for plugins and themes. Updating individually is slower but gives PHP more room to breathe and makes it obvious which update caused a problem.
  • Update during low-traffic hours. Fewer concurrent visitors means less server load and a cleaner update environment.
  • Use a staging site for major updates. Most managed hosts provide one. Test core updates and major plugin version jumps on staging first.
  • Increase PHP limits if you can. In php.ini or via .htaccess, raising max_execution_time to 120–300 seconds and memory_limit to at least 256M gives the update process more headroom. Check with your host first — some restrict this on shared plans.
  • Keep reliable backups. A backup running just before each update means you can roll back instantly if something goes wrong. A managed care plan that handles this automatically removes the human error from the equation entirely.

When to Call a Professional

Deleting .maintenance and re-running a failed update is genuinely a five-minute task most of the time. You should consider getting expert help if:

  • The site keeps falling into maintenance mode every time you run updates — that points to a server configuration problem that won't fix itself.
  • After clearing the maintenance file, you're now looking at a new error: a 500, a database connection failure, or a white screen.
  • The update partially overwrote core WordPress files and you're not sure what's safe to replace.
  • This happened on a WooCommerce or membership site mid-transaction and you're worried about data integrity.

In any of those situations, start with a free Mend diagnosis — it takes a few minutes to submit, there's no card required, and you'll get a flat-price quote before anyone touches your site. For sites that are completely down right now, the Emergency Rescue service gets a senior engineer on it the same day.


Maintenance mode exists to protect your visitors during updates — it's a good feature working as intended. The .maintenance file is just a flag, and removing a stuck flag is one of the simplest repairs in all of WordPress. The real investment is building update habits that make the whole process boring and uneventful every time.

Frequently asked questions

How long should WordPress maintenance mode normally last?

For a single plugin or theme update, maintenance mode typically lasts 5–30 seconds. Core updates may take up to a couple of minutes. If it's been more than five minutes, the process has almost certainly stalled and you need to delete the .maintenance file manually.

Can I just wait and see if WordPress clears maintenance mode on its own?

No. Once the update process has stopped — whether due to a timeout, an error, or a lost connection — WordPress will not retry it automatically. The .maintenance file will stay there indefinitely until you delete it.

Will deleting the .maintenance file break anything?

No. The file is only a flag that tells WordPress to show the maintenance screen. Deleting it has no effect on your database, plugins, themes, or any other files. The worst case is that a partially-installed update still needs to be re-run afterwards.

Why can't I see the .maintenance file in my file manager?

Files whose names begin with a dot are hidden by default on Linux servers. In cPanel File Manager, look for a Settings or Preferences toggle labelled "Show Hidden Files." In FileZilla, go to Server → Force showing hidden files. Once enabled, the file will appear in your WordPress root directory.