WordPress Maintenance Mode: The .maintenance File vs a Holding Page
WordPress maintenance mode: File-Then-Plugin. Stuck .maintenance is not a coming-soon SEO strategy. Official WordPress FAQ plus noindex for holding pages.

WordPress maintenance mode is two different screens that share a vibe and ruin weekends. One is a leftover .maintenance file after an update. The other is a coming-soon plugin you meant to take down last month.
This page is File-Then-Plugin. It is not WordPress staging. It is not noindex when to use. It is not why Google isn’t indexing. Uptime monitoring tells you the site is down; it does not delete the file.
If visitors see “Briefly unavailable for scheduled maintenance,” delete .maintenance in the WordPress base folder (show hidden files), then finish the upgrade. Do not call a weeks-old holding page “maintenance.”
Official: WordPress troubleshooting FAQ — clear the scheduled maintenance message.
Table of contents
- File-Then-Plugin
- The core .maintenance lock
- Holding pages and Search
- What this is not
- FAQ
- Delete the file or noindex the teaser
File-Then-Plugin
FILE-THEN-PLUGIN
1. MESSAGE → “Briefly unavailable for scheduled maintenance”
2. FILE → .maintenance next to wp-admin
3. DELETE → then rerun the upgrade if it failed
4. PLUGIN → coming soon / landing hold is a different screen
5. INDEX → teasers that stay live need noindex + sitemap hygiene
Core lock = minutes. Plugin hold = days or months. Mixing them is how a failed update becomes a “rebrand.”
The core .maintenance lock
WordPress.org: as part of automatic upgrade, WordPress places .maintenance in the blog base folder (the folder that contains wp-admin). If the file exists, visitors see the scheduled-maintenance sentence.
To stop the message, delete .maintenance. Then execute the automatic upgrade again, in case it failed.
Show hidden files. The leading dot hides it in many file managers. Do not delete wp-config.php because it “looks similar.”
After the site returns, open a private window. Blog backup still matters if the upgrade was half-applied.
Holding pages and Search
A coming-soon plugin is a public URL. Google can crawl it. Empty “launching soon” pages are a quality problem, not a crawl-budget flex.
If that URL must stay up:
- noindex if you do not want it in Search (tag vs robots.txt)
- Keep it out of the XML sitemap (sitemap owner)
- Do not Disallow crawl if you need Google to see the noindex tag
When the real site goes live, remove the plugin, request indexing on the homepage, and put real posts in the sitemap.
Coming-soon plugins often inject a full-site overlay. Check whether the homepage HTML is still your posts or only a teaser. View source. If the teaser is the only 200, Search has nothing useful to store.
After you delete .maintenance, clear host cache and CDN cache or you will keep seeing the old 503. Uptime can confirm the lock lifted.
If .maintenance reappears within seconds, an auto-update is retrying and failing. Stop looping the same update. Check disk space, PHP limits, and the host error log—then finish one upgrade. WordPress.org still wants the upgrade re-run after a failed automatic upgrade.
Do not leave DISALLOW: / in robots.txt as a “soft maintenance.” That is the robots.txt owner, and it blocks crawl of the tag you may need Google to see.
What this is not
Staging is a clone. Two-factor login is a second factor. Application passwords are app tokens. SSL mixed content is the padlock. None of those delete .maintenance.
If you use a coming-soon plugin, write down the date you will remove it. Holding pages without a kill date become accidental homepages. Pair removal with XML sitemap so the real posts are the ones Google is invited to crawl.
A 503 from .maintenance is downtime. Uptime monitoring should page you; it should not be the fix. The fix is the file.
When the upgrade finished cleanly, you should not see the sentence at all. If you still do after delete, you are looking at cache or a plugin overlay—not WordPress core’s file.
FAQ
What is WordPress maintenance mode?
Core upgrades drop .maintenance in the base folder. Visitors see the scheduled-maintenance line until the file is gone. Official FAQ: delete the file if it sticks.
How do I clear a stuck message?
Delete .maintenance (hidden files on). Rerun the upgrade if it failed. WordPress.org troubleshooting FAQ.
Is this a coming-soon page?
No. Core lock vs marketing hold. Different indexing risk.
Is this staging?
No. Staging is a test copy.
Will Google index the maintenance screen?
A short lock is an outage. A weeks-old teaser can be crawled. Noindex + sitemap hygiene if it must stay live.
Is this the noindex guide?
No. This URL only splits file vs plugin.
2FA or app passwords?
No. Access jobs are other posts.
Noindex the whole redesign?
Do not use a leftover .maintenance file as a SEO tactic. Use indexing and noindex owners on purpose.
Delete the file or noindex the teaser
See the maintenance sentence after an update? Delete .maintenance per WordPress.org. Sitting on a coming-soon URL for a month? That is a holding page—treat it as noindex plus sitemap cleanup, not as “maintenance mode.”
Keep learning
More guides in the same topic lane.
Split Word Online Free: One File, Then a ZIP of Parts
Split Word online free: DOCX in, ZIP of parts out. Parts-Then-Zip—not merge Word, not split PDF. CashPilot tool, free up to 100 MB.
Sentence Case Converter Online: First Letter, Then the Rest
Sentence case converter online: First-Cap-Then-Paste. Not title case. CashPilot text tool in the browser. Avoid pasting secrets.
Quotation vs Invoice PDF: Valid-Until, Then Send
Free quotation / estimate generator: Valid-Until-Then-PDF. Line items and expiry—not an invoice. CashPilot tool plus invoice generator as the next job.