AI Overview
WordPress shows "Briefly unavailable for scheduled maintenance" when an update is interrupted and the .maintenance file is left in the site root. Delete that file, clear your caches, then check the interrupted update actually finished.
Key takeaways
- The maintenance message comes from a .maintenance file WordPress writes in the site root while it updates plugins, themes or core.
- It gets stuck when an update is interrupted: a closed tab, a PHP timeout, a memory limit or one failing plugin in a bulk update.
- Delete .maintenance by FTP, your host's file manager or wp maintenance-mode deactivate, then clear plugin, server and CDN caches.
- Deleting the file does not finish the update, so check plugin versions, verify checksums, re-run updates one at a time and open Site Health.
- Maintenance mode returns a 503 with Retry-After, which is fine for minutes but can cost search visibility if it lasts a day or more.
Summarize with AI
Opens the assistant in a new tab with a link to this post.
On this page
You clicked Update, the screen hung, and now every page shows one line: "Briefly unavailable for scheduled maintenance. Check back in a minute." You checked back. It's still there.
This guide explains what that message is, why WordPress gets stuck in maintenance mode, how to get out in about two minutes, and the checks to run afterwards so a half-finished update doesn't leave something broken behind.
What "Briefly unavailable for scheduled maintenance" means#
That message isn't an error. It's a deliberate pause that WordPress puts on your site while it updates plugins, themes, translations or WordPress core.
Here's what happens when you press Update:
- WordPress writes a small file called
.maintenanceinto your site's root folder, the same folder that holdswp-config.php. - While that file exists, every front-end and admin request is answered with the maintenance message instead of the real page.
- WordPress downloads the update, unpacks it and replaces the old files.
- When the update finishes, WordPress deletes
.maintenanceand the site comes back.
The file is tiny. It contains one line of PHP that records when the update started:
<?php $upgrading = 1793592000; ?>
That number is a Unix timestamp. WordPress checks it on every request, and if the timestamp is more than 10 minutes old, it treats maintenance as over and loads the site normally, even if the file is still there.
Normally this takes seconds. The trouble starts when step 4 never happens.
Why WordPress gets stuck in maintenance mode#
WordPress only removes .maintenance at the end of a successful run. Anything that stops the update midway leaves the file behind. The usual causes:
- You closed the tab or navigated away while the update screen was still working. On many setups the update stops when the browser connection drops.
- The server timed out. Large plugins (page builders, WooCommerce, security suites) take longer to unpack. If PHP hits its
max_execution_time, the script is killed before cleanup. - PHP ran out of memory. If the update exceeds
memory_limit, PHP stops with a fatal error and nothing after that point runs. - Bulk updates. When you tick ten plugins and choose Update, WordPress puts the site into maintenance mode once for the whole batch. One slow or failing plugin in the middle can stall the rest.
- File permission problems. If WordPress can't write to a plugin folder or delete the old version, the update fails partway.
- The new version caused a fatal error as soon as it loaded, so the request that should have finished the update crashed instead.
Why it can last longer than 10 minutes#
Because of the 10 minute rule above, a leftover .maintenance file on its own should clear itself. If your site is still showing the message long after that, one of these is usually going on:
- A page cache stored the maintenance page. A caching plugin, your host's server cache or a CDN may have saved the 503 response and keeps serving it.
- Something keeps rewriting the file. A failing automatic update that retries, a deployment script or a maintenance plugin can write a fresh timestamp each time.
- The file was written with a moving timestamp. Some scripts write
$upgrading = time();, which is always "now", so the 10 minute check never passes. - The site is actually broken. The maintenance screen went away, but the half-installed plugin now causes a critical error or a white screen, which you may be mistaking for the same problem.
How to fix WordPress stuck in maintenance mode#
The fix is to delete the .maintenance file from your site's root folder. Deleting it is safe. It holds nothing but that timestamp, and WordPress creates a new one the next time it updates.
One thing to know before you look for it: files that start with a dot are hidden by default in most FTP clients and file managers. If you don't see it, turn on hidden files first.
Option 1: Delete it with FTP or SFTP#
- Connect to your server with an FTP client such as FileZilla, using the details from your hosting account.
- Open your WordPress root folder. It's usually
public_html,www,htdocsor a folder named after your domain. You're in the right place if you can seewp-config.php,wp-adminandwp-content. - Enable hidden files. In FileZilla this is Server > Force showing hidden files.
- Find
.maintenance, right-click it and choose Delete. - Reload your site in a private browser window.
Option 2: Delete it with your host's file manager#
If you use cPanel, Plesk or a host's own dashboard:
- Open File Manager and go to the WordPress root folder.
- Open the settings and enable "Show hidden files (dotfiles)". In cPanel this is under Settings in the top right.
- Select
.maintenanceand delete it. - Reload the site.
Option 3: Use WP-CLI or SSH#
If you have SSH access, this is the quickest route. From your WordPress root folder:
# Check whether WordPress thinks it's in maintenance mode
wp maintenance-mode status
# Turn it off (this removes the .maintenance file)
wp maintenance-mode deactivate
Or remove the file directly:
ls -la .maintenance
rm .maintenance
Then clear every cache#
If the message is still showing after the file is gone, a cache is serving the old response. Clear them in this order:
- Your caching plugin (from its settings, or delete its folder under
wp-content/cacheif wp-admin is unreachable). - Your host's server cache, from the hosting dashboard.
- Your CDN cache, such as a full purge in Cloudflare.
- Your own browser, or just test in a private window.
If the site now shows a different error, such as a 503 Service Unavailable without the maintenance text or a blank page, the maintenance file wasn't the real problem. Jump to the checks below.
After the fix: make sure the update actually finished#
Deleting .maintenance gets the site back online. It does not finish the interrupted update. You may now have a plugin that's half old and half new, or a missing plugin folder. Work through these checks.
1. Check plugin and theme versions#
Go to Plugins > Installed Plugins and look for:
- Plugins that still show "There is a new version available". These didn't update. Update them again, one at a time.
- Plugins that have disappeared from the list, or that WordPress has deactivated with a message that the plugin file doesn't exist. The folder was removed or left incomplete. Reinstall the plugin from Plugins > Add New Plugin.
- Plugins showing the new version number. These probably finished, but still test them.
Do the same under Appearance > Themes and Dashboard > Updates, or with WP-CLI:
wp plugin list --fields=name,status,version,update
wp theme list --fields=name,status,version,update
2. Verify the files are complete#
WP-CLI can compare your files against the official copies on WordPress.org:
# Check WordPress core files
wp core verify-checksums
# Check plugins installed from WordPress.org
wp plugin verify-checksums --all
Reinstall any plugin that fails. Premium plugins from outside WordPress.org can't be checked this way, so reinstall them from the vendor if in doubt.
Also look in wp-content/upgrade and wp-content/upgrade-temp-backup. Recent WordPress versions keep a temporary copy of the old plugin or theme in the latter while an update runs, and restore it if the update fails. Leftover folders in either place are a sign an update didn't finish cleanly. Don't delete them until the site is working and every plugin is on the version you expect.
3. Re-run the update properly#
For anything that didn't finish:
- Update one plugin at a time from Plugins > Installed Plugins.
- Stay on the page until you see the confirmation.
- If the same plugin keeps timing out, ask your host to raise
max_execution_timeandmemory_limit, or update it with WP-CLI, which isn't affected by browser timeouts:
wp plugin update woocommerce
If it was a WordPress core update that stalled, go to Dashboard > Updates and choose Re-install version, or run wp core update followed by wp core update-db.
4. Check Site Health#
Open Tools > Site Health. It flags problems that often follow a failed update, such as low PHP limits, files WordPress can't write to and failing scheduled tasks. Fix critical issues first.
5. Check the pages that matter#
Finally, look at your real pages, not just wp-admin. Load the homepage, your top landing pages, contact forms and, if you run a store, the cart and checkout. A half-finished update can leave the dashboard looking fine while a layout, form or checkout button is broken on the front end. If you manage several sites, MyKavo can run this check for you by comparing each page with an approved baseline after the update.
How long can maintenance mode last before it hurts SEO?#
While maintenance mode is on, WordPress returns HTTP status 503 Service Unavailable with a Retry-After: 600 header. That's the right response for a short pause. It tells search engines the outage is temporary and to come back in about 10 minutes, so they don't drop the page.
A few minutes of 503 has no lasting effect. The risk grows with time:
- A few hours: crawlers retry later. Visitors bounce, but rankings are normally fine.
- A day or more: search engines may treat a page that keeps returning 503 as gone and start dropping URLs from the index.
- Repeated 503s: a nightly failing automatic update makes the site look unreliable to crawlers.
To see what search engines see, paste your key URLs into a bulk URL status checker. Anything still returning 503 after you've deleted the file is coming from a cache or a broken update.
How to stop it happening again#
Most stuck updates come from the same few habits. Change these and it becomes rare.
- Update one plugin at a time. Bulk updates are convenient, but one slow plugin stalls the whole batch, and you won't know which update caused a problem afterwards.
- Don't close the tab. Wait for "Plugin updated" or "Update completed" before you click anywhere else.
- Take a backup first. Files and database, so you can restore in minutes.
- Test big updates on staging. Major versions of WooCommerce, page builders and themes deserve a staging run first.
- Make sure your PHP limits are realistic. If updates time out regularly, ask your host about
memory_limitandmax_execution_time, or set the WordPress memory limit inwp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
- Watch your automatic updates. Background updates run without you watching, often overnight, so a stall there can go unnoticed for hours. Our guide to WordPress automatic updates covers how to choose which plugins update themselves.
For the full routine, including what to check before and after, read how to safely update WordPress plugins and our WordPress maintenance checklist.
If the site came back but the new plugin version is the real problem (a shifted layout, a form that stops sending), don't keep re-running the update. Roll back the WordPress plugin and investigate.
How to catch a stuck update early#
If a stuck update happens overnight, the first sign is often a customer email.
MyKavo scans your monitored pages from outside your server, the same way a visitor would, so a page answering with the maintenance screen shows up as a page returning 503 instead of 200, flagged as the page going down. With the free WordPress plugin connected, it also checks your pages straight after every plugin, theme and core update, including automatic ones, and names the update in the result, for example "Appeared after: Updated WooCommerce 8.1.0 -> 8.2.0". If the update left a page broken rather than stuck, the before-and-after screenshots and the old and new values show exactly what changed.
Update checks with a verdict are included in every paid plan, from Starter at $7 a month. On MyKavo's free plan, which covers 1 website with 5 pages and weekly scans, updates are still listed so you can see what changed and when.
Summary#
"Briefly unavailable for scheduled maintenance" means an update started and never finished cleaning up. Delete .maintenance from the site root, clear your caches, then confirm the interrupted update really finished. Update one plugin at a time with a backup and it rarely happens again.
Frequently asked questions
What does "Briefly unavailable for scheduled maintenance. Check back in a minute." mean?
WordPress is updating a plugin, theme or core and has put the site into maintenance mode by creating a .maintenance file in the root folder. If the message doesn't go away, the update was interrupted and the file was left behind.
How do I get WordPress out of maintenance mode?
Delete the .maintenance file from your WordPress root folder, the one that contains wp-config.php, using FTP, your host's file manager or the WP-CLI command wp maintenance-mode deactivate. Then clear your caching plugin, server and CDN caches.
Is it safe to delete the .maintenance file?
Yes. It only contains a timestamp recording when the update started. WordPress creates a new one the next time it runs an update. Deleting it does not finish or undo the update, so check your plugin versions afterwards.
Why can't I see the .maintenance file?
Files that start with a dot are hidden by default. Turn on hidden files in your FTP client (in FileZilla, Server > Force showing hidden files) or in your file manager's settings, and look in the same folder as wp-config.php.
Does maintenance mode hurt SEO?
Not if it's short. WordPress returns a 503 status with a Retry-After header, which tells search engines the outage is temporary. If pages keep returning 503 for a day or more, search engines may start dropping them from the index.
Why is my site still in maintenance mode after deleting the file?
Usually a cache is still serving the old maintenance page. Clear your caching plugin, your host's server cache and your CDN, then test in a private window. If the file reappears, an automatic update or script is recreating it.
Get alerted when your site breaks. Free, no card.
Start free