WooCommerce coming soon mode: how to check it, launch your store, and what Google is sent meanwhile
Coming soon mode shows a placeholder in place of a WooCommerce store, or the whole site, to everyone except a signed-in administrator or shop manager. A new store starts in it. To launch, choose Live under WooCommerce, Settings, Site visibility, or run wp option update woocommerce_coming_soon no.
- By
- WP Ministry
- Published
- Tested on
- WordPress 7.1.3, WooCommerce 11.2.0, PHP 8.3.35
In short
- The mode is the option woocommerce_coming_soon. The value yes is on, and anything else is live. woocommerce_store_pages_only decides whether it covers the whole site or only the store's pages.
- A store on a fresh install of WooCommerce is put into it the first time the dashboard is opened, and again when the setup wizard finishes.
- Administrators and shop managers who are signed in see the real store the whole time, which is why an owner can miss it.
- While it is on, a product's address answers 200 with a placeholder. The product's title is still there. Its description, price and Product data are not, and there is no noindex.
- WordPress's "Discourage search engines" box is a separate setting. Launching the store does not untick it.
- To launch, choose Live and save, or run wp option update woocommerce_coming_soon no. Then request a product page signed out.
Coming soon mode is WooCommerce's own switch for a store that is not open yet. While it is on, a visitor who is not signed in gets a placeholder page in place of the store's pages, or in place of every page on the site. A signed-in administrator or shop manager gets the real store. A store on a fresh install of WooCommerce is put into this mode without anyone choosing it, so a store whose products cannot be found on Google may never have been launched.
To launch, go to WooCommerce, then Settings, then Site visibility, choose "Live" and save. With WP-CLI, run wp option update woocommerce_coming_soon no. Then request a product page as a visitor who is not signed in, because that is what a customer and a search engine get.
What coming soon mode is
The setting is under WooCommerce, then Settings, on the tab "Site visibility". The screen offers two choices, and the first has two boxes beneath it.
- "Coming soon". The screen describes it this way: "Your site is hidden from visitors behind a “Coming soon” landing page until it’s ready for viewing."
- "Apply to store pages only". "Display a "coming soon" message on your store pages — the rest of your site will remain visible."
- "Share your site with a private link". "Share your site with anyone using a private link."
- "Live". "Your entire site is visible to everyone."
WooCommerce stores the choice in two options, each holding yes or no.
| What is chosen on the screen | woocommerce_coming_soon | woocommerce_store_pages_only | Who gets the placeholder |
|---|---|---|---|
| "Coming soon", with "Apply to store pages only" unticked | yes | no | A visitor to any page of the site |
| "Coming soon", with "Apply to store pages only" ticked | yes | yes | A visitor to one of the store's pages |
| "Live" | no | Either | Nobody |
WooCommerce's code treats the store as live unless woocommerce_coming_soon is exactly yes. A store where the option was never created is live.
Which pages are the store's pages
With "Apply to store pages only" ticked, WooCommerce's code swaps the placeholder in on these: the shop page, the cart, the checkout, the terms and conditions page if one is set, every product, and every product category, tag and archive.
On the test store, the rest of the site stayed open in that form: the home page, a post and an ordinary page. So did two pages a reader might expect to be covered. The My account page was served as usual. So was the privacy policy page, which WooCommerce's documentation lists among the covered pages.
What a visitor is shown
On a fresh WordPress with its default theme, the two forms show different placeholders.
- Whole site: a bare page with one heading, the site's name followed by "is coming soon", and a "Log in" button.
- Store pages only: the theme's own header and footer around the heading "Great things are on the horizon" and the line "Something big is brewing! Our store is in the works and will be launching soon!"
WooCommerce's documentation says the placeholder can be edited in the Site Editor.
When a store starts in coming soon mode
WooCommerce announced the mode in June 2024, planned for version 9.1, with new stores going into it when the setup wizard finished. A developer advisory in January 2025 said that from version 9.6 a fresh install starts with both options set to yes. This is what the code does on the version tested.
| How the store came to be | Where it starts |
|---|---|
| WooCommerce installed on a site that never had it | Coming soon, store pages only, from the first time the dashboard is opened |
| The setup wizard finished, or skipped with "Skip guided setup" | Coming soon. The whole site if WordPress still flags the site as fresh and the account running the wizard is less than a month old. Store pages only otherwise. |
| A store that was running before the mode existed | Live. WooCommerce's documentation says an existing store is not affected, and an update routine in its code adds the option as no where it is missing. |
| WooCommerce activated from the command line, dashboard never opened | Neither option exists yet, so the store is live |
Two of these rows matter more than they look.
The first row needs no wizard. WooCommerce adds the two options on the first request to the dashboard after a fresh install. The test store, activated with WP-CLI, had neither option and served its product page. One visit to the dashboard later, both options read yes and the same address served the placeholder. Nobody chose anything.
The wizard sets the mode whatever it was before. The request the wizard sends when it hands over to WooCommerce's home screen sets woocommerce_coming_soon to yes. The comment in WooCommerce's code says it "Overwrites existing coming soon status". Sent to the test store after it had been launched, that request put it back into coming soon mode.
"Fresh" is WordPress's own flag, the option fresh_site. WooCommerce's documentation gives the second condition as the first administrator having registered less than a month ago. The code checks the account that is signed in when the wizard finishes.
How to tell whether your store is in it
In the dashboard
- The badge in the toolbar. At the top of every screen, beside the site's name, a badge reads "Coming soon", "Store coming soon" or "Live". Selecting it opens the Site visibility screen. The box "Display site visibility badge in admin bar" on that screen hides it, so a missing badge tells you nothing.
- The settings screen. WooCommerce, then Settings, then Site visibility shows which of the two choices is selected.
- The line at the foot of a store page. Signed in, open the shop. While the mode is on, a strip at the bottom of the page reads: "This page is in "Coming soon" mode and is only visible to you and those who have permission. To make it public to everyone, change visibility settings."
- The task list. On WooCommerce's home screen, the task "Launch your store" stays open until the mode is off.
With WP-CLI
Run this from the site's folder. How to use WP-CLI covers connecting and where to run commands.
wp option get woocommerce_coming_soonIt prints yes while the mode is on and no once the store is launched. If it answers Error: Could not get 'woocommerce_coming_soon' option. Does it exist?, the option was never created and the store is live.
When it prints yes, this says which form is on: yes for the store's pages only, no for the whole site.
wp option get woocommerce_store_pages_onlyFrom outside
Do not judge by the browser you manage the store in. Signed in as an administrator, you are shown the real store. Open the shop in a private window, or ask for a product page from a terminal. Put the address of one of your own products in place of the one here.
curl -s https://example.com/product/blue-enamel-mug/ | grep -o "<meta name='woo-coming-soon-page'[^>]*>" || echo "not a coming soon page"<meta name='woo-coming-soon-page' content='yes'>WooCommerce prints that tag in the <head> of every placeholder it serves, and nowhere else. If the command prints not a coming soon page, the address is being answered with the real page.
Who still sees the real store
- Administrators and shop managers. WooCommerce's code skips the placeholder for anyone signed in with the right to manage WooCommerce. On the test store, an administrator and a shop manager were served the product page. A signed-in customer and an editor were served the placeholder.
- Anyone with the private link. With "Share your site with a private link" ticked, the settings screen gives a link that ends in
?woo-share=and a key. A request that carries the right key gets the real page and a cookie that keeps the store open in that browser for 90 days. A wrong key gets the placeholder. - Whatever a plugin excludes. WooCommerce has a filter,
woocommerce_coming_soon_exclude, through which code can let a request past.
This is why the mode goes unnoticed. The person most likely to look at the store is the one person it is never shown to.
What a search engine gets while it is on
A crawler is a visitor who is not signed in. These are the answers a store with one product gave to such a visitor, on a fresh WordPress with its default theme and plain WooCommerce.
| Address | Store pages only | Whole site |
|---|---|---|
| A product | Status 200, the placeholder | Status 200, the placeholder |
| The shop page, a product category, the cart | Status 200, the placeholder | Status 200, the placeholder |
| The home page, a post, an ordinary page | The real page | Status 200, the placeholder |
| An address that does not exist | Status 404, the theme's "Page not found" | Status 404, with the placeholder as its body |
/wp-sitemap.xml and the product sitemap under it | Status 200, every product listed | The same |
/robots.txt | Unchanged | Unchanged |
The Store API at /wp-json/wc/store/v1/products | Status 200, each product's name and price | The same |
The answer for a product's address
This command prints the status line and, where they are sent, the Cache-Control and X-Robots-Tag headers. Use a product's address, and keep the request as written: WordPress answers a HEAD request before it reaches the placeholder, so curl -I does not show the second line.
curl -s -o /dev/null -D - https://example.com/product/blue-enamel-mug/ | grep -i -E "^HTTP|^cache-control|^x-robots-tag"HTTP/1.1 200 OK
Cache-Control: max-age=60Taken apart, the answer for a product in coming soon mode holds this:
- Status 200. Not 503, and not a redirect.
- A header,
Cache-Control: max-age=60. WooCommerce sets it on the placeholder. There is noX-Robots-Tagheader. - The marker tag,
<meta name='woo-coming-soon-page' content='yes'>. - The same robots tag as a live page:
max-image-preview:large. There is nonoindex. - The product's own
<title>, and a canonical link that points at the product's own address. - No structured data. The Product data a live product page carries is gone, and the placeholder has no JSON-LD of any kind. WooCommerce schema markup covers what is there once the store is live.
- A body that is only the placeholder. Nothing a reader sees comes from the product: no description, no price, no button.
One detail differed between the two forms. In the store-pages-only form, the placeholder kept the theme's header, and a block of data for scripts in the page's source still held the product's name, description and price. Nothing on the page displayed it. In the whole-site form it was absent.
This command reads the robots tag from the same address:
curl -s https://example.com/product/blue-enamel-mug/ | grep -i -o "<meta[^>]*robots[^>]*>"<meta name='robots' content='max-image-preview:large' />What that means in Google's terms
Google's page on status codes says what it does with a 200: it "passes on whatever it received to the next processing step", and its indexing systems "may index the content, but that's not guaranteed." So for each product address, Google is handed a page with the product's title, the product's address as canonical, and a body that says the store is coming soon.
Three things are worth setting beside that.
- Nothing in the answer asks Google to stay away. Google's documentation names
noindex, in a tag or a header, as the rule that keeps a page out of its results. The placeholder carries neither. - The sitemap still offers every product. WordPress's sitemap lists each published product while the mode is on, exactly as it does on a live store.
- Nothing says the closure is temporary. Google's page on pausing a site recommends keeping the site online and limiting what it does, by disabling the cart and showing a banner. Closing a whole site it calls "an extreme measure that should only be taken for a very short period of time (a few days at most)". For a closure of one or two days it says to answer with a 503. For longer, it says to provide an indexable home page as a placeholder, with a 200.
Coming soon mode is none of those exactly. It answers 200 on every address it covers, with the placeholder in place of the content. What Google does with such a page is Google's to decide. What it is given is the list above.
Coming soon mode is also not a lock. The sitemap and the Store API go on naming products and prices to anyone who asks. A store that must not be seen needs a password in front of it, as a staging site does.
Coming soon mode and "Discourage search engines" are separate
WordPress has its own setting under Settings, then Reading: the box "Discourage search engines from indexing this site", stored as the option blog_public. It puts noindex, nofollow on every page and switches off the sitemap. What that box does covers it in full.
The two settings do not know about each other. These are the four combinations, as served to a visitor who is not signed in.
woocommerce_coming_soon | blog_public | A product's address | Robots tag on it | /wp-sitemap.xml |
|---|---|---|---|---|
yes | 1 | The placeholder | max-image-preview:large | 200 |
yes | 0 | The placeholder | noindex, nofollow | 404 |
no | 0 | The product | noindex, nofollow | 404 |
no | 1 | The product | max-image-preview:large | 200 |
The third row is the one to watch. A store built with the box ticked and then launched serves its products to customers and still tells search engines to leave them out. Launching does not untick the box. Check it by itself:
wp option get blog_publicIt prints 1 when the box is not ticked and 0 when it is.
Launch the store
Step 1: Choose Live and save
Go to WooCommerce, then Settings, then Site visibility. Select "Live" and then "Save changes". The task "Launch your store" on WooCommerce's home screen does the same thing with its own "Launch your store" button.
Step 2: Or set the option with WP-CLI
Both buttons set one option to
no. This sets it from the command line.It answers
Success: Updated 'woocommerce_coming_soon' option.If it says the value is unchanged, the store was already live and the mode was not your problem.bashwp option update woocommerce_coming_soon noStep 3: Clear any page cache
WooCommerce's documentation warns that the live store may not show at once after launch because of server caching. A caching plugin, the host's cache or a CDN that stores whole pages can hold a copy of the placeholder. Clear each one.
Step 4: Check that the placeholder has gone
Run the command under "From outside" again, on a product and on the shop page. It should print
not a coming soon pagefor both.Step 5: Check that the product's data is back
This looks for the Product data in the page's source, as a visitor who is not signed in.
It prints
"@type":"Product"for a live product that has a price, andno product datafor the placeholder.bashcurl -s https://example.com/product/blue-enamel-mug/ | grep -o '"@type":"Product"' || echo "no product data"Step 6: Check the other setting
Run
wp option get blog_public, or look at Settings, then Reading. It should print1. Then read the robots tag with the command above. It should not containnoindex.Step 7: Ask Google once
The page indexing check reads an address from outside and reports its status, a
noindexin the page or its headers, a block in robots.txt and the canonical address. Google's page on recrawling says to use the URL Inspection tool in Search Console for a few addresses, and to submit a sitemap for many.
Google's documentation says crawling "can take anywhere from a few days to a few weeks", and that asking for a crawl does not mean a page is included at once, or at all. Nobody outside Google sets that date. If the products are still missing after that, why a WordPress site is not showing up on Google goes through the other causes in order.
If a live store is put back into coming soon mode
It happens in three ways. Someone selects "Coming soon" on the settings screen. Someone follows WooCommerce's guide to updating, which says to set the live site to Coming soon mode for the update; updating WooCommerce safely goes through that routine. Or the setup wizard is run on a store that was already live.
From that moment, every covered address that Google already has still answers 200, with the placeholder where the product was. Google's page on status codes says it passes on whatever it receives. What it receives no longer has the product's description, its price or its Product data.
Google's page on pausing a site is written for a store that closes for a while. It says: "Completely closing a site even for just a few weeks can have negative consequences on Google's indexing of your site." Its recommendation is to keep the pages up and limit what the site does.
So keep the time short, and prefer the store-pages-only form on a site that has other pages worth keeping open. When the work is done, launch again and run the checks above. The option is the thing to look at afterwards, not the screen you see while signed in.
When to get help
- Ask the host if the option reads
noand a visitor is still served the placeholder after every cache you control is cleared. - Hand it over if the store is launched, neither setting says
noindex, and the products are still not found. A WordPress SEO audit from WP Ministry is a one-time, written audit of what stands between a WordPress or WooCommerce site and a search engine. There is also a WooCommerce SEO service.
Common questions
Is a new WooCommerce store in coming soon mode by default?
Yes, once the dashboard has been opened. A fresh install of WooCommerce adds the two options as yes on the first request to the dashboard, which puts the store's pages behind the placeholder. Finishing or skipping the setup wizard sets the mode again. A store that existed before the mode did was left live.
Why does my store look normal to me and say coming soon to my customers?
Because you are signed in. An administrator or a shop manager is always served the real store, with a strip at the foot of the page that says it is in "Coming soon" mode. Everyone else gets the placeholder. Check in a private window, or with the command under "From outside".
Does coming soon mode stop Google from indexing my store?
It does not ask Google to. The placeholder answers 200, carries no noindex, and keeps the product's title and canonical address, and the sitemap still lists every product. Google's documentation says it may index what a 200 returns. The setting that asks search engines to stay away is WordPress's "Discourage search engines" box, which is separate.
Does launching the store untick "Discourage search engines"?
No. Launching sets woocommerce_coming_soon to no and touches nothing else. If the box under Settings, then Reading, was ticked while the store was built, it is still ticked after launch, and every page still says noindex.
Is the store hidden from everyone while the mode is on?
No. The placeholder replaces pages. The sitemap still lists the products, and the Store API still returns their names and prices to anyone who asks for them. Put a password on a store that must not be seen.
Can I use coming soon mode while I update the store?
WooCommerce's guide to updating says to, "so customers do not check out while files and database changes are running". Keep it short. Google's page on pausing a site recommends keeping pages online with the cart disabled, and says that closing a site even for a few weeks can affect how it is indexed.
- ResourceWooCommerce checkout is down: a runbook
- Cost guideWooCommerce maintenance cost: why a store costs more, and what the extra should buy
- ResourceWooCommerce sale readiness checklist: Black Friday or any big sale
- Error fixHow to fix WooCommerce payment gateway errors
- Error fixHow to fix a WooCommerce checkout that is not working
- GuideWooCommerce database update required: what the notice means and how to finish it safely

