How to Fix WordPress Stuck in Maintenance Mode
To fix WordPress stuck in maintenance mode, delete the file named .maintenance from your WordPress root directory using FTP, SFTP, or your hosting file manager. This file is created automatically when WordPress begins an update and is supposed to be deleted when the update completes. If the update process is interrupted — by a server timeout, a lost connection, or a PHP error — the file remains, and your site stays in maintenance mode indefinitely.
When WordPress is stuck in maintenance mode, visitors see a blank page or a message reading “Briefly unavailable for scheduled maintenance. Check back in a minute.” — except the minute never ends. Your site remains inaccessible until the .maintenance file is manually removed. This is one of the most common WordPress errors and one of the easiest to fix — once you know what to look for.
What Causes WordPress to Get Stuck in Maintenance Mode?
Interrupted update process. When you click “Update” for WordPress core, plugins, or themes, WordPress creates a .maintenance file in the root directory. This file activates maintenance mode, displaying a message to visitors while the update runs. When the update finishes successfully, WordPress deletes the file automatically. If the update is interrupted — due to a server timeout, a PHP memory limit being exceeded, a lost internet connection, or a hosting server issue — the .maintenance file is never deleted, and your site remains stuck.
Updating too many plugins simultaneously. Clicking “Update All” when many plugins have available updates forces WordPress to process multiple updates sequentially. If any single update fails or times out partway through the batch, the entire process halts with maintenance mode still active. This is why we recommend updating plugins one at a time.
Server resource limits. On shared hosting with tight resource limits (PHP memory, execution time, CPU), large updates — particularly WordPress core updates or updates to heavy plugins like WooCommerce or Elementor — can exceed the allowed processing time, causing the server to kill the update process before it completes.
Conflicting update processes. If two administrators try to run updates at the same time, or if an auto-update triggers while a manual update is in progress, the competing processes can deadlock and leave the site in maintenance mode.
Step 1: Delete the .maintenance File
This is the fix in 90% of cases. Connect to your WordPress site using FTP (FileZilla is a popular free client), SFTP, or your hosting control panel’s file manager (cPanel File Manager, Plesk File Manager, etc.).
Navigate to your WordPress root directory — this is the folder containing wp-config.php, wp-content, and wp-admin. Look for a file named .maintenance. Note that this is a hidden file (the filename starts with a dot), so you may need to enable “Show hidden files” in your FTP client or file manager settings.
In FileZilla, go to Server → Force showing hidden files. In cPanel File Manager, click Settings → Show Hidden Files. In Plesk File Manager, hidden files are shown by default.
Once you find the .maintenance file, delete it. Reload your website. It should now be accessible again.
Step 2: Check if the Update Actually Completed
Deleting the .maintenance file removes the maintenance mode screen, but it does not tell you whether the update that triggered maintenance mode actually completed successfully. You need to verify.
Log in to your WordPress admin dashboard. Go to Dashboard → Updates and check if there are still pending updates. Go to Plugins → Installed Plugins and verify that your plugins are at their expected versions (compare version numbers with what is available on WordPress.org). If any updates appear incomplete — a plugin shows an older version than expected, or WordPress reports that an update is available for something you already tried to update — apply the update again, this time one at a time.
If your site looks or behaves differently after removing the .maintenance file — broken layout, missing features, error messages — the interrupted update may have left your site in a partially updated state. See Step 3.
Step 3: Handle a Partially Completed Update
If the update was interrupted partway through, your WordPress installation may have a mix of old and new files — which can cause errors, broken functionality, or the white screen of death.
For Interrupted Plugin Updates
Delete the partially updated plugin folder via FTP (find it in /wp-content/plugins/). Reinstall the plugin from WordPress.org or the vendor’s website. This replaces the corrupted partial update with a clean, complete installation.
For Interrupted WordPress Core Updates
Download a fresh copy of your WordPress version from wordpress.org. Extract it. Upload the wp-admin and wp-includes folders to your server via FTP, overwriting the existing ones. Do not overwrite wp-content or wp-config.php. Then go to Dashboard → Updates in your admin and run the core update again if it is still showing as available.
For Interrupted Theme Updates
Delete the partially updated theme folder via FTP (in /wp-content/themes/) and reinstall from the theme developer’s website or WordPress.org. If this was your active theme, WordPress will fall back to a default theme — reactivate your theme after reinstalling.
If the partial update has caused errors you cannot resolve, restore from your most recent backup — this returns your site to its pre-update state, and you can attempt the update again with better conditions (fewer simultaneous updates, more PHP memory, a stable connection).
Step 4: Prevent Getting Stuck in Maintenance Mode Again
Update plugins one at a time. Never use “Update All” on a production site. Update one plugin, verify it works, then update the next. This prevents batch update failures and makes it easy to identify which update caused a problem if something goes wrong. Read our safe update guide for the complete process.
Increase PHP resource limits. If updates are timing out due to resource limits, increase your PHP memory limit (define('WP_MEMORY_LIMIT', '256M'); in wp-config.php) and execution time (set_time_limit(300); or max_execution_time = 300 in php.ini). See our guide on fixing memory exhausted errors.
Use a stable connection. Do not close your browser or navigate away from the update page while WordPress is processing updates. A lost connection to the admin page does not necessarily interrupt the server-side update process, but it can cause issues with the post-update cleanup that removes the .maintenance file.
Take a backup before updating. Always. If an update leaves your site in a broken state, a backup lets you restore within minutes. Our backup service takes automatic backups before every update cycle.
Use a professional update service. Our WordPress update service handles all updates daily with pre-update backups and visual validation. If an update triggers maintenance mode or causes any issue, our 24/7 team resolves it immediately — often before you even know it happened.
Using WP-CLI to Fix Maintenance Mode
If you have SSH access to your server and WP-CLI installed, you can check for and remove the maintenance file from the command line:
ls -la /path/to/wordpress/.maintenance — check if the file exists.
rm /path/to/wordpress/.maintenance — delete it.
You can also use WP-CLI to run updates more reliably than the web-based updater, because CLI-based updates are not subject to PHP execution time limits enforced on web requests:
wp core update — update WordPress core.
wp plugin update --all — update all plugins.
wp theme update --all — update all themes.
Read our guide on using WP-CLI for WordPress management.
Frequently Asked Questions
Is it safe to delete the .maintenance file?
Yes. The .maintenance file is a temporary flag file — it contains a single line of PHP code that tells WordPress to display the maintenance message. Deleting it simply turns off maintenance mode. It does not affect your database, your content, your plugins, or any other part of your WordPress installation. WordPress will create a new .maintenance file the next time an update runs and delete it again when the update completes normally.
I cannot find the .maintenance file. What do I do?
The .maintenance file is a hidden file (its name starts with a dot). Ensure your FTP client or file manager is configured to show hidden files. If it still does not appear, the file may have already been deleted by another admin or a server cleanup process — in which case, the maintenance mode may be caused by something else. Try clearing your browser cache and refreshing. If you still see the maintenance message, the issue might be a caching plugin serving a cached version of the maintenance page — clear your caching plugin’s cache or temporarily deactivate it via FTP.
My site shows the maintenance message but only to some visitors. Why?
This is usually a caching issue. Your caching plugin or CDN cached the maintenance mode page and is serving that cached version to some visitors even after the .maintenance file has been deleted. Clear your caching plugin’s cache completely, and if you use a CDN like Cloudflare, purge the CDN cache as well.
Can I customise the maintenance mode message?
Yes. WordPress looks for a file named maintenance.php (note: no dot at the beginning) in your wp-content directory. If this file exists, WordPress uses it instead of the default “Briefly unavailable” message. You can create a custom maintenance.php with your own HTML, branding, and messaging — useful for planned maintenance windows.
Need Expert Help? Let WP Ministry Handle It
Getting stuck in maintenance mode is a symptom of an update process that did not go as planned. While the immediate fix is simple (delete the .maintenance file), the underlying cause — interrupted updates, resource limits, plugin conflicts — deserves attention to prevent recurrence.
Our update service prevents maintenance mode issues entirely. We update daily with pre-update backups, monitor the entire update process, and resolve any issues immediately. Care plans start at $35/month.
Need help right now? Call (901) 249-0909 or submit an emergency ticket.
Related Articles
How to Fix “Briefly Unavailable for Scheduled Maintenance” in WordPress
How to Safely Update WordPress (Core, Plugins, and Themes)
How to Fix the WordPress White Screen of Death (Step by Step)