All 13 Coming Soon and Maintenance Mode sections

See every section

Settings

Updated Coming Soon and Maintenance Mode 1.12.0Tested with WordPress 7.1

Schedule — both optional, both in your site's own time zone. Switch on at takes effect once you have enabled the mode on the Dashboard: until that time visitors see the site, and from it they see your page. Set with the mode off, it waits for the button: the Dashboard and this screen both say your page is set to go up at that time once the mode is enabled, and the Dashboard has the Enable button beside it that schedules it. If the time goes by with the mode still off, both say it passed and nothing happened. A switch-on time that has gone by is cleared when the mode is switched off, by you or at the switch-off time. Switch off at ends it: once that time has passed the site is visible again. Both are compared on every request as well as scheduled, so the site switches on the minute even if cron has not run. Switching the mode off in the settings and sending the launch email at the switch-off time are left to WordPress cron, which usually runs on the next visit after that time. If it runs more than a week after that time, it switches the mode off and emails nobody, and the Dashboard offers Send the launch email (see Telling them you have opened). Saving a screen before then keeps that job waiting, so it still runs, unless the save moves the switch-off time, turns Switch off automatically at that time off, or switches the mode on again with Enable. Saving Shop closed for orders on the Page screen, or importing a settings file that switches the mode off, before then is your launch instead, as it is while your page is up: it emails nobody itself, and the message after it says so. So is a Settings save where you answered the question about the launch email, and a Disable press where you did: each switches the mode off there and then and emails the list only if your answer was yes (see below). If WordPress's scheduled tasks have not run for more than a week after that time, a Settings save switches the mode off and emails nobody.

Saving this screen with a Switch off at time that has already passed, and Switch off automatically at that time on, switches the mode off with the save, the way the scheduled switch-off does: the time is cleared and the Dashboard says the mode is off. That goes for a time you type after it has passed, and for one that passed with the mode left on and nothing scheduled to switch it off, which can happen when a scheduled task is lost. The one exception is the scheduled switch-off still waiting to run, above: a save that asked you nothing leaves it to run, and says only Settings saved.

With your page up and people waiting, Save changes asks first, as Disable does, and the launch email goes out only if you say yes. It asks only for a time in the last week. For a time more than a week ago nobody is emailed, and the message after the save says so. While WooCommerce still hides your store it asks too, whether to hold the launch email for the people waiting, and on your yes the email waits until you set the store live. The Dashboard's Set Site visibility to Live asks again and sends it; after WooCommerce's own settings set it live, the Dashboard offers Send the launch email, which asks again. Without a yes nothing waits for the store. A save the question never reached, for example because you opened the screen after the time had passed, emails nobody and says how many were not emailed. If the mode was switched off elsewhere after you opened the screen and Save asked you anyway, the message after the save says it emailed nobody. Saving that time again later changes nothing and emails nobody a second time. With the shop closed for orders the shop takes orders again, and a mode still waiting for its Switch on at time is switched off, because the switch-off time would keep the page from ever going up. Nobody is emailed in either case. When WooCommerce still hides your store, or something stands in the way of the page shown during WordPress updates, the message after the save says that as well.

The question reads the time you type in your site's time zone, including any change of the clocks during the week, so it is asked exactly when the save can still email the list.

Both times are kept as you typed them and read in the time zone your site has now. Change the time zone under Settings → General and they mean that time in the new zone: the scheduled switch-on and switch-off move with them. A time the new zone has already put behind you takes effect straight away, as it does for visitors, and the switch-off then emails the list as it would have. Versions before this one left the switch-off at its old moment, where it could run early and be lost, leaving the mode on in the settings although visitors saw your site. Updating finds a switch-off lost that way (or any other way) and runs it: within a week of the switch-off time it emails the list as it would have, and later than that it emails nobody and the Dashboard offers Send the launch email, which asks first. Either way it ends a launch email an earlier launch held for WooCommerce's store, as every launch does.

Search Appearance — a title, a description, and whether to ask search engines not to index the page. Asking them not to suits a holding page you do not want ranking instead of the real site; switch it off if the address is being shared to build interest. On a site that already ranks, a holding page that answers 200 with this on asks for your pages to be dropped, so use Maintenance (503) for a short closure instead. Under Maintenance the setting changes nothing, because search engines do not index a 503 page anyway.

WordPress's own search engine setting is a different one: Settings → Reading → Discourage search engines from indexing this site, which covers your whole site and is easy to leave ticked after a launch. Once your site is open (the mode off, the shop closed for orders, or Apply to set to the front page only, shop and product pages, or only what you choose) and it is still ticked, the Dashboard says so, with two buttons. A page applied everywhere still covers your site, even with a page or two left open under Exclude, such as your privacy policy. Let search engines index it unticks it, as saving Settings → Reading would, and empties the page caches listed under Speed, caching and privacy, because the pages they kept still ask not to be indexed. Keep it hidden leaves it ticked and puts the note away until your coming soon page is next up; a maintenance window or a shop closed for orders does not bring it back. While your page is up with a switch-off time, the status line says ahead of time that WordPress will still ask search engines to stay away when the site opens, and the note with its buttons waits until then. A robots.txt file in your site's folder that asks every search engine to keep off every page is named as well, but not one with a group of its own that lets one search engine in; this plugin never edits that file, so ask your host or developer to change it. Nothing is said on a copy of the site WordPress knows as staging, development or local (its environment type), where keeping search engines away is usually the point, or when a site privacy plugin has put a value of its own in that setting. Only what the setting and the file ask for is reported, never anything about search results.

Header Code is printed exactly as typed and only appears for users who may already publish unfiltered HTML. It is the only part of the page that is not built for you.

WordPress Updates — while WordPress updates itself, or updates plugins and themes that are in use, it puts the site into maintenance for a minute or so and shows every visitor its own plain "Briefly unavailable for scheduled maintenance" message, whatever this plugin is doing. The setting is off until you switch on Show your page while WordPress installs updates; then visitors see your page instead: your design, colours, logo, picture, footer text and social links, with a Headline and Message of their own (by default Back in a moment and We are updating the site. Please try again in a minute.), because the coming soon headline would be the wrong thing to say. Left as the defaults, those two follow the site's language, whatever language you read wp-admin in; words you type are kept as you typed them. It answers 503 with Retry-After: 60, so search engines come back a minute later rather than index it. (WordPress's own message asks for ten minutes.) A script that asks for data rather than a page, such as the block editor or a shop's checkout, gets WordPress's own short error instead, as it would without the plugin.

It is a copy made in advance, because WordPress shows it before it has loaded any plugin, this one included. So it has no sign-up form, no countdown, no password link and no script, your Header Code is not in it, and it always asks search engines not to index it. It works whether or not coming soon or maintenance mode is on. The copy is made again whenever you save a change to the design, the logo, the footer text, the social links or these words, when you import settings, and on the first admin screen after the plugin is updated. Importing a settings file brings the words and the design but never switches this page on or off, even a file from this same site; the import's notice says so when the file had it the other way. A change to the site's title, icon, language or address under Settings → General is picked up on the next admin screen you open. Preview the update page, beside the switch, shows it as visitors will see it.

The copy is kept in wp-content/maintenance.php, the file WordPress looks for at that moment. The plugin writes that file only when there is none, or when the one there is its own; a maintenance.php from another plugin is left alone, and the panel says so. If your host does not let WordPress write to wp-content, or the site has DISALLOW_FILE_MODS set to say no plugin may change its files, the panel says that instead, and updates show WordPress's own message as before. If the file goes missing (deleted by hand, or another plugin's file taken away), pressing Save changes on the Settings screen writes it again. Switching the setting off, deactivating the plugin or deleting it removes the file. If the host has stopped WordPress changing wp-content since the file was written, switching off cannot remove it: the panel says updates still show your page, and the file has to be deleted by hand (or press Save changes again once the host allows it). Deleted over FTP rather than from the Plugins screen, the plugin cannot remove it; delete wp-content/maintenance.php by hand, or updates go on showing the last copy.

On a network the sites share one wp-content, and an update puts every site into maintenance at once, on every network of the install. So only a network administrator can switch this on or off; a site's own administrators see the switch greyed out, and can still change the words and design of their site's page. Each site that has it switched on gets its own page, found by its address. Every other site gets a plain page with WordPress's sentence, in the main network's language, with the same 503 and WordPress's own ten minutes in Retry-After. The file is written again when a site is added or deleted. Where that happens without the plugin running, for example with the plugin switched on for single sites and a site deleted from a screen that does not load it, the file catches up within the hour, the next time an administrator opens an admin screen on a site that runs the plugin. The pages of all the sites that have it switched on are kept together in one network setting, which grows with each site you switch on.

Statistics keeps one row per day: views, people and sign-ups. While new subscribers are asked to confirm their address, a sign-up is counted on the day the person confirms, not the day they filled in the form. A repeat visit is told apart from a new one by a cookie the browser keeps for the day — no address is stored, hashed or read. Search robots, link previews, uptime monitors, command-line tools, requests with no browser named and HEAD requests are not counted, since none of them keeps the cookie and each would count as a new person. A site can leave out more with the trcs_count_view filter. The paragraph offered under Settings → Privacy names the cookie.

Still stuck? Ask the developers who wrote it. We aim to reply within one business day.