Create Accountor Login
WordPress

WordPress Maintenance Mode: What It Does and Does Not Cover

· Updated September 30, 2026 · 7 min read

Developer working on code across two monitors
Photo by Lisa Fotios on Pexels

What Maintenance Mode Really Does

Maintenance mode is a holding page. There is nothing more to the feature than that.

During a core, plugin, or theme update, WordPress writes a small file called .maintenance into your web root. While it exists, logged out visitors see a plain message that the site is briefly unavailable, so they never land on a site that is half old code and half new. When the update ends, WordPress deletes the file. On a healthy install that takes a few seconds and nobody notices.

Most of what people assume it protects them from, it does not touch. This post sorts out which is which, and starts with the case that brings most readers here: a site stuck on that message.

Why a Site Gets Stuck in It

One leftover file does it. An update dies halfway, the PHP process times out, or someone closes the browser tab mid-update, and .maintenance stays behind. Every visitor keeps getting the holding screen while the admin stares at it.

Delete the file. Connect by SFTP or open your host's file manager, go to the folder that holds wp-config.php, and remove .maintenance. It starts with a dot, so it is hidden until you switch on hidden files, and plenty of people conclude it is not there. Once it is gone, the site comes back immediately.

The scramble usually has one of two causes. Either nobody knows where the web root is, or the SFTP login left with whoever built the site and was never replaced. Fix both on a quiet afternoon, not during an outage. A password manager entry takes five minutes, and managed WordPress hosting removes the hunt for the folder altogether.

If the file is gone and the site still shows the message, clear any page cache and look in a private window before assuming something else is wrong. A cached copy of the holding page is common.

The file is the easy part. A stuck file means an update failed, and that update is still not applied. If you go back to the dashboard and click Update again without finding out what broke, a five minute outage turns into two weeks of odd behavior that nobody can trace.

What Usually Caused the Failed Update

Three causes cover most of them. On shared hosting, PHP's execution time ran out before the update finished. Memory ran short, which tends to show up in the error log rather than on screen. Or file permissions let WordPress write the .maintenance file but not the plugin directory, so it could start the job and not complete it.

All three belong to the environment, not to WordPress, which is why the same update goes through cleanly on another host. If updates fail on your site more than once, stop retrying them and look at the server.

Plugin Maintenance Mode Is a Different Animal

Maintenance plugins never touch the core file. They intercept the front end and serve a page you design, on your schedule, usually with an allowlist so logged in users or certain addresses still see the real site. For a planned change window, a redesign, or a launch you want to hold until a set time, that is the right tool.

Two details matter if you use one. First, the status code. A holding page that answers 200 invites search engines to index it as your homepage. The standard answer is 503 with a Retry-After header, which tells crawlers the outage is temporary. Second, test the allowlist in a private window before you need it. Assuming it works is how people lock themselves out of their own launch.

Plugin pages also differ in what they let through. Some block the login page and the REST API along with the front end, so check that your own team can still work before you announce the window.

Put a real end time on the screen as well. "Briefly unavailable" means nothing to someone who came to buy something. "Back at 2 PM" does.

Woman working late on a laptop at a desk lamp
Photo by Oktay Köseoğlu on Pexels

Both Kinds Are Front-End Screens

Neither the core file nor a plugin stops anything from happening to the site behind the screen. That gap is the subject of the second half.

What It Was Never Going to Catch

A maintenance screen looks like protection, so people treat it as protection. It is not a backup, not a staging site, and not a security control.

Your Data Is Not Protected

If an update mangles the database, it mangles it whether visitors can see the front end or not. The holding page hides the mess from customers. It does not prevent the damage, and it gives you no way back.

A backup taken right before the change does that job, provided it is restorable. A backup you have never restored from is a hopeful file. Sites find out in the middle of an incident that their backups have been failing for months, or hold the files without the database, or need a restore procedure nobody wrote down.

Restore one to a scratch environment this month and confirm the site comes up. Checking that the backup exists does not count.

It Will Not Tell You What Broke

The screen says nothing by design. Suppose a plugin update takes out your checkout. Neither the holding page nor WordPress will mention it. You hear about it from a customer or from monitoring, and one of those costs a lot less.

Plain uptime checks fall short too, since a site can answer with a healthy response while the part that earns money is broken. Better checks follow a transaction instead of a homepage: can the cart load, does the contact form submit, does the login page render. Those tell you whether the business is working, and an uptime ping only tells you the server is.

Anything Without a Browser Keeps Running

Scheduled jobs, transactional email, webhooks from a payment processor, an integration pushing orders into your accounting system: none of it passes through the maintenance screen, and all of it keeps firing during your change window. People find this one last, because it leaves no trace on the site.

Email hurts most. It fails quietly, and the first sign is a customer asking where their receipt went. If your site sends mail through the server itself, an update that touches the mail configuration can break delivery without breaking a single page. Routing transactional mail through a proper delivery path is worth doing anyway, and it takes one more silent failure off the list.

Developer typing code on a keyboard with a script on screen
Photo by Jakub Zerdzicki on Pexels

It Is Not a Security Measure

Now and then someone flips on maintenance mode after spotting a possible compromise, reasoning that visitors can no longer see the site. The site is still running, still reachable, and still executing whatever is on it. An attacker is not browsing your homepage.

So the screen buys customers a calmer view and does nothing else. A real response comes first: take a forensic copy before you change anything, work out how they got in, and remember that cleaning up the visible damage without closing the entry point is how sites get reinfected inside a week. That is a security problem and needs a security process.

Where It Is the Right Tool

Use it when you are making a visible change during business hours and want a deliberate page in place of a broken layout. Use it when a redesign launch should look intentional. Use it during a migration, when writes in a certain window would be lost, and say so on the screen. All of those are fine.

What it cannot do is replace the process around the change: a backup you have restored from, a staging copy where the update ran first, and something watching the site afterward that is not a customer.

A Four-Step Change Process You Can Run Yourself

Take a backup and know it restores. Run the update on a staging copy, then click through the three things that earn money. Apply it to production. Watch for an hour, including the parts with no browser: did the overnight job run, did the receipt email arrive, did the webhook deliver.

The maintenance screen is optional in all four. Sites that get badly hurt by an update were rarely missing maintenance mode. They were missing step one and step four.

What the Process Looks Like When Someone Owns It

That process is most of what a managed maintenance plan is. Updates run on a staging copy first, backups are taken before the change and checked by restoring them, and monitoring watches the site afterward so a customer does not have to. The holding screen is the least interesting piece.

The neighboring work overlaps more than people expect. Updates that keep timing out are usually a hosting problem. A site that slows down after every update is a performance problem. Maintenance is where those show up, not where they start. To weigh managed upkeep against doing it yourself, the maintenance comparison pages set it out honestly.

If you would rather keep doing this yourself, the advice is short. Test a restore this month. Schedule updates for a time you pick instead of clicking when the badge appears. Watch the site for an hour afterward, including the things that have no page. That gets you most of the way, and it costs nothing.

Keep Reading

WordPress WordPress Missed Schedule: Why WP-Cron Skipped Your PostMissed schedule means WP-Cron never ran the job that publishes your post. Why it happens, how to check the queue, and the cron fix that holds.Read the article WordPress WordPress White Screen of Death: Find the Fatal ErrorA blank WordPress page is a PHP fatal error with the message hidden. Turn on the debug log, read it, and get your site back in the right order.Read the article WordPress WordPress Security Checklist: What to Fix Once and RecheckWhich WordPress security settings to fix once and which checks to repeat: updates, logins, wp-config.php, backups, scans, and a one-hour quarterly review.Read the article WordPress WordPress MCP: How to Connect an AI Assistant SafelyWordPress MCP explained: the Abilities API, the official MCP adapter, and how to connect Claude or ChatGPT with OAuth and a staging copy first.Read the article WordPress WordPress Email Not Sending: Find the Break in OrderWhy WordPress reports success while email never arrives, and the order to check the sender address, bounces, authentication, and the mail route.Read the article WordPress Why Is My WordPress Site So Slow? Find the Cause FirstWhy is your WordPress site so slow? Work out whether the server, the images, or a plugin is the cause, then fix it in the order that usually pays off first.Read the article WordPress WordPress Maintenance Checklist: What to Do and How OftenA practical WordPress maintenance checklist: what to check weekly, how to order updates, how to test backups, and when to hand the work off.Read the article WordPress Update PHP in WordPress: Test First, Switch, Roll BackChange your WordPress PHP version safely: find your current version, pick a supported target, test on staging, switch, and roll back fast.Read the article Zoho Zoho Deluge: What It Is, Where It Runs, and How It Fails QuietlyDeluge is the scripting language built into Zoho. What a Deluge script is, where it runs across your apps, and why it fails without anyone noticing.Read the article

Ask Us Anything

We’d love to hear from you!