How to Put WordPress in Maintenance Mode (Without Hurting SEO)

How to Put WordPress in Maintenance Mode (Without Hurting SEO)

You need to update your theme, migrate a database, or rebuild your homepage, and you don’t want visitors landing on a half-broken site while you work. The answer is WordPress maintenance mode: a temporary page that tells visitors you’ll be back shortly, while you and your team keep full access to the site behind it.

In this guide, you’ll learn how to put WordPress in maintenance mode with a plugin or with code, which HTTP status code protects your search rankings, how to customize the maintenance page, and how to fix a site that gets stuck in maintenance mode after an update.

What Is WordPress Maintenance Mode?

Maintenance mode replaces your public frontend with a simple holding page. Logged-in administrators still see the real site, so they can make changes and test them live, while everyone else sees a short message explaining that the site is temporarily unavailable.

WordPress has a basic version of this built in. When you update plugins, themes, or core, WordPress creates a .maintenance file in the site root and shows the message “Briefly unavailable for scheduled maintenance. Check back in a minute.” That built-in mode only lasts for the duration of an automatic update. It isn’t designed for longer work, and you can’t customize it from the dashboard.

Maintenance Mode vs Coming Soon Mode

The two are easy to confuse, but they serve different situations:

  • Maintenance mode is for an existing site that is temporarily offline. It should return a 503 status code so search engines know to come back later.
  • Coming soon mode is for a site that hasn’t launched yet. It usually returns a normal 200 status and often collects email signups.

When Should You Enable Maintenance Mode?

Not every change needs it. Small content edits, new blog posts, and minor plugin settings can happen on a live site without anyone noticing. Maintenance mode earns its place when visitors could see something broken or incomplete:

  • Theme changes or redesigns that rearrange layouts across many pages.
  • Database migrations or search-and-replace operations, such as moving to a new domain.
  • Major plugin updates, especially WooCommerce or page builder updates that change data structures.
  • Security cleanups after a hack, where you don’t want visitors exposed to injected code.
  • Store reconfiguration, such as changing payment gateways, tax rules, or shipping zones, where a half-finished checkout could lose orders.

For anything larger than an afternoon of work, a staging site is often the better tool. Build and test the changes on a copy, then push them live and use maintenance mode only for the short window while the push happens.

Why the 503 Status Code Matters for SEO

The most important technical detail of maintenance mode is invisible to visitors: the HTTP status code your server returns.

A 503 Service Unavailable response tells search engine crawlers that the outage is temporary. Google’s documentation explains that crawlers treat 5xx responses as a signal to slow down and retry later, rather than replacing your indexed pages with the maintenance message. You can read the details in Google’s guide to HTTP status codes.

If your maintenance page returns a normal 200 OK instead, a crawler visiting during that window sees a nearly empty page that looks like real content. Over a long outage, that can lead to pages being treated as thin or duplicate content.

Two related details help further:

  • Retry-After header: tells crawlers roughly when to come back, for example Retry-After: 3600 for one hour.
  • Keep it short: 503 is a temporary signal. If a site returns 503 for several days, search engines may start treating the pages as unavailable. Aim for hours, not days.

How to Put WordPress in Maintenance Mode With a Plugin

A plugin is the fastest route for most site owners. You get an on/off switch in the dashboard, a customizable page, and the correct status code without editing files.

Step 1: Choose a Lightweight Maintenance Mode Plugin

Many maintenance plugins bundle page builders, email marketing integrations, and countdown timers you’ll never use. For a temporary holding page, lighter is better. Look for a plugin that:

  • Returns a 503 status code while maintenance mode is active.
  • Lets logged-in administrators see the real site.
  • Lets you set a custom heading and message.
  • Loads nothing on your site when maintenance mode is switched off.

Simple Maintenance Mode from Simpli Plugin is a free option built around exactly this use case. It restricts public access to your frontend with a clean, branded holding page, while you and your authorized team keep full access to the backend and the live frontend. It’s free for personal and client sites, with no account or license key required.

Step 2: Install and Activate the Plugin

  1. Download the plugin ZIP file from its product page.
  2. In your WordPress dashboard, go to Plugins → Add New Plugin → Upload Plugin.
  3. Choose the ZIP file and click Install Now.
  4. Click Activate Plugin.

Step 3: Write Your Maintenance Message

Open the plugin’s settings and write a short, specific message. Visitors want three things: what’s happening, when you’ll be back, and where to go in the meantime. For example:

We’re upgrading our store and will be back by 3:00 PM PKT. Need help with an order? Email support@yourdomain.com.

Avoid vague lines like “Something amazing is coming.” A visitor trying to reach your support page needs an alternative, not a teaser.

Step 4: Enable Maintenance Mode and Test It

Switch maintenance mode on, then check it from a visitor’s point of view. Your own browser is logged in, so it will keep showing the real site. Test it one of these ways instead:

  • Open the site in a private or incognito window.
  • Check it on your phone using mobile data rather than office Wi-Fi.
  • Confirm the status code with a header checker, or run curl -I https://yourdomain.com and look for HTTP/2 503.

Step 5: Turn It Off and Clear Your Cache

When your work is done, switch maintenance mode off and purge every cache layer: your caching plugin, your host’s server cache, and any CDN such as Cloudflare. A cached copy of the maintenance page is the most common reason visitors still see it after you’ve finished.

Managing maintenance windows across several client sites? Simpli Plugin’s team builds custom WordPress plugins and workflows for agencies, from scheduled maintenance windows to client-specific admin tools.

Talk to Our Developers →

How to Enable Maintenance Mode With Code

If you prefer not to add a plugin, a few lines of PHP can do the same job. Add this to a small custom plugin or a child theme’s functions.php file, never to a parent theme that updates will overwrite.

add_action( 'template_redirect', function () {
    if ( current_user_can( 'manage_options' ) ) {
        return;
    }

    wp_die(
        '<h1>We will be back soon</h1><p>We are performing scheduled maintenance. Please check back shortly.</p>',
        'Under Maintenance',
        array( 'response' => 503 )
    );
} );

This snippet lets administrators through, shows everyone else a simple message, and returns a 503 status code. It uses the wp_die() function, which accepts a response code as an argument.

It has clear limits. There’s no on/off switch other than editing the file, no styling beyond WordPress’s default error page, and it doesn’t let editors or other non-admin roles through. Remember to remove the code when you’re done. For anything beyond a quick fix, a plugin is easier to manage.

How to Customize Your Maintenance Page

A maintenance page is a brief moment of contact with your visitors, so it’s worth making it look intentional:

  • Add your logo and brand colors so visitors know they’re in the right place.
  • Give a realistic return time. “Back by 6 PM” builds more trust than “back soon.”
  • Offer a contact route, such as an email address, WhatsApp number, or social profile.
  • Keep it lightweight. Skip heavy background videos and sliders. The page should load instantly.

How to Fix WordPress Stuck in Maintenance Mode

Sometimes an update is interrupted, for example when you close the browser tab mid-update or the server times out. WordPress then leaves its .maintenance file behind, and your site keeps showing “Briefly unavailable for scheduled maintenance” to everyone, including you.

To fix it:

  1. Connect to your site with your host’s File Manager, SFTP, or SSH.
  2. Open the root folder, where wp-config.php lives.
  3. Enable hidden files if needed, since files starting with a dot are often hidden.
  4. Delete the .maintenance file.
  5. Reload your site and clear any caches.

Afterwards, go to Dashboard → Updates and check whether the interrupted update finished. If a plugin was halfway through updating, reinstall it so you don’t run a partially updated version.

Other Common Problems

  • Visitors still see the real site: a cache is serving old pages. Purge your page cache and CDN after enabling maintenance mode.
  • Visitors still see the maintenance page after you turn it off: the same cause in reverse. Purge every cache layer again.
  • You’re locked out too: your login session may have expired. Go directly to /wp-login.php or your custom login URL to sign back in.

Frequently Asked Questions

Does maintenance mode hurt SEO?

Not when it’s short and returns a 503 status code. Search engines treat 503 as a temporary outage and come back later. Problems start when maintenance mode returns a 200 status or stays on for days.

Can logged-in users see the site during maintenance?

Administrators can with most plugins and with the code snippet above. Whether editors, shop managers, or clients can depends on the plugin’s role settings.

How long should a site stay in maintenance mode?

As short as possible, ideally a few hours. For longer projects, do the work on a staging site and use maintenance mode only while you push the changes live.

Will maintenance mode stop WooCommerce orders?

Yes. Customers can’t reach the storefront or checkout while it’s active, so schedule store maintenance for your lowest-traffic hours and tell customers in advance if the window is long.

What does “Briefly unavailable for scheduled maintenance” mean?

It’s WordPress’s built-in message during updates. If it doesn’t disappear within a few minutes, delete the .maintenance file from your site’s root folder.

Keep Your Site Professional During Every Update

Maintenance mode is a small detail that protects both your visitors’ experience and your search rankings. Use a 503 status code, give a clear return time, keep the window short, and clear your caches when you’re done.

Download Simple Maintenance Mode for free, or browse the full Simpli Plugin library for more lightweight WordPress tools. If your project needs something the library doesn’t cover, our team builds custom WordPress and WooCommerce plugins.

Request a Custom Plugin →