How to Create a WordPress Maintenance Mode Page for Your Website

Checked for accuracy and updated on August 14, 2026.

Most people put their WordPress site into maintenance mode at the wrong moment — after something breaks, rather than before they start work. The result is visitors landing on a half-built page, broken layout, or a white screen while changes are being made behind the scenes.

Maintenance mode solves this by replacing the public-facing site with a simple holding page while you work. Visitors see a clean message instead of an error. Logged-in administrators still have full access to the dashboard and front end.

This is worth setting up before you need it, not during an emergency.

Quick Answer

To put WordPress into maintenance mode, install a maintenance mode plugin, activate the mode, and configure a basic holding page with a short message. Administrators continue to see the live site. Visitors see the maintenance page until you switch the mode off — and a properly built plugin serves that page with an HTTP 503 status code, not a normal 200, which matters more than it sounds (see below).

The most reliable free option is LightStart (formerly WP Maintenance Mode) by Themeisle — 400,000 active installs confirmed directly against the current plugin listing, last updated 19 May 2026 and still actively maintained, and straightforward to configure.

Why the HTTP Status Code Underneath the Page Actually Matters

This is the part most maintenance-mode guides skip entirely, and it’s worth understanding before you flip the switch on a live site. When a browser or search engine crawler requests a page, the server response carries a status code alongside the visible content — 200 means “here’s the page, everything’s fine,” 404 means “not found,” and so on. A maintenance page that returns a normal 200 status code is telling Google, technically, that your “we’ll be back soon” holding message is the current, permanent content of that URL — which is exactly the wrong signal during a temporary outage.

Google’s own guidance, confirmed directly by Googler Gary Illyes, is to serve a 503 (Service Unavailable) status code during planned maintenance instead. A 503 tells crawlers “this is temporary, come back later” rather than “this page has changed.” Google has also stated that short 503 windows — on the order of 10 to 15 minutes, even recurring several times a week — don’t meaningfully affect crawling or rankings, but an extended 503 period reduces crawl rate and can eventually lead to deindexing if left running for days. LightStart handles this correctly out of the box, returning a 503 automatically whenever maintenance mode is active, which is one of the real reasons to use a dedicated plugin rather than a manually hand-coded holding page that just happens to look similar.

Why Maintenance Mode Matters

Without maintenance mode, any changes you make to a live WordPress site are potentially visible to visitors the moment they happen. This creates several problems.

If you are switching themes, a visitor might land on the site between the moment the old theme is deactivated and the new one is fully configured. They see a broken or unstyled page.

If you are updating plugins, there is a brief window where database changes may not yet match the plugin code. A visitor hitting that window could see a PHP error or broken functionality.

If you are redesigning a page or updating core content, partially edited text and images could appear publicly before the work is finished.

Maintenance mode closes all of this off with a single toggle — and, done properly with the correct status code, without the SEO cost a naive implementation would carry.

Step 1: Install LightStart

  1. In your WordPress dashboard, go to Plugins → Add New Plugin.
  2. Search for LightStart.
  3. Click Install Now, then Activate.

The plugin is free and available directly from the WordPress plugin repository. No account or licence is required for the basic maintenance mode functionality.

Step 2: Activate Maintenance Mode

  1. After activating the plugin, go to Settings → LightStart in your dashboard.
  2. On the General tab, find the Status setting.
  3. Set it to Activated.
  4. Click Save Settings.

Your site is now in maintenance mode. Any visitor who is not logged in as an administrator will see the holding page.

To confirm it is working, open a private or incognito browser window and visit your site. You should see the maintenance page, not your normal homepage. If you want to confirm the status code specifically rather than just the visible page, a browser’s developer tools (Network tab, reload the page, check the response status of the main document request) will show 503 rather than 200 while the mode is active.

Step 3: Set Up the Holding Page

The default maintenance page is plain but functional. In most cases, customising it takes a few minutes and makes a significant difference.

  1. Go to the Design tab in LightStart settings.
  2. Update the Title to something clear — for example, “We’ll be back shortly” or “Site maintenance in progress”.
  3. Add a short description explaining what is happening and when the site will return, if you know.
  4. Optionally upload a background image or change the background colour to match your brand.
  5. Save settings.

Keep the message brief. Visitors do not need a detailed explanation — they need to know the site is temporarily unavailable and when to try again.

Step 4: Configure Administrator Bypass

By default, logged-in administrators see the live site rather than the maintenance page. This is correct behaviour — it allows you to continue working on the front end while maintenance mode is active.

If you want to check that the maintenance page is displaying correctly while logged in, use an incognito window or a second browser where you are not logged in.

If you need another user — a developer or designer, for example — to access the site during maintenance, they need to be assigned an appropriate WordPress user role with dashboard access. They can then log in and work without seeing the maintenance screen.

Step 5: Deactivate Maintenance Mode

When your work is complete and the site is ready:

  1. Return to Settings → LightStart.
  2. Set Status to Deactivated.
  3. Save settings.

Your site returns to normal immediately — including the HTTP status code, which reverts to a normal 200 the moment the mode switches off. If you are using a caching plugin such as LiteSpeed Cache, clear the cache after deactivating maintenance mode to make sure visitors are served the updated site rather than a cached version of the holding page.

Practical Tips

Keep planned maintenance windows short. Per Google’s own stated tolerance, a 503 window of 10-15 minutes — even a recurring one several times a week — is treated as normal and doesn’t meaningfully affect crawling. It’s leaving the 503 active for hours or days that starts to reduce crawl rate and risks pages dropping out of the index.

Disable caching while maintenance mode is active. Caching plugins can occasionally serve a cached version of a normal page instead of the maintenance page, meaning some visitors bypass it entirely. LiteSpeed Cache should be paused or cleared when maintenance mode is switched on.

Use the Exclude URLs setting carefully. LightStart allows you to whitelist specific URLs so they remain accessible during maintenance. This is useful if your site has a booking form, payment page, or login URL that needs to stay live. Find this option under the General tab.

Test on mobile. The default LightStart templates are responsive, but it is worth checking the maintenance page on a mobile device before starting work, just to confirm it renders cleanly.

In most sites I work on, I configure the maintenance page template once when the plugin is first installed and then simply toggle the mode on and off as needed.

Common Mistakes

Forgetting to turn it off. This sounds obvious, but it happens often — especially when site work takes longer than expected. Given the 503-and-crawl-rate mechanism above, this isn’t just a visitor-experience problem left on overnight; leaving it active for days is the specific scenario Google’s own guidance warns against.

Not clearing the cache after deactivating. If your caching plugin continues serving the old maintenance page to visitors, your site will appear still broken even after everything is fixed.

Relying on WordPress’s built-in .maintenance file. WordPress creates a temporary .maintenance file automatically during core updates, which does correctly return a 503 while active, but it is not a reliable or configurable option for planned maintenance work — it disappears on its own after a few minutes and cannot be customised with your own message or branding. Use a plugin for anything beyond a core update’s own automatic window.

Building a custom “coming soon” page without checking its status code. A hand-built holding page swapped in via a theme template or a redirect rule will often return a normal 200 unless someone specifically configures the 503 header — exactly the mistake a dedicated plugin like LightStart avoids by handling it automatically.

When to Use a Different Approach

For very brief updates — swapping an image, fixing a typo, updating a widget — maintenance mode is often unnecessary. These changes are fast enough that the risk of a visitor seeing a broken state is minimal, and they fall well inside Google’s stated tolerance for occasional short 503 windows even without deliberately triggering one.

For a full redesign or migration to a new hosting provider, maintenance mode may not be sufficient on its own. In those cases, a staging environment is a better approach. You build and test the new version on a separate site, then push the changes live in a single step.

Maintenance mode is the right tool for anything in between: plugin updates, theme configuration changes, content restructuring, or any task that requires the site to be in an intermediate state for more than a few minutes but well under a day. For the full plugin details, refer to the LightStart plugin page on WordPress.org.

Final Thoughts

Maintenance mode is a small habit that avoids unnecessary problems — and the status code it returns underneath the visible page is the detail that separates a plugin doing this properly from a hand-built page that only looks the same. Install the plugin, configure the holding page once, and toggle it on whenever you are making changes that affect the front end. The whole setup takes under five minutes and saves visitors from seeing work in progress, without quietly telling Google your temporary page is permanent.

If you want to make sure your site handles downtime well in general, setting up WordPress uptime monitoring is a useful next step — it keeps you informed the moment the site goes down, whether planned or not.