WordPress Stuck in Maintenance Mode? Here’s How to Fix It

You went to update a plugin or WordPress core, stepped away for a moment, and came back to find your entire website displaying this message:

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

But a minute passes. Then five. Then an hour. The message is still there — and your website is completely inaccessible to every visitor.

Your WordPress site is stuck in maintenance mode.

The good news: this is one of the easiest WordPress errors to fix. You can resolve it in under two minutes — and you don't need any technical expertise to do it. This guide will explain exactly why it happens, how to fix it right now, and how to make sure it never happens again.

What Is WordPress Maintenance Mode?

When WordPress performs an update — whether it's a core update, a plugin update, or a theme update — it temporarily puts your site into maintenance mode to protect visitors from seeing a broken or half-updated website during the process.

Here's what WordPress does behind the scenes during every update:

  1. Creates a file called .maintenance in your WordPress root directory
  2. Displays the "Briefly unavailable for scheduled maintenance" message to all visitors
  3. Runs the update
  4. Deletes the .maintenance file when the update completes successfully
  5. Your site comes back online automatically

This whole process usually takes 10 to 30 seconds. Visitors might not even notice.

The problem happens in step 4. If the update is interrupted — your browser closed, your internet dropped, a PHP timeout occurred, or a server error fired mid-update — WordPress never gets to delete the .maintenance file. Your site stays in maintenance mode indefinitely because the trigger to end it never fires.

What Causes WordPress to Get Stuck in Maintenance Mode?

  • Closing the browser during an update — If you navigate away from or close the browser tab while WordPress is updating, the process gets interrupted before it can clean up
  • Internet connection dropped during update — A temporary loss of connectivity mid-update leaves the .maintenance file in place
  • PHP timeout — On slower shared hosting, a large update can exceed the server's PHP execution time limit, killing the process before it finishes
  • Multiple simultaneous updates — Trying to update several plugins at the same time can overwhelm the server, causing one or more updates to fail mid-process
  • Server resource limits hit — Low memory or CPU limits on shared hosting can interrupt updates before completion
  • A plugin or theme with a large file size — Oversized update packages can time out during download or extraction
01
Using Your Hosting File Manager (Easiest)

This is the fastest method and requires no extra software.

  1. Log in to your hosting control panel (cPanel, Plesk, DirectAdmin, etc.)
  2. Open the File Manager
  3. Navigate to your WordPress root directory — typically public_html, www, or a folder named after your domain
  4. Look for a file named .maintenance
Hidden file: The .maintenance file is hidden by default. In cPanel File Manager, click Settings in the top-right corner and check "Show Hidden Files (dotfiles)" then click Save.
  1. Click on the .maintenance file to select it
  2. Click Delete (or right-click → Delete)
  3. Confirm the deletion
That's it! Reload your website — it should be back online immediately.
02
Using FTP (FileZilla or Similar)

If you don't have access to a file manager, FTP works just as well.

  1. Open your FTP client (FileZilla is free and widely used)
  2. Connect to your server using your FTP credentials (hostname, username, password, port 21)
  3. Navigate to your WordPress root directory (same location as wp-config.php and wp-login.php)
  4. Enable hidden file visibility: In FileZilla, go to Server → Force showing hidden files
  5. Find the file named .maintenance
  6. Right-click it and select Delete
  7. Confirm the deletion
Reload your website — maintenance mode is gone.
03
Using SSH (For Advanced Users)

If you have SSH access to your server, this is the fastest method of all — one single command:

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

Replace /path/to/your/wordpress/ with your actual WordPress installation path (e.g., /var/www/html/ or /home/username/public_html/).

If you're not sure of the path, run:

Bash
find / -name ".maintenance" 2>/dev/null

This will locate the file wherever it is on your server.

What to Do After Deleting the .maintenance File

Once your site is back online, don't just breathe a sigh of relief and move on. The update that triggered maintenance mode likely didn't complete. Here's what to do next:

Step 1: Check what was being updated

Log in to your WordPress admin dashboard and go to Dashboard → Updates. You'll see a list of available updates. Check whether any plugins, themes, or WordPress core still show as having updates available — a sign that the interrupted update didn't finish.

Step 2: Run the update again

This time, stay on the page and wait for it to fully complete before doing anything else. Don't click elsewhere, don't close the tab, and make sure your internet connection is stable.

Step 3: Update one item at a time

Instead of selecting all plugins and updating them simultaneously, update them one by one. This is slower but far less likely to trigger a maintenance mode issue, especially on shared hosting.

Step 4: Verify your site is working correctly

After updating, check your homepage, a few posts or pages, your contact form, and any other key functionality. If something breaks after an update, you'll want to know immediately.

What If Deleting .maintenance Didn't Fix It?

In very rare cases, deleting the .maintenance file doesn't bring the site back. This usually means the interrupted update caused a secondary problem:

The update broke a plugin or theme

If a plugin update was interrupted partway through, the plugin's files may be in a half-updated, broken state. This can cause a white screen or 500 error even after maintenance mode ends.

Fix: Connect via FTP, navigate to /wp-content/plugins/, and delete the folder of the plugin that was being updated. Then reinstall it fresh from Plugins → Add New.

WordPress core update was interrupted

A partial core update can leave critical WordPress files in a damaged state.

Fix: Download the latest WordPress version from wordpress.org, delete the wp-content folder from the downloaded package (to protect your existing content), then upload all remaining files to your server via FTP, overwriting existing files.

The site now shows a White Screen of Death or 500 error

The maintenance mode file is gone but the underlying update damage is causing a new error.

Fix: Refer to our guides on fixing the WordPress White Screen of Death and fixing the 500 Internal Server Error.

You still can't access wp-admin

Fix: Try deactivating all plugins via FTP by renaming the /wp-content/plugins/ folder to plugins_disabled. If that restores access, reactivate plugins one by one to find the broken one.

How to Prevent WordPress Getting Stuck in Maintenance Mode

The fix is easy — but prevention is even better:

  • Always update from a stable internet connection. Never run WordPress updates on mobile data or unstable Wi-Fi
  • Don't close the browser tab during updates. Stay on the page until you see "Update successful"
  • Update plugins one at a time. Bulk updates are convenient but riskier on shared hosting
  • Use a staging environment. Run updates on a staging copy first — if anything breaks, it breaks there, not on your live site
  • Take a backup before every update. Use UpdraftPlus, BlogVault, or your host's backup system
  • Upgrade your hosting if updates frequently time out. A managed WordPress host or VPS handles updates far more reliably
  • Use a maintenance mode plugin for planned downtime. SeedProd, WP Maintenance Mode, or Elementor's built-in feature give you full control

Understanding the .maintenance File

For those curious about what's actually happening under the hood, here's what the .maintenance file looks like:

PHP
<?php $upgrading = 1715000000; ?>

It's a tiny PHP file containing a single variable — a Unix timestamp recording when the maintenance period started. WordPress checks for this file on every page load.

If it exists and the timestamp is less than 10 minutes old, WordPress displays the maintenance message. If the timestamp is older than 10 minutes, WordPress should ignore it automatically.

Note: This automatic timeout doesn't always trigger correctly — particularly if the file was created by certain plugins or if server-level caching is serving the maintenance page from cache. In those cases, deleting the file manually remains the most reliable fix.

Putting Your Site Into Maintenance Mode Intentionally

If you're reading this because you want to put your site into maintenance mode deliberately — not because you're stuck in it — here's the right way to do it.

Never manually create a .maintenance file for planned downtime. It's unreliable and gives you no control. Instead, use a dedicated maintenance mode plugin:

Plugin Features
SeedProdMost popular. Drag-and-drop builder for beautiful coming soon/maintenance pages. Email opt-in forms to capture leads while your site is down
WP Maintenance ModeLightweight and free. Countdown timer, custom messages, easy on/off toggle from dashboard
Elementor Maintenance ModeIf you use Elementor, built-in feature under Settings → Maintenance Mode lets you use any Elementor-designed page

All of these plugins handle the enable/disable process cleanly — no orphaned files, no getting stuck.

Quick Reference Summary

Situation Action
Site showing "Briefly unavailable for scheduled maintenance"Delete the .maintenance file from WordPress root via File Manager or FTP
Can't see the .maintenance fileEnable "Show Hidden Files" in your file manager or FTP client
Site still broken after deleting .maintenanceCheck for an interrupted plugin/theme update — reinstall the affected plugin or re-upload WordPress core files
White screen or 500 error after maintenance modeSee our White Screen of Death and 500 Error fix guides
Want to prevent this happening againUpdate one plugin at a time, stay on the page, use a staging site and take backups
Want to use maintenance mode intentionallyUse SeedProd or WP Maintenance Mode plugin instead of the .maintenance file

Frequently Asked Questions

Q: How long should WordPress maintenance mode last?
A: Normal WordPress maintenance mode during an update lasts between 10 and 60 seconds. If it's been more than a couple of minutes, your site is stuck and you need to delete the .maintenance file manually.
Q: Does deleting the .maintenance file affect my database or content?
A: Not at all. The .maintenance file is a temporary PHP file that only controls whether the maintenance message is shown. Deleting it has zero effect on your database, posts, pages, settings, or any other content.
Q: Why did my WordPress site go into maintenance mode on its own?
A: WordPress only enters maintenance mode during updates. If it went into maintenance mode without you manually triggering an update, it's possible an automatic background update was running (WordPress runs minor updates automatically by default). Check your update history under Dashboard → Updates.
Q: Can I disable automatic WordPress updates to prevent this?

Yes. Add this line to wp-config.php to disable automatic core updates:

define( 'WP_AUTO_UPDATE_CORE', false );

However, automatic minor updates (security patches) are important for keeping your site safe. Consider disabling only major auto-updates and keeping minor security updates enabled.

Q: My maintenance mode page looks different from the default WordPress message. Why?
A: You likely have a maintenance mode plugin installed that's displaying a custom page. In this case, look for the plugin in your wp-admin (if accessible) and turn it off there rather than deleting a .maintenance file.

Final Thoughts

WordPress getting stuck in maintenance mode sounds alarming but is genuinely one of the simplest problems to solve. Find the .maintenance file in your WordPress root directory, delete it, and your site is back online in seconds.

The key is knowing where to look and how to see hidden files — once you know that, it's a two-minute fix you can do yourself without any developer help.

Get in touch with us today and we'll sort it out
Views: 115