How common fully out-of-stock products are
The 2026 study read the public catalogue and product markup of a random sample of Shopify and WooCommerce stores in one outside crawl in September 2026. Among the 928 stores whose catalogue could be read, 46% had at least one product that was out of stock in every variant, 428 stores. That is a large minority of the group. The raw split by platform looks wide, 56% of 702 Shopify stores against 14% of 226 WooCommerce stores, but it is not a fair comparison: a WooCommerce store can hide sold-out products from its public catalogue, so its share is likely understated.
The study reads the public catalogue and the markup, not the admin panel. A product counts as fully out of stock when every variant reports no stock, so a single sold-out size on an otherwise available product does not count. Like the rest of the study, it is one crawl on one date: it records a moment, not a habit, and a product that clears tomorrow may still be flagged once.
The share matters because it says the problem is ordinary. A store that finds one stale product page is not unusual, and the choice about what to do with it is a routine maintenance decision rather than an emergency.
When to keep the page
A product page that is temporarily out of stock is usually worth keeping. It holds whatever search visibility and links it has earned, and it is where a returning shopper or a bookmarked link lands. Removing it throws that away and makes the next restock start from nothing. Keep the URL, keep it linked from its collection, and make the state obvious on the page rather than hiding the product entirely.
Two practical steps help. First, show the stock state clearly and, if the store supports it, offer a way to be told when the item returns, so the page keeps earning attention while it waits. Second, make sure the page still answers the question it was ranking for: the description, the images and the specification do not disappear just because the stock line changed. A page that stays useful while out of stock can hold its place; a page that turns into an apology usually does not.
The exception is the page that promises something the store can no longer do. If the product is gone for good, keeping a live page that looks buyable misleads the shopper and the search system, and that is where the sections below apply.
Mark availability in structured data
Mark the state honestly in structured data. A product that can be restocked keeps its Product markup with availability set to OutOfStock. If the price is known and stable, keep it; if it is not, leave it out rather than guessing. The availability value must match what the page and the checkout actually do. A page that reads in stock while its markup says out of stock is a mismatch that can cost the listing, and the reverse is worse because it sends a shopper to buy something that is unavailable.
On Shopify, the product's inventory state usually drives the availability value, so check the markup after changing stock, especially when a product has variants. On WooCommerce, the stock status field drives it; a product set to out of stock should not be purchasable unless backorders are deliberately allowed. If the store runs a feed, the feed's availability value has to agree with the page as well, or the two systems will disagree about the same product.
For the field-level detail, read product schema on Shopify, which covers what the theme emits and what has to be added by hand.
Redirect, 404 or 410 for discontinued products
When the product is not coming back, the right signal depends on whether a replacement exists.
- A replacement exists. Redirect the old URL to the product that genuinely replaces it, with a permanent redirect. Redirect to the specific replacement, not to a category or the homepage: a redirect to a generic page reads as a soft 404 and loses the intent the old page had.
- No replacement, but the page still helps. Keep it as a clearly marked discontinued page with links to the closest alternatives. This is honest, keeps inbound links working, and gives the shopper somewhere to go.
- No replacement and no value. Return a 410 Gone, or a 404 if the platform cannot serve 410. Both are correct signals that the page is gone. Do not leave it answering normally with a thin notice, because that is the soft 404 the study also measures.
As you go, remove discontinued URLs from the sitemap and from internal links, and let the redirect or the status code do the rest. Do not redirect a whole catalogue to the homepage: search systems read a mass redirect to one page as a sign that the old pages are gone, and shoppers lose the thread between what they searched for and what they land on.
What the availability check measures
Run the availability check to read your public product data and markup and flag products that are out of stock in every variant, along with pages whose markup disagrees with what they serve. Its limits are the limits of an outside read. It sees what is public, so it cannot know a stock level kept in the admin, and it takes one reading, so a product that is out of stock today and back tomorrow may be flagged once and then clear. Use it to find the pages worth a decision, then choose per page whether to keep, mark, redirect or remove.
The share of stores in this situation, the platform split and the intervals are in The State of Ecommerce SEO 2026, with the same figures on the statistics page.
Shipwork reads your public product data and markup and flags products that are out of stock in every variant, so you can decide what each page should do. Free, no account, no signup. Paste your store address.
Check product availabilityQuestions
Should I delete an out-of-stock product page?
Should an out-of-stock page redirect to a category?
What availability value should the markup use?
How common are fully out-of-stock products?
Keep reading