Out-of-stock products clutter your shop pages, fill search results with items nobody can buy and send shoppers to a dead end. WooCommerce can hide them for you with a single setting. The catch is that the setting only works when the stock data behind it is right, and for stores that sell from a supplier it is often wrong. This guide shows how to hide out-of-stock products and variations in WooCommerce, what the setting does and doesn't do, why products sometimes stay visible, and how to keep stock accurate so the right products disappear and come back on their own.

The short answer

  1. Go to WooCommerce → Settings → Products → Inventory.
  2. Tick Hide out of stock items from the catalog under Out of stock visibility.
  3. Click Save changes, then clear your page cache.

Products whose stock status is Out of stock no longer appear in your shop, category and search listings. As soon as a product is back in stock, it shows again. You don't need a plugin or code for this. WooCommerce documents the option in its Products settings, and it is available even when stock management is turned off.

What the setting does, and what it doesn't

The setting hides products from the store catalog: the shop page, product category and tag pages, and product search. A few things are worth knowing before you rely on it:

  • It follows stock status, not quantity. A product is hidden when WooCommerce marks it Out of stock. A product On backorder counts as available and stays visible.
  • The product page still exists. The product is not unpublished or deleted. Someone with the link, or a search engine result, can still open it and see that it is out of stock. That is usually what you want, because the page keeps its URL for when the item returns.
  • It applies to the whole store. There is no per-category version in WooCommerce itself. If you want to keep some sold-out items visible, for example to collect interest, you need a plugin or a code snippet for that rule.
  • Your theme or page builder may use its own product lists. Most standard WooCommerce lists respect the setting. If a block, slider or page-builder widget still shows sold-out products, check that element's own stock or visibility options.

To hide one product only, whatever its stock, edit it and change Catalog visibility in the Publish box to Hidden. That removes it from the shop and search listings while its page stays reachable by direct link.

How to hide out-of-stock variations

The same setting also hides out-of-stock variations, such as a sold-out size, from the dropdown on the product page. According to WooCommerce's variable product documentation, a variation is hidden only when all of these are true:

  • Hide out of stock items from the catalog is enabled.
  • Stock is managed on each variation, not on the parent product.
  • The variation's stock quantity is 0 or its stock status is Out of stock.
  • Backorders are not allowed for that variation.

If you manage stock on the parent product, or allow backorders, every variation stays in the dropdown and customers see an unavailable message when they pick a sold-out option. The parent product itself stays in your shop as long as at least one variation is in stock.

Why out-of-stock products are still showing

If you ticked the box and sold-out products are still in your shop, work through these checks in order:

  1. Cache. A page cache, a caching plugin or your host's cache can keep serving the old shop page. Clear it and test in a private browser window while logged out.
  2. The product isn't really out of stock. Open the product's Inventory tab. With Track stock quantity on, WooCommerce sets the status from the quantity. With it off, the status is whatever was set by hand or by your last import, and it may still say In stock.
  3. Backorders are allowed. If Allow backorders? is set to Allow or Allow, but notify customer, a product at zero becomes On backorder, not out of stock, and stays visible.
  4. Stock is on the wrong level. For variable products, stock on the parent hides nothing in the dropdown. Move stock to the variations.
  5. The threshold is higher than you think. WooCommerce's Out of stock threshold sets the quantity at which a managed product turns out of stock. If it is 0, a product with 1 left is still in stock.
  6. A plugin changes stock status. Pre-order, backorder and stock plugins can report products as available on purpose. Check whether a product is set up for pre-orders before you assume a bug.

Hiding only helps if stock is up to date

For a store that holds its own stock, WooCommerce lowers the quantity with every order, so the setting works on its own. For a store that sells from a supplier's warehouse, the quantity in WooCommerce only changes when you update it. If the supplier sold out yesterday and your store still says 12, the product stays visible and customers keep ordering it. The reverse is just as costly: a product that came back in stock at the supplier stays hidden until someone notices.

So the real job is keeping stock in line with the supplier. There are two common ways:

  • Manual CSV updates. Export products, copy in the supplier's latest quantities by SKU and re-import with Update existing products ticked. It works for small catalogs that change slowly, but your stock is only as fresh as your last import. Our guide to fixing WooCommerce CSV imports covers the usual errors.
  • A scheduled feed sync. If the supplier offers an XML or CSV feed URL, a plugin or service can re-read it on a schedule and update the matching products. Compare the options in how to auto-sync supplier stock and prices in WooCommerce.

Either way, use Track stock quantity on the products and leave backorders off, unless you really accept orders for items you can't ship yet. Then a quantity of zero becomes Out of stock and the product drops out of your listings automatically.

Stop showing products before the last unit

A supplier's stock number is shared with every other shop that sells the same item. By the time your next update runs, the last few units may already be gone. Two simple rules reduce that risk:

RuleWhat it doesExample
Out-of-stock thresholdMarks a product out of stock (and so hides it) when its quantity reaches a number you choose.Threshold 2: a product with 2 left is hidden.
Stock bufferShows fewer units than the supplier has, so you stop selling before they run out.Supplier has 10, buffer 2: your store shows 8.

WooCommerce's Out of stock threshold in Settings → Products → Inventory is store-wide and applies to products with stock tracking on. A buffer is not built into WooCommerce. Some sync tools apply it while they update stock.

Keeping supplier stock in sync with FeedPup

FeedPup is our tool for this job. Install the free plugin from WordPress.org, connect it under WooCommerce → FeedPup and add your supplier's XML or CSV feed URL. After you confirm the field matches and the import, FeedPup re-reads the feed on your plan's schedule and updates stock quantity with WooCommerce's standard stock functions, including per variation. It turns on stock tracking for the products it updates, so at zero WooCommerce marks them out of stock and your Hide out of stock items setting removes them from the catalog. When the supplier has stock again, the next sync brings them back.

  • Availability-only feeds. If your supplier only says “in stock” or “out of stock”, you choose how many units an in-stock item shows. Out of stock becomes 0.
  • Buffers and minimum stock. Growth and Pro add a stock buffer and a “show as out of stock at or below” rule. On Starter, stock follows the supplier one to one.
  • Sync frequency. Every 24 hours on Starter, 6 hours on Growth and 2 hours on Pro. The free Basic plan is a test of up to 100 draft products, without scheduled sync.
  • Products the supplier drops. FeedPup never deletes products. If an item disappears from the feed, FeedPup leaves it in your store untouched and shows how many items are no longer in the feed, so you can decide whether to set them out of stock yourself.
  • Your own products are safe. FeedPup only updates products it imported. Products you added yourself keep the stock you manage.

Plans and the 14-day free trial are on FeedPup for WooCommerce. If you are starting from scratch, read how to import XML products into WooCommerce first.

A quick checklist

  1. Turn on Hide out of stock items from the catalog and clear the cache.
  2. Track stock quantity on every product you sell from a supplier, on the variation level for variable products.
  3. Leave backorders off unless you deliberately take orders for items you can't ship yet.
  4. Set an out-of-stock threshold or a stock buffer for fast-moving items.
  5. Keep quantities updated from the supplier, by CSV or by a scheduled feed sync.
  6. Review items your supplier no longer sends, so they don't stay visible with old stock.