🔧 Flat-price WordPress fixes from $69 — start with a free diagnosis, no card. Get a free diagnosis →

Errors

How to Fix WordPress Stuck in Maintenance Mode (Step-by-Step)

Aug 24, 2026 · 6 min read · By the Mend engineering team

To fix a WordPress site stuck in maintenance mode, connect to your server using your hosting control panel File Manager or FTP/SFTP, locate the root directory (usually public_html), and delete the hidden file named .maintenance. If deleting this file does not bring your site back online immediately, clear your server and browser cache, or resolve an incomplete plugin or core update that crashed midway through execution.

Seeing the plain white screen with the message "Briefly unavailable for scheduled maintenance. Check back in a minute." can be alarming, especially when it persists long after an update should have finished. Fortunately, this is one of the most common and easily fixable issues in WordPress.

Why Does WordPress Get Stuck in Maintenance Mode?

When you trigger an update for WordPress core, a plugin, or a theme, WordPress automatically creates a temporary file named .maintenance in your site's root directory. This file contains a short snippet of PHP code with a timestamp:

<?php $upgrading = 1711000000; ?>

While this file exists, WordPress intercepts every visitor request and displays the maintenance notice to prevent users from interacting with the site while files are being overwritten or database schemas are being updated.

Under normal conditions, WordPress completes the update and automatically deletes the .maintenance file within a few seconds. However, the site gets stuck in maintenance mode if the update process is interrupted before the cleanup step can run. Common triggers include:

  • Browser tab closed prematurely: Navigating away or closing the browser window while an update is actively downloading or unpacking.
  • PHP timeout errors: The server's max_execution_time limit was reached during a heavy update, causing the script to terminate abruptly.
  • Memory limit exhaustion: The site exceeded its allocated PHP memory limit while extracting update archives.
  • Plugin or theme compatibility conflicts: A fatal error occurred midway through an update, halting script execution before WordPress could remove the file.
  • Bulk updating too many items at once: Triggering updates for a dozen plugins simultaneously can easily overload shared hosting resources.

Step-by-Step: How to Get Your Site Out of Maintenance Mode

Follow these steps in order. Step 1 resolves the lock in over 90% of cases.

Step 1: Delete the .maintenance File via File Manager or FTP

Before making any changes to your server, ensure you have access to your hosting dashboard or FTP credentials. Always maintain a recent backup of your site before running updates or performing server maintenance.

  1. Log in to your hosting account: Open your web host's control panel (such as cPanel, Plesk, or a custom host dashboard like SiteGround, Kinsta, or WP Engine).
  2. Open File Manager: Navigate to the File Manager tool and open the root directory of your WordPress installation. This directory is usually named public_html, www, htdocs, or your domain name.
  3. Enable hidden files: The .maintenance file starts with a dot, which means it is a hidden system file. In cPanel, click Settings in the top-right corner and check Show Hidden Files (dotfiles). In FTP clients like FileZilla, choose Server > Force showing hidden files from the top menu.
  4. Locate and delete the file: Look for the file named .maintenance in the root folder (alongside folders like wp-admin, wp-content, and files like wp-config.php). Right-click the file and select Delete.

If you prefer using SFTP or SSH, connect to your server and run the following command inside your web root directory:

rm .maintenance

Once deleted, refresh your website in an incognito window. Your site should immediately return to normal operation.

Step 2: Clear Server, CDN, and Browser Caches

If you deleted the .maintenance file but the message still appears, your web server, caching plugin, or Content Delivery Network (CDN) may be serving a cached copy of the maintenance page.

  • Clear CDN cache: If you use Cloudflare, Sucuri, or a built-in hosting CDN, log in to your dashboard and purge the cache completely.
  • Purge object and page cache: Flush server-level caches like Redis, Varnish, or NGINX fastcgi cache through your hosting control panel.
  • Hard refresh your browser: Press Ctrl + F5 (Windows) or Cmd + Shift + R (Mac) to bypass local browser caching.

Step 3: Clear the Maintenance Lock via WP-CLI (For Advanced Users)

If you have SSH access to your server and WP-CLI installed, you can check and toggle maintenance mode directly from the command line without searching for files:

# Check current maintenance mode status
wp maintenance-mode status

# Deactivate maintenance mode
wp maintenance-mode deactivate

WP-CLI will safely remove the flag file and clear internal state checks in a single command.


What to Do After Removing the .maintenance File

Deleting the file fixes the symptom, but you still need to verify whether the original update actually completed successfully.

1. Check for Unfinished Updates

Log in to your WordPress admin dashboard and navigate to Dashboard > Updates. If an update was interrupted, the plugin, theme, or core files may be partially overwritten or outdated. Re-run any updates that failed, updating one item at a time.

2. Handle Potential Fatal Errors or White Screens

If removing the maintenance file results in a PHP fatal error or a blank screen, an interrupted update may have left corrupted plugin or theme files on your server. If your site displays a critical error notification, refer to our guide on how to fix a WordPress site that broke after an update or follow our troubleshooting steps for the WordPress critical error screen.

If a specific plugin update failed halfway through, you can safely manually replace its files via FTP or follow our step-by-step guide on how to downgrade a WordPress plugin or theme safely to restore a known working version.


How to Prevent WordPress from Getting Stuck in Maintenance Mode

Preventing maintenance locks comes down to maintaining server stability and following safe update practices:

Best Practice Why It Helps
Update plugins individually Bulk updates strain PHP memory and execution time limits, increasing the risk of script timeouts.
Increase PHP execution limits Higher max_execution_time (e.g., 60–120 seconds) gives large updates time to download and extract.
Keep browser window open Ensures the background AJAX request finishing the update cycle receives the completion response.
Increase PHP memory limit Adding define('WP_MEMORY_LIMIT', '256M'); to wp-config.php prevents out-of-memory crashes.
Use staging environments Testing major plugin or core updates on staging prevents front-end downtime on live sites.

When to Call a Professional

While removing a .maintenance file takes only a minute when you have file access, deeper host configurations or broken database migrations can cause recurring failures. You should consult a senior WordPress engineer if:

  • Deleting .maintenance immediately brings up a blank page or unrecoverable PHP error across your dashboard and front-end.
  • The site repeatedly drops back into maintenance mode every time an automatic background update runs.
  • You do not have FTP, SSH, or host control panel access to remove the file yourself.
  • An interrupted core update corrupted your database, leaving administrative tables damaged.

If you are stuck or need your site restored right now without risking data loss, let our team handle it. With the Mend Quick Fix, a senior WordPress engineer will diagnose the underlying crash, clean up broken updates, and get your site back online fast for a flat fee — backed by a fixed, or your money back guarantee.

Unsure what caused the crash? Request a free diagnosis and we will review your site logs and send a plain-English repair plan before any work begins.