Skip to content

WordPress guide · Updated October 2026

WordPress maintenance mode: fix it and plan it well

WordPress maintenance mode temporarily replaces your public website with a notice while updates or other work take place. If it stays on after an update stops, check the .maintenance file, recover the failed update and test the site before reopening. For planned work, use staging first and keep any live interruption short enough that customers can still reach your business.

Automatic mode
A temporary notice during updates
Stuck screen
Check .maintenance and the failed update
Google
503 + Retry-After for short outages
Better preparation
Backup, staging, test, then publish

Written and reviewed by Fernando Marcano · October 17, 2026 · Markdown version of this page

What is WordPress maintenance mode?

Think of maintenance mode as a temporary sign on your storefront. Someone arriving from Google or an ad needs to know whether you are still open and how to contact you. Explain the interruption without making a technical task look like a closed business.

  • Automatic update notice

    WordPress creates a .maintenance file in the installation root during updates and normally removes it afterward. This is part of the update process, rather than a page you need to design in advance.

  • Planned maintenance page

    You deliberately show a brief notice while a live change makes normal use unreliable. Give it an owner, a realistic window and a way for customers to call or email.

  • A screen that will not clear

    An interrupted update, a separate maintenance plugin or cached content can leave visitors seeing a notice. Identify which layer is serving it before changing unrelated settings.

The automatic screen says: Briefly unavailable for scheduled maintenance. Check back in a minute. WordPress troubleshooting documentation explains the root file and its removal after a failed upgrade.

For a reliable WordPress website, keep inquiries, bookings and sales available, with a recovery route when updates go wrong.

↑ Back to top

How to fix WordPress maintenance mode

If an update is still running, let it finish and avoid launching another update from a second tab. If it has failed or stopped and the notice remains, use the host file manager or SFTP, a secure connection to your site's files. You do not need a working WordPress dashboard to reach that file.

  1. Step 1

    Confirm that the update has stopped

    Check the update result and hosting activity, or ask the host to confirm no upgrade process is active. Record the component being updated and any error so the next action addresses the failed change.

  2. Step 2

    Preserve a recovery point

    Find the backup taken before the update and confirm access to it. Save a current files-and-database snapshot separately before repairs, especially when orders or inquiries have arrived since that backup.

  3. Step 3

    Open the correct WordPress root

    In the host file manager or SFTP client, locate the folder containing wp-admin, wp-content and wp-includes. Enable hidden-file display because .maintenance starts with a dot; confirm the domain if your hosting account contains several sites.

  4. Step 4

    Delete only the leftover .maintenance file

    Once the update has stopped, remove that exact file from the installation root. Leave wp-config.php, .htaccess and the WordPress folders in place, then check the public site and dashboard in a fresh browser session.

  5. Step 5

    Finish or roll back the failed update

    Check the affected component's version and the host error log. Complete a compatible update or restore the affected component with qualified help; if database changes occurred, use a coordinated recovery plan that preserves newer business records.

  6. Step 6

    Verify the visitor journey

    Clear the relevant caches after the repair and check the site while logged out. Test contact delivery, booking or checkout as applicable, and watch for recurring errors before closing the incident.

WordPress normally ignores the marker once its timestamp is ten minutes old, as documented in WordPress's maintenance-mode check. A longer-lasting notice can involve caching, a plugin, the host or another active update, so do not keep deleting files blindly.

If .maintenance is absent, ask the host to identify the response source and check intentional maintenance settings. Share the URL, screenshot, start time and recent update, without emailing passwords.

↑ Back to top

WordPress maintenance mode or staging?

Use a maintenance page when a short live operation would expose unreliable behavior, such as a checkout change or final migration. Prepare copy and redesigns on staging, an isolated copy where customers are unaffected.

  1. Fresh backupFiles and database, stored off the server.
  2. Update on stagingSame versions as live, one batch at a time.
  3. Test what makes moneyForms, checkout, booking, login, key pages on mobile.
  4. Update liveLow-traffic hour, cache purged after.
  5. Watch, or roll backCheck errors and uptime; restore if something broke.
Back up, test on staging, update, check the result, publish and monitor, with a rollback route if a critical check fails.

Do: prepare before the live window

  • Test the intended versions on a recent staging copy.
  • Agree the live change, fallback and reopening checks.
  • Keep the existing public site available during design work.
  • Use a brief notice only where live work needs it.

Don't: make visitors watch the experiment

  • Hide the whole site for days while deciding on a layout.
  • Treat maintenance mode as a backup or a security control.
  • Replace live orders with an older staging database.
  • Start several uncertain changes without a rollback plan.

Follow our WordPress updates guide for the backup, staging and update workflow. Protect staging from public access and disable real payments, customer email and integrations there, so a test order does not become an actual charge or customer notification.

↑ Back to top

WordPress maintenance mode and Google

The visible notice and the server response need to agree. For a short outage, use HTTP 503, meaning temporarily unavailable, with a Retry-After header giving a best estimate of when to try again. A header is information sent with the page, even though visitors do not see it.

CorrectTemporary interruption
HTTP/1.1 503 Service Unavailable
Retry-After: 600
Cache-Control: no-store

Illustrative headers: 600 seconds means ten minutes, not a guaranteed Google revisit time.

IncorrectNotice sent as a normal page
HTTP/1.1 200 OK

We are temporarily closed for maintenance.

A 200 response presents the replacement notice as successful page content.

Google's HTTP status guidance says server errors reduce crawling and persistent errors can remove URLs from the index. A 503 is therefore a short interruption signal, not a way to preserve visibility through a long closure.

Google's temporary closure guidance recommends Retry-After, keeping robots.txt accessible and limiting functionality when possible. Avoid leaving a whole-site maintenance page up for days; keep useful information available while longer work continues on staging.

Choose the page for the actual business situation
SituationPublic pageResponse
Brief live workMaintenance notice503 + Retry-After
New site, prelaunchUseful launch page200 if indexable
Long redesignExisting site stays200 on live pages
Orders pausedCatalog + clear notice200 on useful pages

A coming-soon page introduces a new site or business before launch; a maintenance page pauses an existing experience. For a prelaunch page you want indexed, provide real information and return 200. Keep unfinished staging content private, and avoid replacing every established URL with the same launch message.

↑ Back to top

Choose a WordPress maintenance mode plugin

Many options exist in the WordPress.org plugin directory. Verify status codes and cache behavior on your hosting setup, beyond the visual preview. Your host or existing tools may already provide a suitable control.

  • Verify the public response

    Ask whoever configures the page to check a real logged-out request. Confirm 503, Retry-After and the expected notice on the homepage and another public URL, after any CDN or page cache.

  • Define who can get through

    Editors may need to preview the normal site while customers see the notice. Check the actual access rules, including customer accounts, instead of assuming all logged-in users should bypass it.

  • Keep contact usable

    Check that the message fits a phone, the call and email links work and the promised contact route is staffed. Avoid a form that depends on the same system currently being repaired.

  • Make removal predictable

    Record how to switch the page off and how to regain access without the dashboard. Assign someone to verify reopening from outside the administrator's session.

These are acceptance checks, not features promised by every plugin. Test before the maintenance window and avoid overlapping maintenance tools that could show different versions to different visitors.

↑ Back to top

How to put WordPress in maintenance mode

A small site plugin can demonstrate the essential behavior: let signed-in users through, send logged-out page visitors a temporary response and avoid storing that response in caches. Have your maintainer install and test it on staging first. Owners do not need to edit PHP to specify these requirements.

CorrectMinimal site plugin for a short planned window
<?php
/* Plugin Name: Short Maintenance Window */
add_action('template_redirect', function () {
    if (is_user_logged_in()) {
        return;
    }
    nocache_headers();
    header('Retry-After: 600');
    wp_die(
        'Short maintenance. Please try again soon.',
        'Maintenance',
        ['response' => 503]
    );
});

Create a separate plugin file, activate only for the agreed window, then deactivate and remove it. Test the public response after caches; the snippet does not control every server endpoint.

This example handles ordinary front-end page requests and allows every signed-in user, including customer accounts, to bypass it. It does not block APIs, background jobs, login or every payment callback, and it cannot intercept HTML already served by a CDN. A store may need coordinated restrictions at the host and application layers.

The default core screen already uses 503 and Retry-After, as shown in WordPress's maintenance response. Check custom replacements separately, because their output can differ.

↑ Back to top

Before a WordPress website maintenance window

Schedule around customers, ad traffic and bookings. Agree who can authorize rollback, when to report if work runs over and which checks must pass before reopening.

Confirm these before hiding the public site

  • Files and database backed up together.Confirm the recovery copy exists outside the site and that the responsible person can restore it. Use the WordPress backups guide to plan recovery points around new orders and inquiries.
  • Change tested on a recent staging copy.Record what passed and what remains uncertain, including any database migration or external dependency. Keep the agreed fallback ready before touching production.
  • Host access works without WordPress.Verify file manager or SFTP access, the hosting support route and the recovery contact. Do not discover missing access after the dashboard stops opening.
  • Notice, status and cache behavior checked.Preview the actual logged-out response on a phone and confirm the maintenance screen will neither linger in the CDN nor expose an unfinished live experience.
  • Traffic and operations coordinated.Consider pausing campaigns that lead to unavailable pages and notify staff who handle calls or orders. Decide how payment callbacks, scheduled jobs and incoming records will be handled.

A maintenance notice does not secure a compromised site. If you see unknown administrators or unexpected files, use the WordPress security checklist and involve the host before reopening a potentially unsafe customer journey.

↑ Back to top

What to say on a maintenance page

Tell customers what they can still do, when they should check again and where to get help. Use a time zone and a specific next update if completion is uncertain. Keep the wording calm, especially when a booking or payment has already been attempted.

Adapt this notice to the actual situation
We are making a short update to our website.
Online [booking/orders] is temporarily paused.
Next update: [date, time and time zone].
Need help now? Call [number] or email [address].
If a payment appeared to fail, contact us before
trying again so we can check its status.

Replace the placeholders and remove sentences that do not apply. Confirm existing orders or appointments before calling them unaffected, and avoid a countdown that resets on every visit. Give a reliable next update rather than an unsupported reopening promise.

For agencies managing a client's outage

Give the client a separate operational note: what is unavailable, what is confirmed, who is working on it and when you will report again. Keep file paths, credentials and internal errors off the public notice. Maintain one agreed contact so different staff members do not make competing changes.

↑ Back to top

Remove the page and prove the site works

An administrator may see a working site while logged-out customers still get cached maintenance HTML. Verify a new visitor's experience and the systems behind the page.

After the repair or planned update

  • Check public pages from a fresh session.Open the homepage, a service or product page and contact on desktop and mobile. Confirm ordinary pages return their intended content and successful status, with no leftover maintenance response.
  • Remove cached notices at the relevant layers.Check the browser, CDN and host page cache, then request the site again. Do not assume clearing one WordPress plugin also clears every upstream cache.
  • Complete a real visitor task.Submit a labeled test inquiry and confirm inbox delivery. Where applicable, coordinate a booking or controlled checkout test and verify the resulting record and confirmation.
  • Resume the paused business processes.Restore agreed campaigns and scheduled tasks, reconcile queued records and confirm the contact team knows the site is available. Check that backup jobs and monitoring are still active.
  • Record the cause and watch for recurrence.Document the failed update or planned change, the repair and the checks performed. Keep any unresolved issue assigned rather than declaring success from the homepage alone.

Use the recurring WordPress maintenance checklist to keep recovery, forms and update reviews on the calendar. If you prefer one team to own those checks, our WordPress maintenance service combines staged updates, backups, security and monitoring with a clear written scope.

↑ Back to top

We can do this for you

Want updates without a prolonged maintenance page?

Our WordPress maintenance plans start from $250 per month per site, with a fixed written quote before work. We run updates on staging first so customers rarely see a maintenance page.

  • Staging setup and checks for core, plugin and theme updates.
  • Off-site backups, tested restores and a rollback plan.
  • Maintenance notice, 503 response and cache checks when needed.
  • Live form or checkout checks and uptime monitoring.
  • A plain-language report, under your agency brand if needed.

Frequently asked questions

What is WordPress maintenance mode?

It is a temporary state that shows a notice instead of the normal public site. WordPress uses it during updates, and owners can also enable a deliberate maintenance page for short planned work.

WordPress stuck in maintenance mode: how do I fix it?

Confirm the update has stopped, preserve recovery copies and use the host file manager or SFTP to remove the leftover .maintenance file from the installation root. Then complete or roll back the failed update and test the site; deleting the file alone does not repair the component.

Why can I not find the .maintenance file?

Enable hidden-file display and check the actual WordPress installation folder for the affected domain. If the file is absent, investigate a maintenance plugin, hosting setting or cached response instead of deleting unrelated files.

How long does automatic WP maintenance mode last?

It should clear when the update finishes. Core normally ignores its marker after ten minutes, but a persistent notice can come from another layer or a continuing process and still needs investigation.

Do I need a WordPress maintenance mode plugin?

No plugin is needed for the automatic update notice. For a planned page, a suitable plugin, a host control or a tested custom solution can work; verify the status code, cache behavior, access rules and removal procedure.

Does a maintenance page hurt SEO?

A short outage should return 503 with Retry-After, but persistent server errors can lead to URLs being dropped from Google's index. Keep the interruption short and leave useful live pages available during longer projects rather than hiding everything.

Is a coming-soon page the same as maintenance mode?

A coming-soon page introduces a site before launch, while a maintenance page temporarily interrupts an existing site. A useful prelaunch page intended for indexing can return 200; a short outage on established pages should use 503.

Can Fer Marketing handle updates and maintenance windows?

Yes. Our WordPress maintenance plans start from $250 per month per site, with a fixed written quote before work. We test updates on staging first, verify the live site afterward and offer white-label delivery for agencies.

Send your site to fer@fer.marketing or WhatsApp for a fixed written quote from $250 per month per site, with same-business-day replies from 9 AM to 9 PM ET and white-label care for agencies.

Keep reading

Tell us what you need

Write to fer@fer.marketing or message us on WhatsApp. You get a reply from Fernando, not a sales team.