Release window · Beginner · 10 minutes
How to put WordPress in maintenance mode — Maintenance Mode Is a Status Code
You need visitors held at the door for an hour without search engines treating the holding page as your site's new content.
The short answer
Return a 503 with a Retry-After header, and the rest is decoration: that status tells crawlers the state is temporary and worth coming back for, where a 200 on a holding page invites them to index it as your content. Check it with `curl -sI https://yourdomain` before you walk away — a maintenance plugin that answers 200 has done the opposite of its job.
Two more things make the window safe. Configure the bypass so logged-in administrators still see the real site, and purge the cache after enabling, because a page cache or CDN will happily store your holding screen and keep serving it long after you have finished.
By the HostingFast team · Reviewed 24 August 2026
Beginner
Depth assumed
5
Checkpoints end to end
Free
Cost of asking us
Proven
Verified where you'll run it
This page is short because the job is short and mostly consists of checking one header. The mistakes are the interesting part: the wrong status code, a cached placeholder, and a maintenance mode nobody remembered to switch off.
It also separates two different jobs that share a plugin category. An hour behind a 503 is a maintenance window. Six weeks behind one is a site that has taken itself out of search, and it wants a real coming-soon page instead.
The header is the message
A holding page served with a 200 says 'this is my content now'. A holding page served with 503 plus a Retry-After hint says 'come back shortly', and crawlers act on the difference. Verify with curl rather than trusting the plugin's settings screen, because plenty of them get this wrong by default.
Retry-After takes either a number of seconds or an HTTP date. Set it to slightly longer than you expect the window to run — being back early costs nothing, and being asked to return before you are ready wastes a crawl.
Keep your own session on the real site
Configure the bypass so logged-in administrators get the live site while everyone else gets the notice. You need to review your work as you go, and dropping the barrier for each check turns a controlled window into a series of accidental exposures.
Test the visitor view in a private window, not by logging out. A private window also shows you what the cache is serving, which is the next problem on this list.
Your cache will store the holding page
Page caching and any CDN in front of it treat your placeholder like any other response. Purge after enabling maintenance mode and purge again after disabling it, or a proportion of visitors will keep seeing the closed sign well past the end of the window.
This is the specific reason a maintenance window appears to last three hours longer for some people than others. It is not propagation and it is not their browser — it is a cached copy with a TTL you set weeks ago.
Size the tool to the length of the job
A maintenance plugin fits an afternoon. For a rebuild running over weeks, an indexable coming-soon page that captures email addresses earns considerably more than a closed notice, and it keeps the domain present in search while you work.
Keep the message to a logo, one sentence and a contact route. Nobody reads past the second line of a maintenance screen. And set the reminder to switch it off at the same moment you switch it on — maintenance mode left running after the work is done is downtime you chose to inflict on yourself.

The platform this window runs on
Every runbook here was exercised on the platform we actually operate — cPanel, LiteSpeed, NVMe storage, one-click installs — so the cache purge and the panel screens match yours rather than a generic host's.
NVMe storage and LiteSpeed caching power every tier, from the smallest plan up — speed is the baseline here, not an upsell.
- Server-level cache with a purge control in the panel
- Staging environments for testing changes before they ship
- Daily backups, with self-service restores you run from the panel
- Human support on duty every hour of every day
Why HostingFast
Standard on every plan
The header checked, not assumed
One curl command confirms the 503 and the Retry-After, because plenty of plugins answer 200 by default.
Bypass configured properly
You keep working on the live site while visitors see the notice, without dropping the barrier every five minutes.
The cache accounted for
Purge after enabling and after disabling, or some visitors keep seeing the closed sign for hours.
Two jobs kept separate
An hour behind a 503 and a six-week rebuild need different tools, and the guide says which is which.
An exit plan
The reminder to switch it off is set at the same moment you switch it on, which is the only method that works.
Scoped honestly
Putting up a correct maintenance screen is a beginner-level job — about 10 minutes, including the header check.
Quick Start
From order to online
- 1
Decide which tool the job needs
A maintenance plugin fits an afternoon's work. A rebuild running for weeks wants a real, indexable coming-soon page that captures email addresses instead of a closed notice.
- 2
Enable it and check the status code
`curl -sI https://yourdomain` and confirm 503 with a Retry-After header. A holding page answering 200 tells search engines this is your content now, which is precisely the opposite of the intent.
- 3
Configure the administrator bypass
Logged-in admins see the real site, everyone else sees the notice. Then test the visitor view in a private window rather than by logging out.
- 4
Purge the cache, both times
Purge after enabling and again after disabling. Page caching and any CDN in front of it will store your placeholder and keep serving it long after the window closes.
- 5
Keep the notice short and set the reminder
A logo, one sentence, one contact route. And schedule the switch-off at the same moment you switch it on — a maintenance screen left running is self-inflicted downtime.
Built In
Loaded onto every plan
- Server-level LiteSpeed caching, with purge controls in the panel
- Staging environments for testing changes before they ship
- Daily backups, with self-service restores you run from the panel
- Free SSL on every plan, renewed automatically before it can expire
- NVMe SSD storage on every tier, not just the expensive ones
- Per-site PHP version switching from the control panel
- WordPress and 400+ other applications installed in one click
- Human support on duty every hour of every day
- 99.9% uptime as the target, monitored around the clock
- Zero setup charges — there is no joining fee, ever
Frequently Asked
What people ask us most often
How do I confirm the status code is actually 503?
`curl -sI https://yourdomain` and read the first line, then look for Retry-After underneath. Do not judge it from the browser, which renders the same holding page whatever the status is. Plenty of maintenance plugins serve 200 unless you change a setting, and that is the whole difference between a temporary notice and a crawler treating your placeholder as content.
The site is stuck in maintenance mode after a failed update — how do I get out?
The update died part-way and left a .maintenance flag file in the site root. Delete that file via File Manager or `rm .maintenance` over SSH and the site returns immediately. Then rerun the interrupted update from the dashboard, ideally after checking the error log for whatever stopped it the first time.
How is billing handled, and does the price move at renewal?
Card payment through a secure checkout, and renewals bill at the rate you originally ordered at — there is no introductory price waiting to expire. Invoices sit in your client area and auto-renewal is a toggle in your account, so stopping it never involves a phone call.
What does round-the-clock support actually cover?
A human reply at any hour, on the practical jobs: mailbox setup, DNS records, WordPress faults, restores, cache purges. Not 'server is up, closing ticket'. Send us a hard question before you buy — the answer you get is a fair preview of the standard afterwards.
Keep reading
How to Add an Addon Domain
Run a second site on the same account with its own document root and its own certificate — beginner, about 10 minutes.
How to Set Up a Catch-All Address
Work out whether catching mistyped addresses is worth the spam it collects, then configure it safely — intermediate, roughly 5 minutes.
Best Hosting With WordPress Toolkit
The shortlist with the reasoning shown: which specifications change the numbers and which are there to fill a table.
CMS Hosting
Fast, hardened hosting for WordPress, Joomla, Drupal and every major CMS.
VPS Hosting
KVM virtual servers — root access, DDoS filtering and one flat monthly price.
Changing hosts? Run through our checklist first.
A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.
Take the window on a faster platform.
Server-level caching with panel purge controls, staging clones, daily backups and free SSL — plus engineers on shift at any hour.
View CMS Hosting plans