Hiding a product in WooCommerce means removing it from public view without permanently deleting it. The product stays in your dashboard, but customers can no longer find it while browsing your shop, searching for items, or scrolling through category pages.
It is different from deleting a product. When you delete, the listing is gone for good. When you hide, everything stays intact and can be made visible again whenever you are ready.
Common examples include seasonal items that are not yet available, wholesale products meant only for registered buyers, out-of-stock listings you plan to restock, and test products still being set up.
Most WooCommerce stores reach a point where not every product should be visible to every visitor. A few situations that come up often:
In all of these cases, hiding beats deleting. The product data, images, and history stay safe and ready to go when you need them.
Before going into the steps, it helps to know that WooCommerce actually offers four different catalog visibility settings built right in:
| Visibility Setting | Shows on Shop Pages | Shows in Search | Accessible by Direct Link |
| Shop and Search Results | Yes | Yes | Yes |
| Shop Only | Yes | No | Yes |
| Search Results Only | No | Yes | Yes |
| Hidden | No | No | Yes |
Notice that the built-in Hidden option still allows someone to reach the product if they have the direct URL. It is a display-level hide, not true access control. If you need stricter restriction, a plugin is required.
This is the quickest option for hiding individual products from shop pages and search results.
The product will disappear from your shop pages and search results. Anyone with a direct link can still reach the product page, so this method works best for products that are not widely shared yet.
Best for: Quick, low-stakes visibility control on individual products.

Changing a product to Draft removes it from the storefront entirely. It will not appear in search, shop pages, or by direct link for regular customers.
To bring it back, simply change the status back to Published.
Best for: Products being actively worked on or temporarily pulled from sale.

WooCommerce also lets you set individual product visibility to Private or Password Protected directly from the Publish panel.
Password protection is useful for exclusive launches or VIP offers. Private is better for internal or admin-only products.
Best for: Exclusive products, private client listings, or admin-only items.

If you want WooCommerce to hide all out-of-stock items automatically across your entire catalog, you can turn this on from settings. No need to do it product by product.
Every product with zero stock will now be hidden from the catalog automatically. When stock is updated, the product reappears.
Best for: Stores with frequently changing stock levels that want a cleaner catalog without manual work.

For B2B stores, wholesale setups, or membership sites, the built-in visibility options are not enough. You may need certain products visible only to specific customer types.
The Products Visibility by User Roles plugin (available on the WooCommerce Marketplace) handles this. After installing:
A common setup: hide a group of products from the general public, then open them back up for a specific role like Retailer or Wholesaler.
Best for: B2B stores, tiered customer setups, or members-only product access.
If you have many products that all need the same visibility rules, managing them one at a time is not practical. A smarter approach is to group them into a category and hide the whole category at once.
Using a plugin like WooCommerce Protected Categories:
This is significantly more efficient when you have 20, 50, or 100 products that share the same access rules.
Best for: Wholesale catalogs, seasonal collections, or any group of products with shared access rules.
The built-in options work well for a handful of products. But they have limits that become real problems as your catalog grows:
For small stores with a handful of items, these gaps are manageable. For stores with hundreds of products, they create ongoing operational headaches.
Here is where it gets genuinely difficult. Say you have 60 wholesale items, 20 seasonal products, and a handful of test listings. Each group has different visibility rules. Reviewing and updating them inside WooCommerce one product at a time is not practical.
Many store owners end up tracking product status outside WooCommerce entirely, often in a spreadsheet, just to keep a clear view of what is live and what is not.
That is where a tool like FlexStock can quietly support the process. It syncs your WooCommerce product catalog, including status and metadata, with Google Sheets. You can filter products by visibility status, review what is live across your full catalog, and push updates back to WooCommerce without opening individual product pages.
Sync, edit and control WooCommerce stock from Google Sheets
Automate Your Stock Updates$79 /year
Get startedSimplify WooCommerce order management in Google Sheets.
Automate Order Management$69 /year
Get started