Nearly 69% of online shoppers will leave your store and buy from a competitor the moment they see “out of stock” on a product they want (Opensend, 2025). That single label can cost you a sale you already worked hard to earn.
The good news is you can hide out of stock products in WooCommerce in a few minutes. No plugin required for the basic setup. This guide shows you the built-in method, two backup methods for more control, and the mistakes that quietly hurt store owners who rush this.
Go to WooCommerce > Settings > Products > Inventory. Check the box labeled “Hide out-of-stock items from the catalog”. Click Save changes.
Out of stock products will disappear from your shop page, category pages, and search results right away. They stay in your database, so nothing is deleted. The product comes back automatically once you restock it.
Before You Hide Anything, Know This
Most tutorials skip this part, and it’s the part that matters most.
Hiding is not the same as deleting. When you hide a product, WooCommerce keeps the page live in your database. The URL still works if someone has it bookmarked or finds it through a saved link. Google can still crawl it if you don’t block it. This matters because a hidden product keeps its SEO value. A deleted product loses it, and you start from zero if you bring the item back later.
Hiding removes the product from browsing, not from direct access. If a customer already has the product link saved, or Google has it indexed, they can still open the page. They just won’t stumble on it while browsing your shop.
The setting is global. Once you turn it on, it applies to every out of stock product on your site. If you only want to hide some products, you need Method 2 below.
Keep these three points in mind and you’ll avoid the two biggest mistakes store owners make: deleting products they meant to just hide, and expecting the setting to work on individual items when it’s actually a site-wide switch.
Method 1: The Built-In WooCommerce Setting
This works for almost every store and takes under two minutes.

- Log into your WordPress dashboard.
- Go to WooCommerce > Settings.
- Click the Products tab, then the Inventory sub-tab.
- Make sure “Manage stock” is checked. The hide option won’t appear if stock management is turned off.
- Find “Out of stock visibility” and check “Hide out-of-stock items from the catalog.”
- Scroll down and click Save changes.
That’s it. WooCommerce removes out of stock products from:
- Your main shop page
- Category and tag archive pages
- Search results
- Related product widgets
- Cross-sells and up-sells shown at checkout
It does not remove them from:
- Direct product URLs (the page still loads)
- Google’s index, unless you separately noindex the page
- Emails or links you’ve already sent out
If a product goes back in stock, it reappears in your shop automatically. You don’t need to touch the setting again.
Method 2: Hide Specific Products Only
The setting above is all or nothing. If you want some out of stock products to stay visible (maybe you’re taking pre-orders, or the item is a bestseller you’ll restock soon), you need a different approach.
Option A: Change the product’s catalog visibility.

- Open the product in Products > All Products.
- In the Publish box, find Catalog visibility and click Edit.
- Choose Search results only or Hidden.
- Update the product.
“Search results only” is useful when you still want the product findable through your site search but not shown while browsing categories.
Option B: Use a small code snippet.
If you manage several products this way often, a snippet in your child theme’s functions.php gives you more control than clicking through each product manually. It lets you hide only products in certain categories, or only for certain user roles, while leaving the rest of your catalog untouched. If you’re not comfortable editing theme files, a plugin like WooCommerce Stock Manager or a similar inventory plugin does the same thing through a settings screen.
Method 3: Hide Out of Stock Product Variations
If you sell products with variations, like a t-shirt in different sizes, the standard setting hides a variation only, not the whole product. A shirt with one size left in stock still shows on your shop page, just without the sold-out sizes selectable.
This is usually the correct behavior. Customers can still buy the sizes that are available. But if an entire product has zero variations in stock, WooCommerce treats the whole product as out of stock and hides it under the setting from Method 1.
To hide individual sold-out variations from the dropdown on the product page (instead of just disabling the “Add to cart” button), you need the woocommerce_variation_is_visible filter. This is a developer-level change, so if you’re not comfortable with code, ask your developer to add it or use a plugin built for variation management.
Hide vs. Push to the Bottom: Which Should You Use?
Hiding isn’t always the best choice. An alternative many stores prefer is pushing out of stock products to the bottom of the page instead of hiding them completely.
Here’s why this matters. Every product page you’ve built up over time carries SEO value, backlinks, reviews, and search rankings. Hide a product for months and you lose the traffic it was pulling in. Push it down instead, and customers who want it can still find it, while your bestsellers get the top spots.
Use hiding when:
- The product is discontinued for good
- You run a small catalog and clutter hurts the shopping experience
- The item won’t be restocked for a long time
Use push-to-bottom when:
- You expect to restock soon
- The product has strong SEO traffic you don’t want to lose
- You want out of stock items to still generate interest or waitlist signups
WooCommerce doesn’t include a push-to-bottom sort option by default. You’ll need a plugin for this, or a custom sorting function added to your theme.
Fix It: “Hide Out of Stock Items” Not Working
This setting fails for a handful of predictable reasons. Work through this list in order.
1. Stock management is off. Go back to WooCommerce > Settings > Products > Inventory and confirm “Manage stock” is checked. The hide feature depends on it.
2. Individual products have stock management disabled. The global setting only works for products where stock tracking is turned on at the product level too. Open the product, go to the Inventory tab, and check “Track stock quantity for this product.”
3. A cache is showing you an old version of the page. Clear your site cache and any CDN cache (like Cloudflare). If products still appear, open the shop page in an incognito browser window to rule out browser cache.
4. Your theme overrides the default shop query. Some themes and page builders pull products with custom code that ignores WooCommerce’s visibility settings. Ask your theme developer, or test by switching to a default theme like Storefront temporarily to confirm.
5. A plugin conflict is interfering. Deactivate other product display or filtering plugins one at a time to find the culprit.
6. You’re looking at a widget or block that isn’t tied to the main query. Some product carousels and “recently viewed” blocks pull data separately and may need their own settings adjusted.
A Better Option for Bestsellers: Don’t Hide, Offer a Waitlist
Hiding a popular product removes it from view, but it also removes the chance to capture that customer’s interest. If a shirt in your best-selling color sells out, hiding it means the next 50 people who would have wanted it never even see it exists.
Instead, keep the product visible and swap the “Add to cart” button for a “Notify me when back in stock” form. WooCommerce doesn’t include this by default, but plugins built for this (like WooCommerce Waitlist or similar back-in-stock tools) let you:
- Collect emails from interested buyers
- Auto-send an alert when the product restocks
- See real demand data before you reorder inventory
This turns a lost sale into a warm lead. For high-demand items, this usually performs better than hiding the product completely.
You can also customize the out of stock message itself instead of just showing “Out of stock.” A line like “Back in stock soon, join the waitlist” keeps the page useful instead of dead-ending the visitor.
Frequently Asked Questions (FAQs)
Does hiding out of stock products delete them?
No. Hiding keeps the product in your database and at its original URL. Deleting removes it permanently unless you restore it from the trash.
Will hidden products still show up in Google search?
Yes, unless you add a noindex tag to the page. Hiding only affects visibility within your own site’s shop, category, and search pages.
Can I hide out of stock products in just one category?
Not with the default setting, since it applies site-wide. You’ll need a code snippet or a plugin that supports category-level rules.
Why does my out of stock product still show the “Add to cart” button?
This usually means stock tracking is off for that specific product, or your theme is caching an old version of the page. Check the product’s Inventory tab first.
What happens when I restock a hidden product?
It reappears automatically on your shop, category, and search pages as soon as you update the stock status or quantity. No manual action needed.
Next Step
Turn on the built-in setting first. It solves the problem for most stores in under two minutes. If you sell high-demand products that sell out often, add a back-in-stock notification tool next. It’s a small addition that turns your out of stock pages into a lead capture tool instead of a dead end.


