Your site was fine five minutes ago. Now every page shows the same flat grey message: "Briefly unavailable for scheduled maintenance. Check back in a minute." You wait. You refresh. Nothing. If your WordPress stuck in maintenance mode screen won't clear on its own, the cause is almost always one leftover file — and you can delete it in under two minutes.
Quick Answer: WordPress shows the maintenance message while it installs an update, controlled by a hidden
.maintenancefile in your site's root folder. When an update gets interrupted, that file is left behind and the message never clears. Delete.maintenancefrom your WordPress root directory using cPanel, FTP, or SSH, then reload the page — your site comes straight back.
What That "Briefly Unavailable" Message Actually Means
When you update WordPress core, a plugin, or a theme, WordPress quietly drops a file named .maintenance into your site's root directory — the same folder that holds wp-config.php, wp-admin, and wp-content. While that file exists, WordPress serves the "briefly unavailable for scheduled maintenance" notice to every visitor instead of your real pages. It's a feature, not a fault: it stops people loading a half-updated site.
In the support tickets we handle at Hostaccent, this is one of the most common WordPress emergencies — and one of the fastest to clear once you know where to look. The message comes from a function in wp-includes/load.php, and the .maintenance file holds a single PHP timestamp marking when the update began. As of 2026, this mechanism is unchanged across current WordPress 6.x releases running on PHP 8.2+.
Here's the detail most guides skip: WordPress is supposed to ignore that lock file automatically after 10 minutes (600 seconds). So if you simply wait ten minutes, the site often returns on its own. But if the underlying update genuinely failed, the screen sticks — and waiting won't help. That's when you delete the file by hand. WordPress's own documentation lists this under common site errors for good reason.
Insider Insight: A WordPress maintenance mode stuck screen that survives a full 10-minute wait is telling you something — the update didn't just pause, it broke. Deleting
.maintenanceclears the screen, but you'll still need to finish or roll back the update (covered below), or it can re-lock.
WordPress Stuck in Maintenance Mode: The 60-Second Fix
The fix is the same regardless of the cause: remove the .maintenance file from your WordPress root. Pick whichever access method you already have.
Option 1 — cPanel File Manager (easiest)
- Log in to your hosting control panel and open File Manager.
- Click Settings (top right) and tick Show Hidden Files (dotfiles) — the leading dot makes
.maintenanceinvisible by default. - Open your site's root folder (usually
public_html, or the subfolder if WordPress lives in one). - Right-click
.maintenanceand choose Delete. - Reload your site.
Option 2 — FTP or SFTP (FileZilla, Cyberduck)
- Connect to your server with your FTP/SFTP credentials.
- In FileZilla, enable Server → Force showing hidden files so dotfiles appear.
- Browse to the WordPress root.
- Delete the
.maintenancefile, then refresh the browser.
Option 3 — SSH (fastest if you have terminal access)
bashcd /path/to/your/wordpress rm -f .maintenance
One command, done. On our own Nginx → Apache stack, this is how our team clears a stuck lock during a migration — it takes seconds.
Pro Tip: Don't see
.maintenanceanywhere? You're either looking in the wrong folder (check wherewp-config.phplives — that's your true root) or hidden files are still off. Nine times out of ten it's the hidden-files toggle.
Why the Lock File Gets Left Behind
Deleting the file fixes the symptom. Knowing the cause stops the repeat. Ranked by how often we actually see each one:
- An update interrupted mid-run. You clicked "Update," then closed the tab, lost connection, or moved away from the page before WordPress finished. The file never got deleted.
- Bulk-updating too many plugins at once. Updating 15 plugins in one click can blow past your server's PHP limits —
max_execution_time(often 30 seconds by default) ormemory_limit(often 128M). PHP dies mid-update, leaving the lock behind. - A fatal error in the update itself. A plugin or theme update hits a PHP error, the process halts, and
.maintenancestays put. - Underpowered or oversold hosting. On slow, shared disks, updates crawl and time out far more often. When we migrate customer sites, we repeatedly find leftover
.maintenancefiles from a previous host's interrupted updates.
The common thread? The update started but never cleanly finished. Faster storage and sane PHP limits make this rare — on NVMe SSD storage, an update that took 40 seconds on a tired shared server can finish in a handful, well inside any timeout.
Finish the Interrupted Update and Confirm You're Back
Clearing the file gets your visitors back in. But if the update actually failed, you have a second job: finishing it.
- Reload your site to confirm the public pages load.
- Log in to
wp-admin. If WordPress needs to complete a database update, it'll prompt you — or visityoursite.com/wp-admin/upgrade.phpdirectly to trigger it. - Check the plugin or theme that was updating. Confirm it's active and on the version you expected. If the site now throws a different error — a 500 Internal Server Error in WordPress or a 403 Forbidden error — that update half-applied and needs re-running or rolling back.
- Re-run the update one item at a time. Update that single plugin again on its own. If it locks the site again, the plugin itself is the problem — rename its folder in
wp-content/plugins(e.g.pluginname→pluginname_off) to force-deactivate it, then update or replace it. WordPress's guide to updating safely walks through the manual route.
Pro Tip: If
.maintenancekeeps reappearing within seconds of deleting it, a stuck auto-update or a cron job is recreating it. Adddefine('WP_AUTO_UPDATE_CORE', false);anddefine('AUTOMATIC_UPDATER_DISABLED', true);towp-config.php, delete the file again, then update manually.
How to Stop Maintenance Mode Sticking Again
You don't want to learn this fix twice. A few habits and settings end the problem for good:
- Update one plugin at a time. Tedious, yes — but it's the single biggest cause we see, and it costs nothing to fix.
- Raise your PHP limits. Set
memory_limitto at least 256M andmax_execution_timeto 60–120 seconds, inphp.ini, your control panel's PHP settings, or by asking your host. The PHP manual on these directives has the exact syntax. - Always back up before updating. A one-click restore turns a failed update from an incident into a non-event.
- Use a staging site. Test updates on a copy first, then push live — most managed plans, Hostaccent's included, bundle one.
- Run on hardware that doesn't choke. Updates time out on oversold servers. Adequate CPU, RAM, and NVMe SSD storage keep them quick. For heavier sites, a dedicated environment like a high-performance EU VPS removes the resource ceiling entirely.
Insider Insight: "Increase your PHP memory limit" is the advice everyone gives, but on genuinely oversold shared hosting you often can't — the host caps it. If
memory_limitwon't move above 128M no matter what you edit, that's not a WordPress problem. It's a hosting problem, and no config tweak fixes it.
Building a fresh site rather than rescuing one? Our breakdown of .com vs .net vs .io domain extensions helps you choose before you build.
Let a Managed Stack Handle WordPress Updates for You
The short version:
- Delete the
.maintenancefile from your WordPress root — that clears the screen instantly. - If the update truly failed, finish it at
/wp-admin/upgrade.phpor roll it back. - Update one plugin at a time and keep
memory_limitat 256M+ to stop it recurring.
If babysitting plugin updates and hand-editing php.ini isn't how you want to spend your week, that's the whole point of managed hosting. Hostaccent's Managed WordPress Hosting runs on a WHMCS-billed, Cloudflare-fronted Nginx → Apache stack with NVMe SSD storage — generous PHP limits and fast disks mean updates finish well inside any timeout, so you're far less likely to find WordPress stuck in maintenance mode again. The Basic plan starts at $22.99/yr, with UK-based human support if an update ever does go wrong.
Honest caveat: managed hosting cuts down stuck-update incidents — it can't make a badly coded plugin safe. You still want backups and one-at-a-time updates on any host. This guide comes from the team at Hostaccent, a UK-registered host operating since 2018 with a Bangladesh branch and customers worldwide.
Frequently Asked Questions
How do I get my WordPress site out of maintenance mode?
Delete the hidden .maintenance file from your site's root folder — the directory that holds wp-config.php. Use cPanel File Manager (turn on hidden files), FTP, or the SSH command rm -f .maintenance. Reload the page and your site returns immediately. If a different error appears, the update itself needs finishing.
Where is the .maintenance file located?
It sits in your WordPress root directory — the same level as wp-admin, wp-content, and wp-config.php, usually public_html. Because the filename starts with a dot, it's hidden by default, so enable "show hidden files" in your file manager or FTP client before you go looking for it.
How long does WordPress stuck in maintenance mode last?
By design, WordPress ignores the lock file after 10 minutes (600 seconds) and the site returns on its own. If the screen survives a full ten-minute wait, the update genuinely failed — waiting won't help. Delete the .maintenance file and finish the update manually instead.
Will I lose any content if I delete the .maintenance file?
No. The .maintenance file is just a temporary lock flag containing a timestamp — it holds none of your posts, pages, images, or settings. Deleting it only tells WordPress to stop showing the maintenance screen. Your database and uploads are completely untouched.
Why does my site keep dropping back into maintenance mode?
Something is recreating the lock — usually a stuck auto-update or a failing plugin update that retries. Disable auto-updates in wp-config.php, delete the file, and update manually one item at a time. Managed hosts like Hostaccent run updates in a controlled way that avoids this loop.
Can I prevent the maintenance mode error for good?
Mostly, yes. Update one plugin at a time, set memory_limit to 256M and max_execution_time to 60+ seconds, back up before every update, and run on hosting with NVMe SSD storage that won't time out. Those four habits remove nearly every cause.










Discussion
Have a question or tip about this topic? Share it below — your comment will appear after review.