All use cases

How-to - storefront

Shopify out of stock: what happens and what to do about it

By Founder of UpsellShark and a working Shopify merchantUpdated

Short answer

A Shopify product that runs out of stock keeps its product page and keeps its place in your collections. Only one thing moves on its own, which is that your store's own search puts unavailable products behind everything still in stock. Hiding it anywhere else is a rule you build, and there are three ways to build one: a collection condition, a Shopify Flow workflow, or an app. Deleting is the only state that frees the web address for a redirect. The collection route needs no app and no upgrade, so this page walks that one first.

How do you hide out-of-stock products without an app?

01

Turn inventory tracking on for the products

Shopify puts this before the steps rather than inside them, and it is the reason the whole method works: a collection can only filter on a stock number if there is a stock number to read. The setting sits on each variant, in the Inventory section of the product.

If it does not work

Most of the sold-out products disappear and a handful stay put. Those are the untracked ones. Shopify reports no quantity for a variant with tracking switched off, so a rule that filters on quantity has nothing to match and leaves the product exactly where it was.

How to undo it

Switch tracking back off on that variant. The collection rule stops applying to it from the next update, and nothing else about the product changes.

02

Open the collection and check it is an automated one

Products, then Collections in your Shopify admin, then open the collection you want to clean up. A manual collection holds a hand-picked list and cannot filter on anything, so the conditions box only appears on an automated one.

If it does not work

There is no conditions box anywhere on the screen. That collection is manual, and no amount of looking will produce the setting. The fix is a new automated collection rather than an edit to this one.

How to undo it

Nothing has been changed yet. Leave the collection without saving.

03

Add the stock condition, then set the collection to match all conditions

Shopify's own steps for this are two lines. For Inventory stock, select is greater than and enter 0. Then select Match all conditions. That second line is doing as much work as the first, and it is the one that gets skipped.

If it does not work

You save the condition, load the storefront, and the sold-out products are still sitting there. The collection is almost certainly still set to match any condition.

Shopify's own note says it plainly: "This solution for hiding out of stock products won't work if you set Products must match to any condition."

Open the collection again and read the Products must match setting sitting above your conditions.

How to undo it

Delete the condition and save. Everything that was in the collection comes back, in the same order it was in before.

04

Do your Catalog page separately

Your store ships with one collection that lists everything you sell, and Shopify calls it the Catalog. It does not obey the rule you just wrote on your other collections. Shopify's route is to take control of that page with a collection of your own and put the same two conditions on it.

If it does not work

You clean up every collection you can find and sold-out products still turn up behind one link in your navigation. That link is nearly always pointing at the default Catalog page rather than at a collection you built.

How to undo it

Point the Catalog page back at the default and the original listing returns unchanged.

What does Shopify do with a sold-out product on its own?

The rule above only touches collection pages. Everywhere else the product carries on as though nothing happened, and that is the part which catches people out.

The product page stays live and stays reachable. The buy button changes to a sold-out label and that is the extent of it, unless you have switched on Continue selling when out of stock, which is a different decision with different consequences and is covered in preventing overselling on Shopify.

One surface does move by itself. Shopify's search settings documentation states that "By default, unavailable products are displayed after all other matching results", so your store's own search box has already demoted them before you have done anything.

There is also one native restock notification, and it does not live on your storefront at all. Shopify's page on the Shop app says "Customers can set up push notifications to receive updates when a saved product drops in price, or when a sold-out product is back in stock." That reaches shoppers who already saved your product in the Shop app. It reaches nobody who arrives from Google.

Four places a shopper meets a sold-out Shopify product, side by side: the product page keeps its page with a sold out button, the collection page still lists it in its usual position, storefront search shows it after everything in stock, and the Shop app sends a restock push only to shoppers who saved it
Two of these four happen without you touching anything: your own search demotes the product, and the Shop app pushes a restock alert to shoppers who saved it. The product page and the collection page do not move at all.

Can you push sold-out products to the bottom instead of hiding them?

In your store's own search results, Shopify already does. The Search & Discovery app carries a setting for out of stock products, and its three choices are, in Shopify's words, that they "can be displayed, hidden or placed last in the returned results". The third of those is the default, so the demotion is already happening and the switch is there if you would rather they vanished from search altogether.

Collection pages get none of this. Shopify's collection sort orders are six ways of ranking by sales, price, title, creation date or your own dragging, and not one of them reads a stock number. That absence is why an entire App Store category exists to push sold-out products down a collection page, and why the answer above is a collection rule rather than a sort setting.

Should you hide a sold-out product at all?

It comes down to one question, which is whether the product is coming back. Something with a restock date is usually worth leaving up. Something with no date and no plan behind it is the one to move.

Leaving it up costs you the shopper who arrives, reads sold out and leaves. Hiding it costs the page whatever search ranking it had built and orphans any link pointing at it, and none of the states below hides a product from your storefront while keeping it in Google.

Five states are worth lining up, and the order is ours rather than Shopify's: what separates them is how much of the product's web address survives, not how hidden it feels. Four of them are statuses you set on the product - Active, Unlisted, Draft and Archived - and the fifth is deleting it, which is not a status at all. Two more exist that Shopify sets by itself, Suspended and Pending suspension, and they are off the list because you cannot choose them.

Five rows for the states a sold-out Shopify product can be put in, from most to least of its web address surviving: Active with a live page, Unlisted reachable by direct link only, Draft off the storefront, Archived off the storefront, and Deleted with the address gone and a redirect now possible
A redirect is the last rung and only the last rung. Shopify refuses one from an address that still loads, so a product you have merely hidden cannot send its traffic anywhere.

What does Unlisted do that the other states cannot?

The middle one does something none of the other four can. Shopify describes Unlisted as a status where "the product details are complete and the product can be sold, but the product can't be discovered by customers". The address keeps working, a shopper holding the link can still buy, and the product drops out of your collection pages, your store's search, your sitemap and internet search.

It is also the hardest of the five to find, and that is why it gets missed. The route Shopify documents is not the Status box on the product page: go to Products, tick the ones you want, then pick Unlist products from the menu.

What does hiding a product do to your search traffic?

Getting it out of Google is the slow half, whichever state you pick. Google's own guidance on keeping a page out of search says a page only drops out once it has been crawled again, and warns that "it may take months for Googlebot to revisit a page". Nothing about this is same-day.

A lot has been written about the search-ranking side of this and almost none of it is specific to Shopify. The Shopify-specific part is that a middle option exists at all. Unlisted is the only one of the five that takes a product off your storefront without taking its address down, so if you are hiding something because it looks bad sitting in a collection rather than because it is gone, that is the state to reach for.

How do you hide and republish products automatically with Shopify Flow?

A collection rule keeps sold-out products out of collections and leaves the product itself alone. If you want the product drafted or unlisted the moment it sells out and back on the shelf when a delivery lands, Flow is the free route to it.

Check the prerequisite before you plan around it. Shopify states that "To use Shopify Flow, you must first install the free Shopify Flow app from the Shopify App Store" and that "Shopify Flow is a free app available on the Basic, Grow, Advanced, and Plus plans". A Starter store has no Flow route, which ends this section before its first click for a slice of readers.

Then a genuine annoyance, and it is Shopify's rather than yours. Two of its own pages name the same template differently. The hiding out of stock products page sends you to "Publish and unpublish products based on inventory level", while the workflow examples page lists it as "Hide and republish products based on inventory level".

So search the template library for the word inventory and read what comes back. Pasting either name and concluding the template has been removed is the easy mistake here, and it is one Shopify set up for you.

Building it by hand is short. Shopify's instruction is to start from the "Product variant inventory quantity changed" trigger, check the quantity in a condition, and add the "Unpublish product" action when the condition is met. The republish half hangs off a second trigger, "Product variant back in stock", which Shopify says fires when inventory moves "from 0 or less to 1 or more".

That second trigger carries the same prerequisite the collection rule does, for the same reason: Shopify documents it as working only on products with inventory tracked. We walk a Flow build end to end, install and all, in setting up low stock alerts on Shopify.

What do you do with a product that is never coming back?

Delete it, and then redirect it. In that order, because Shopify will not let you do it the other way round.

This is the trap on the whole topic and it is worth reading twice. Shopify's page on URL redirects is blunt about it: "You can redirect only from broken URLs", and "If the URL still loads a valid webpage, then the URL redirect won't work."

Its own worked example for a product starts with a deletion, which is the tell: "if you delete a product, then you can set up a URL redirect so that when customers enter the URL for that product, they're redirected to a similar product on your store". A product you drafted or unlisted still owns its address as far as that rule is concerned, so the redirect you carefully set up sits there doing nothing at all.

Which is also the reason redirecting a temporarily sold-out product is the wrong move rather than a clever one. You would have to delete the product to make the redirect fire, and then there is nothing left to restock.

Redirects live under Content, then Menus in your admin, behind a View URL Redirects button. The ceilings are generous enough to ignore, at 100,000 on a standard store and 20,000,000 on Plus. The detail that does matter is that browsers and search engines cache a redirect, so taking one down does not stop it for everyone the same day.

How do you keep the sale when the shopper wanted it today?

Two things work here and they do different jobs. One captures the shopper for later. The other lets the sale happen now.

Capturing them needs an app on your own storefront. Shopify has two help pages about products that run out, one on hiding them from your collections and one on selling when out of stock, and neither mentions a way for a shopper to leave an email on your product page. The only native piece is the Shop app push notification above, and it only reaches people who already saved your product there.

Letting the sale happen now is the Continue selling when out of stock tick box, and it is the one setting on this page whose consequences run past display. Switching it on means the count goes negative and you have taken money for something you might not be able to ship. Read how overselling actually happens before you turn it on for a physical product, because the refund and the apology cost more than the sale did. Doing it deliberately, with a date on the product page and a hold on each order, is setting up backorders on Shopify.

When is hiding the wrong fix?

When the product should never have reached zero in the first place. Hiding is something you do after the sale is already lost, and a product that sells out every three weeks is telling you something no display setting can answer.

Running our own store, the products we kept hiding and republishing were always the same six or seven. Hiding them faster changed nothing. What changed things was holding a few units back so there was something on the shelf while a reorder was in transit, and working out that number turned out to be arithmetic rather than a setting.

It is the wrong fix when the count is simply wrong, too. A product showing sold out while boxes of it sit in the stockroom is usually one location serving your website while another holds the stock, or a warehouse sync that landed late. Hiding the product makes that harder to spot rather than easier.

And it is the wrong fix on anything you can still make or order in. Those want Continue selling switched on with a real ship date on the product page, not a rule that takes them off the storefront the second the count hits zero.

FAQ

Common questions

Why is the sold out badge missing on my collection page?
Badges on product cards are drawn by your theme rather than by Shopify, so there is no setting for them in your admin. Look in the theme editor under the product card or collection settings first, and your theme's own documentation second. This is the one question here with a different answer on every theme.
Should I delete out-of-stock products on Shopify?
Only when the product is genuinely finished. Deleting is the only state that frees the web address so you can point a redirect at something else. Anything with a restock date is better left active, or set to Unlisted if you want it out of your collections while the link keeps working.
Can I redirect an out-of-stock product to a similar one?
Not while the product still exists. Shopify refuses a redirect from an address that still loads a page, and deleting the product is what turns its address into the 404 the redirect needs. That makes a redirect the right move for a discontinued product and the wrong one for something you are restocking.
Does hiding a product remove it from Google?
Setting a product to Unlisted takes it out of internet search and out of your sitemap, which is how Shopify describes that status, while the address keeps working for anyone holding the link. Nothing happens the same day either way, because a search engine has to come back and look before its results change.
Do sold-out products still show in my store's own search?
Yes, and they appear after everything in stock. Shopify's search documentation says unavailable products are displayed after all other matching results by default. The same setting in the Search & Discovery app can hide them from search entirely if you would rather.
Does the free Easy Stock Buffer plan hide sold-out products?
No. Hiding a product and republishing it on restock is on the $7 Pro plan. The free plan covers 10 variants, stops the sale at the threshold you set on both the add-to-cart button and at checkout, and leaves the product page up.

Hide it at your number, not at zero

Easy Stock Buffer Pro drafts or unlists a product once every variant sits at or below the threshold you set, then puts it back at its original status when a delivery lifts it above the line. Two things on this page it does not touch: it does not change how your store's search orders sold-out results, and it does not collect back-in-stock emails. The hiding is Pro only, at $7 a month. The free plan covers 10 variants, stops the sale at your threshold, and leaves the product page up.

See Easy Stock Buffer