WooCommerce Product Visibility: How to Hide & Show Products

WooCommerce Product Visibility: How to Hide & Show Products [2026]

Whether you’re managing a growing WooCommerce catalog or fine-tuning a niche store, controlling what your customers can and cannot see is one of the most important skills you can master.

WooCommerce Product visibility affects everything — from user experience and conversion rates to SEO and sales channel performance.

This guide covers every method available to show or hide products in WooCommerce, from the simplest dashboard toggle to advanced developer solutions. By the end, you’ll know exactly which approach to use for every situation.

What Is Product Visibility in WooCommerce?

Product visibility in WooCommerce determines where and to whom a product is displayed — across your shop pages, search results, category listings, and even external sales channels like Google Shopping or Facebook.

WooCommerce gives every product its own set of visibility controls. These controls live inside the product editor and can be configured per product, per category, or globally — giving you a flexible system for managing even complex catalogs.

Understanding these visibility controls is essential if you want to build a store that feels curated, professional, and intentional rather than cluttered with irrelevant or unavailable products.

Why Would You Want to Hide Products in WooCommerce?

There are more reasons than you might think. Hiding products strategically can actually improve your store’s performance, not just its appearance.

Out-of-Stock Items

Remove temporarily unavailable products without deleting them. Restore them instantly when stock returns — no rebuilding required.

Seasonal Products

Halloween costumes and Christmas decorations don’t need to live in your store year-round. Hide them off-season to keep your catalog clean.

Shipping Restrictions

Some products can’t be shipped internationally. Hiding them from customers outside your shipping zones prevents confusion and abandoned carts.

Exclusive Products

Products made for specific clients or retail partners should stay private. Control access so exclusivity isn’t accidentally broken.

Pre-Launch Listings

Keep a product hidden while you finalize its description, images, and pricing. Go live only when everything is perfect.

Testing & QA

Test new features, layouts, or pricing models on hidden products before exposing them to real customers.

Members-Only Products

Offer exclusive deals or products only to registered customers. This motivates more shoppers to create an account.

Wholesale Catalogs

Show different product sets to wholesale buyers vs. retail customers. Manage B2B and B2C audiences from one store.

The 4 Core Visibility Types in WooCommerce

Before diving into methods, it’s important to understand the four native visibility states WooCommerce assigns to products. Each serves a different purpose.

Shop + Search Results (Public)

Fully visible everywhere — shop pages, category listings, and search results. The default for any published product.

Shop Only (Catalog)

Visible on shop and category pages, but hidden from on-site search. Useful for browsable-only products.

Search Results Only (Search)

Only appears when a customer actively searches. Hidden from category and shop pages.

Completely Hidden

Invisible everywhere on the front end. Only accessible via a direct URL. Ideal for private or exclusive products.

💡Pro Tip: The “Hidden” catalog visibility option still allows the product to be accessed by anyone who has its direct link. For truly private products, combine Hidden visibility with the Private post status.

How Do You Change Product Visibility In WooCommerce?

WooCommerce offers many simple ways to change the visibility of your e-commerce products.

Method 1: Change Product Status to Draft

The quickest way to temporarily remove a product from your store. Draft products are completely invisible to all visitors — they can’t be found via search, browsing, or direct URL. Only administrators can access them from the backend.

Best for: Products being updated, incomplete listings, or items you need to temporarily pull from sale.

How to Change Product Status to Draft in WooCommerce?

  • Go to your WordPress Admin Dashboard → Products → All Products
  • Find the product you want to hide and click its name or the Edit link
  • In the Publish panel on the top right, find the Status field (currently showing “Published”)
  • Click the Edit link next to the status and select Draft from the dropdown menu
  • Click OK to confirm, then click the Update button to save your changes
How to Change Product Status to Draft in WooCommerce?

⚠️ Important Note: Unlike the “Hidden” catalog visibility, a Draft product cannot be accessed by direct URL either. If you share a product link with a client, make sure the product is Published first — even if its visibility is set to Hidden or Private.

Method 2: Modify Catalog Visibility

Catalog visibility gives you finer control than simply toggling Draft/Published. You can show a product in shop pages but not search, or in search but not the shop — giving you granular control over product discoverability.

Best for: Managing how products are discovered within your store without completely hiding them.

How to Modify Catalog Visibility in WooCommerce?

  • Navigate to Products → All Products and open the product you want to adjust
  • In the Publish panel, locate the Catalog visibility field
  • Click the Edit link next to Catalog visibility
  • Choose your preferred option: Shop and search resultsShop onlySearch results only, or Hidden
  • Click OK, then Update to save
How to Modify Catalog Visibility in WooCommerce?

You can also bulk-update catalog visibility for multiple products. From the All Products list, select multiple products, choose Edit from the Bulk Actions dropdown, and update the visibility field for all selected items at once.

How to Modify bulk Catalog Visibility in WooCommerce?

Method 3: Private & Password-Protected Products

These two options give you access control over who can see a product page. Private products are only visible to admin-level users. Password-protected products require anyone viewing the page to enter a password first.

Best for: Client-specific products, VIP offers, wholesale pricing pages, and exclusive previews.

How to Set a Product as Private in WooCommerce?

  • Open the product editor and find the Publish panel on the right
  • Click Edit next to the Visibility field (which shows “Public” by default)
  • Select Private from the options
  • Click OK, then Update

How to Password Protect a Product in WooCommerce?

  • Follow the same steps above, but select Password Protected instead of Private
  • Enter a strong password in the field that appears below the visibility options
  • Click OK, then Update to save the product with its new password
  • Share the product URL and the password directly with the intended audience

Who Can See Private Products?
Private products are visible to WordPress users with Administrator or Editor roles. Regular subscribers and customers cannot see them, even if they have the direct link. This makes Private the best option for internal previews and admin-only catalog management.

Method 4: Hide Out-of-Stock Products Automatically

WooCommerce includes a global setting that automatically hides any product marked as out of stock from your catalog. This is a set-it-and-forget-it solution that keeps your store looking fully stocked at all times.

Best for: Stores with frequent inventory changes that don’t want to manage visibility for each item manually.

How to Hide Out-of-Stock Products in WooCommerce?

  • In your WordPress dashboard, go to WooCommerce → Settings
  • Click the Products tab at the top
  • Click the Inventory sub-tab
  • Scroll down to find the Out of stock visibility section
  • Check the box next to “Hide out of stock items from the catalog”
  • Click Save changes at the bottom of the page

Once enabled, this setting applies to all products across the site. Any product with a stock status of “Out of stock” will automatically be hidden from the catalog and search results, but its page will still be accessible via direct URL.

Method 5: Role-Based Visibility Using Plugins

Native WooCommerce doesn’t support role-based product visibility out of the box. To show products only to specific user groups — such as logged-in customers, wholesale buyers, or members — you’ll need a plugin.

Best for: B2B/wholesale stores, membership sites, multi-tier pricing catalogs.

Recommended Plugins

Here are the most reliable options currently available:

  • YITH WooCommerce Catalog Mode — Hides prices and add-to-cart buttons, or restricts entire catalog visibility by user role. Popular and well-supported.
  • WooCommerce Private Store (Barn2) — Locks your entire store or specific products behind a login or user role requirement. One of the cleanest implementations available.
  • Hide Products for WooCommerce — A lightweight plugin focused specifically on per-product or per-category visibility restrictions based on login status or user role.
  • WooCommerce Password-Protected Categories (Barn2) — Protect full product categories behind passwords or user roles — useful for wholesale catalogs or membership tiers.
  • WooCommerce Wholesale Suite — A comprehensive solution for B2B stores that need different product catalogs, pricing, and visibility for wholesale vs. retail customers.

💡Choosing the Right Plugin
If you only need to hide one or two products from guests, a lightweight free plugin is sufficient. If you’re running a full wholesale or membership operation, invest in a premium solution like Wholesale Suite or Barn2’s Private Store — they’re built for scale.

Method 6: Hide Products Programmatically (Developer Method)

For developers who need precise, conditional control over product visibility, WooCommerce’s hook system is the most powerful option. You can filter the product query to show or hide specific products based on any condition — user login status, user role, date, cart contents, and more.

Best for: Complex business logic, custom membership systems, bespoke hiding rules.

Example 1: Hide a Specific Product from Guest Users

Add this snippet to your theme’s functions.php file or a custom plugin. Replace 123 with your actual product ID.

/**
 * Hide a specific product from non-logged-in users
 */
add_action( 'woocommerce_product_query', 'hide_product_from_guests' );

function hide_product_from_guests( $q ) {
    if ( ! is_user_logged_in() ) {
        $q->set( 'post__not_in', array( 123 ) );
    }
}

Example 2: Hide a Whole Category from Non-Admins

/**
 * Hide products from 'wholesale' category unless user is admin
 */
add_action( 'woocommerce_product_query', 'hide_wholesale_from_non_admins' );

function hide_wholesale_from_non_admins( $q ) {
    if ( ! current_user_can( 'manage_options' ) ) {
        $tax_query = ( array ) $q->get( 'tax_query' );
        $tax_query[] = array(
            'taxonomy' => 'product_cat',
            'field'    => 'slug',
            'terms'   => array( 'wholesale' ),
            'operator' => 'NOT IN',
        );
        $q->set( 'tax_query', $tax_query );
    }
}

Example 3: Hide Products Below a Minimum Price

/**
 * Hide products priced below $10 from the catalog
 */
add_action( 'woocommerce_product_query', 'hide_low_price_products' );

function hide_low_price_products( $q ) {
    $meta_query = ( array ) $q->get( 'meta_query' );
    $meta_query[] = array(
        'key'     => '_price',
        'value'   => 10,
        'compare' => '>=',
        'type'    => 'NUMERIC',
    );
    $q->set( 'meta_query', $meta_query );
}

⚠️Always Test on a Staging Site First
Code-based visibility changes affect your entire product query. Always test on a staging environment before deploying to production. A mistake here can unintentionally hide all your products from customers.

Method 7: WooCommerce Product Visibility On Sales Channels with Product Feed Plugin

If you advertise on external channels like Google Shopping, Meta Ads, or Bing, your WooCommerce visibility settings alone won’t control what appears there. You need to manage visibility at the product feed level — using feed filters to include or exclude specific products from each channel independently.

Best for: Multi-channel retailers who need different product sets on different advertising platforms.

What Is a Product Feed?

product feed is a structured data file — typically in XML, CSV, TSV, or JSON format — that contains a complete, organized list of your WooCommerce products along with all their relevant attributes.

Each product entry in the feed typically includes:

  • Product title — the name of the product as it will appear on the channel
  • Description — a detailed explanation of what the product is
  • Price & sale price — current pricing including any active promotions
  • Product images — primary and additional image URLs
  • Availability / stock status — whether the product is in stock or out of stock
  • SKU / product ID — unique identifiers that help platforms track your listings
  • Category & brand — product classification used by channels for matching and targeting
  • GTIN / MPN — global trade identifiers required by platforms like Google Shopping
  • Shipping & tax info — delivery cost and tax classification where required

When you submit this feed to an advertising platform like Google ShoppingFacebook/Meta AdsTikTok Shop, or Bing Shopping, that platform reads the file and uses the data to display your products to shoppers browsing their marketplace. Every time a shopper searches for something on Google, the product feed is what powers the shopping results they see.

Your WooCommerce Store → CTX Feed Plugin → Google · Meta · Bing · TikTok → Shoppers See Your Products

Product feed plugins let you control which products get included in each feed — effectively giving you a separate visibility layer for every external sales channel. You can show completely different product sets on Google Shopping vs. Facebook Ads, all from one WooCommerce store.


Why This Matters for Visibility

Your WooCommerce visibility settings only control what customers see on your website. They have zero effect on what appears in Google Shopping or Meta Ads. A product you’ve hidden on your store can still appear in your product feed — and vice versa. Product feed filters are the only way to control external channel visibility.

Generate Your Product Feed with CTX Feed Plugin

CTX Feed is one of the most popular free WooCommerce product feed plugins available. It lets you generate optimized product feeds for Google Shopping, Facebook Catalog, TikTok, Bing, and 130+ other channels — directly from your WordPress dashboard, with no coding required.

What Key Features of the CTX Feed Plugin?

220+ Pre-Built Channel Templates: Ready-made feed templates for Google Shopping, Facebook Catalog, TikTok, Bing, Pinterest, Idealo, PriceRunner, Kelkoo, and 220+ more — no manual field mapping needed.

Advanced Product Filters: Include or exclude products based on category, price, stock status, tag, SKU, custom attributes, or any product field — giving you precise visibility control per channel.

Automatic Feed Updates: Schedule your feeds to auto-refresh at custom intervals — hourly, daily, or weekly — so your channel listings always reflect your latest prices, stock, and product data.

Multiple Feed Formats: Generate feeds in XML, CSV, TSV, TXT, and JSON formats. Different channels require different formats — CTX Feed handles them all from one plugin.

Custom Attribute Mapping: Map WooCommerce product fields, custom fields, and ACF meta data to any channel’s required attributes. Full control over how your product data gets structured in the feed.

Variable Product Support: Handles simple, variable, grouped, and bundle products. Each product variation can be included in feeds with its own price, image, and attribute data.

Batch Processing for Large Stores: Uses batch processing to generate feeds for large catalogs without timing out — even stores with 50,000+ products can generate feeds without performance issues.

Multi-Language & Multi-Currency: Compatible with WPML, Polylang, and WooCommerce Currency Switcher — generate localized feeds for different regions and currencies from a single store.

How to Generate a Product Feed with CTX Feed? (Step by Step)

Follow these steps to create your first WooCommerce product feed and control which products are visible on your chosen sales channel.

  • Install CTX Feed — Go to WordPress Dashboard → Plugins → Add New, search for “CTX Feed”, install, and activate the plugin.
  • Open the Feed Creator — In your dashboard, navigate to CTX Feed → Make Feed to open the feed creation screen.
  • Choose Your Channel Template — From the Template dropdown, select your target platform (e.g., Google Shopping, Facebook Catalog, TikTok). CTX Feed will auto-populate all required fields for that channel.

Set Feed File Details — Enter a feed title, choose your preferred file format (XML, CSV, TSV, or JSON), and set the feed update interval (how often it auto-refreshes).

Configure Attribute Mapping — Review the auto-mapped product attributes and adjust any field mappings if needed. Make sure fields like title, description, price, image, and availability are correctly mapped to your WooCommerce data.

Add Product Filters — Click on the Filter tab. Add if-then rules to control which products are included or excluded from the feed. For example: “If stock status = Out of stock → Exclude” or “If category = Wholesale → Exclude.”

Generate the Feed — Click Update and Generate Feed. CTX Feed will process your entire product catalog and create the feed file according to your settings.

Copy the Feed URL — Once generated, CTX Feed provides a direct feed URL. Copy this URL — you’ll submit it to your chosen advertising platform.

Submit to Your Channel — Go to your advertising platform (e.g., Google Merchant Center, Meta Commerce Manager) and submit the feed URL. The platform will fetch and validate your products automatically.

Filter Logic Note
When combining multiple filters, they work as AND conditions — every condition must be true. If you use both “Include only” and “Exclude” filters, always place the “Include only” filter first to avoid unexpected results.

Feed Filter Examples for Controlling Visibility

Here are the most common visibility scenarios and the exact filter rules to use in CTX Feed:

Visibility GoalCTX Feed Filter RuleAction
Hide out-of-stock productsIf Availability equals Out of stockExclude from feed
Show only sale/discounted itemsIf Sale Price is not emptyInclude only
Hide low-priced productsIf Price is less than 10Exclude from feed
Advertise one category onlyIf Category equals SwimwearInclude only
Hide a specific brandIf Brand equals BrandNameExclude from feed
Show only high-margin itemsIf Price is greater than 50Include only
Hide products without imagesIf Image URL is emptyExclude from feed
Show only featured productsIf Featured equals YesInclude only

Best Practices for Managing Product Visibility

Managing visibility well is part of running a polished, professional WooCommerce store. Here are the practices that make the biggest difference:

Always Test as a Guest

After any visibility change, log out and browse your store to confirm the product is no longer visible from a customer’s perspective.

Use Tags to Track Hidden Products

Tag hidden products with “hidden” or “draft” so you can easily find and review them in bulk from the All Products screen.

Audit Regularly

Set a monthly reminder to review hidden products. It’s easy to forget about seasonal items or pre-launch products that should have gone live.

Stage Before Going Live

For code-based or plugin-based changes, always test on a staging environment first. Visibility bugs can silently remove all your products from your store.

Keep URLs Consistent

If you share product links externally (emails, ads), changing visibility to Draft will break access even via direct URL. Use “Hidden” catalog visibility instead to preserve links.

Combine Methods Strategically

For maximum control, layer your approaches — e.g., use Hidden catalog visibility + a role-based plugin to create a product that only logged-in wholesale users can find and access.

Quick Reference: Which Method Should You Use?

  • Draft status — Temporarily pull a product while you update it. No customer access at all, including direct links.
  • Catalog Visibility: Hidden — Hide from shop and search but keep the direct URL working. Great for sharing with specific clients.
  • Private visibility — Admin-only access. Use for internal products or previews not meant for any customer.
  • Password-protected — Share a product with a select audience using a password. Easy, no plugin required.
  • Out-of-stock global setting — Automatically clean up your catalog when items run out of stock.
  • Role-based plugins — Show different product sets to different customer tiers. Essential for wholesale and membership stores.
  • Custom code — Maximum flexibility for complex business logic. Requires development knowledge.
  • Product feed filters — Control exactly which products appear on Google Shopping, Facebook Ads, and other external channels.

Frequently Asked Questions

Can I hide products from specific customers in WooCommerce?

Yes, but not with native WooCommerce settings alone. You’ll need a role-based visibility plugin such as YITH WooCommerce Catalog Mode or WooCommerce Wholesale Suite. These plugins allow you to show or hide products based on a user’s assigned role in WordPress — for example, displaying wholesale products only to users assigned the “Wholesale Customer” role.

Does hiding a product affect its SEO?

It depends on the method used:

Draft status — The product page returns a 404 or is inaccessible, which can hurt SEO if the page was previously indexed.
Hidden catalog visibility — The product page still exists and can be crawled by search engines. It just won’t appear in your shop navigation.
Private visibility — Search engines cannot index private posts in WordPress, so the page will be deindexed over time.

If SEO is important for a product, use “Hidden” catalog visibility instead of Draft or Private to preserve the page’s indexability.

Why are my new products not showing up in my WooCommerce store?

There are several common reasons for this:

The product status is still set to Draft or Pending Review instead of Published
The catalog visibility is set to Hidden
The product is marked as Out of Stock and you have the “Hide out of stock items” setting enabled
caching plugin is serving an old version of your shop page — clear your cache
The product hasn’t been assigned to a category and your shop page filters by category
theme or plugin conflict is filtering your product query — try switching to a default theme to test

How do I hide an entire product category in WooCommerce?

Native WooCommerce doesn’t include category-level visibility controls, but you have a couple of options. You can use a plugin like WooCommerce Password Protected Categories by Barn2 to password-protect or restrict entire categories. Alternatively, you can use a PHP snippet with the woocommerce_product_query hook to exclude all products from a specific category from the query, effectively hiding the entire category from view.

Can hidden products still be purchased in WooCommerce?

Yes — if a product is set to “Hidden” catalog visibility (not Draft), it can still be purchased by anyone who has its direct URL. The product page, add-to-cart button, and checkout process all function normally. The only difference is that the product won’t appear in your shop navigation, search results, or category listings. This is actually a useful feature for exclusive or private sales.

How do I hide WooCommerce products from non-logged-in users?

Use a plugin like WooCommerce Private Store (Barn2) or add a custom PHP snippet to your functions.php that checks is_user_logged_in() and modifies the product query accordingly. This redirects guest visitors away from product pages and removes products from catalog queries when the user is not authenticated.

Conclusion

Managing WooCommerce product visibility is not one-size-fits-all. The right method depends entirely on your use case — whether you’re temporarily pulling a product, building a private B2B catalog, protecting exclusive items, or optimizing what gets advertised on external channels.

To recap the seven methods covered in this guide: Draft status for complete temporary removal, Catalog visibility for controlling discoverability within your store, Private and password-protected visibility for access-controlled products, the Out-of-stock global setting for automated catalog hygiene, role-based plugins for multi-tier customer catalogs, custom PHP code for complex conditional logic, and product feed filters for managing which products appear on Google Shopping, Facebook, and other external channels.

Start with the native WooCommerce tools for simpler needs, and layer in plugins or custom code as your store grows in complexity. A well-managed catalog isn’t just cleaner — it converts better, ranks better, and makes your customers’ experience meaningfully better.

Leave a Reply

8,006,749+ Downloads. 708+ plus 5-star ratings. Promote products on any platform you want.