A Shopify merchant wants to create products and collections that are completely hidden from the website but accessible via direct link only, specifically for a timed promotion. The main challenge is preventing these products from appearing in automatic “View All” collections.
Proposed Solutions:
Hidden collections: Create collections not linked in navigation menus and share only the direct URL. However, this doesn’t prevent products from appearing in automatic collections or search results.
Product exclusion via naming: Add unique keywords (like “Private”) to product titles and configure automatic collections to exclude products containing those keywords.
Theme code modification: Use product tags and alter theme code to prevent tagged products from rendering on collection pages (code snippet provided using Liquid unless statements).
Third-party apps: Several users recommend apps like “Hide Collection - VIP Presales,” “Locksmith,” or “Sami B2B Lock” for more robust hiding functionality.
Gated sales pages: Create full-page pop-ups (via Klaviyo) that only allow newsletter subscribers to view the collection.
Ongoing Issues:
Products remain searchable even when hidden from navigation
Google indexing can eventually expose “hidden” collection URLs
Native Shopify lacks built-in functionality for truly private products
Some users report checkout errors (404) when using preview links
Summarized with AI on November 1.
AI used: claude-sonnet-4-5-20250929.
Each product and the collection needs to be completely hidden on the website and only viewable through a link.
Currently everything I add is automatically put into the top of a ‘View All’ category and I especially want to avoid this, just with these products as it is for a timed promotion.
Yes, I can definitely assist you with this. Here’s how you can make your products and collections viewable by link only in your Shopify store:
Create a hidden collection: Create a new collection in your Shopify admin and give it a unique name. Then, scroll down to the Collection availability section and select “Manually select products.” This will allow you to add the products you want to the collection without them automatically appearing on the website.
Add the products to the hidden collection: Once you’ve created the hidden collection, add the products you want to promote to it. You can do this by going to the Products section of your Shopify admin, selecting the products, and then adding them to the collection you just created.
Hide the collection on your website: To hide the collection on your website, go to the Navigation section of your Shopify admin and remove the collection from any menus or navigation links. This will make it so the collection is not accessible through your website’s main navigation.
Generate a link to the hidden collection: To make the hidden collection accessible only through a link, you’ll need to generate a link to the collection. To do this, go to the Collections section of your Shopify admin, select the hidden collection, and then copy the URL at the top of the page.
Share the link: You can now share the link to the hidden collection with your customers via email, social media, or any other method you choose. When customers click on the link, they’ll be taken directly to the hidden collection.
By following these steps, you can create a hidden collection in your Shopify store and make your products and collections viewable only by link. This can be a great way to promote special offers or time-limited sales without cluttering your website’s main navigation.
This addresses the hidden collection aspect however - I am also wanting to hide specific product listings within it.
I currently have a public ‘view all’ collection that automatically adds anything new that is live. I can’t seem to find a way to exempt certain products from this auto collection - meaning they are not truly hidden…
What I had to do was create a unique name or add a key word to each one of those products you want to hide, for me, i added the word private in front of the title, Then i went to View All Collections Scroll to conditions and add the conditon to not add products with word’Private’ on the title.
Doesn’t this still allow the products to still be searchable? I want to set up a collection that only newsletter subscribers have early access to. With the instructions above, a savvy customer could still search for the products even if there’s no menu navigation.
Hello! I got this to work with a preview link - but when i try and checkout with the item, the link is broken and get 404 error. Any solution? Find it a bit crazy that this isn’t easier
I am currently wanting this to work as well, I’m utilizing the Locksmith app which works as far as the collection only being viewable to subscribed customers however, my products within the collection are still viewable with the “view/shop all” option and I don’t want that. I have an email out to the Locksmith folks but in the meantime wondering if you had any success?
I just came across this post and saw the replies here. From what I understood from the first solution, “All Products” collection are automatic configured to add new products every time they’re created. You can always set it to a manual collection or not expose the collection in the navigation menu of your online shop. With manual, you can can control what product gets included in the collection.
Yes, but you still have to select “online store” in order for the product to show up in the hidden collection, and that product is still viewable on the webstore if you type in the name of the product or if you are looking for that product. Correct? If you don’t select “online store” it is not going to show up in the hidden collection
To truly get this to work, I’ve had to use the “Hide Collection - VIP Presales” app which gives you a secret link.
Either that, or you can create what is called a gated sales page. I do this through Klaviyo by creating a full-page pop-up that appears only on the collection page in question. I set it not to show for anyone already in my newsletter list, and I make sure other pop-ups don’t show on that page. Subscribers will view the page no problem, no full-page pop-up. Non-subscribers will need to sign up to make the pop-up disappear. To set it up:
Make sure the “X” button to close the window is transparent so you can’t see it (you can’t delete it, just set the color to 0% opacity). Make sure the pop-up is set to show on a certain URL, and that it excludes anyone from the list of subscribers you want to allow in. On the success page after submitting, I make a button something like “take me to the sales page” or whatever, that refreshes the page. Now that they’re in your newsletter list, the full-page pop-up won’t appear.
Again, make sure any other pop-ups are excluded from that URL. Nobody wants multiple pop-ups.
Gated sales pages are nice, as you don’t have to worry about whether or not the search engines will catalog and share it. Share away! You’ll get more subscribers
We use a product tag, and we have then altered the theme’s code to prevent products with that tag from ever being loaded onto collection pages. You can then make the collection you want to show them not do this via a different Theme Template for that collection.
It depends on what theme you are using. You need to find where the products are looped through to show them on the page, then do an ‘unless’ to stop it rendering the product if it has a certain tag, or ‘if else’ if you want it do do something different if they are tagged or not.
Example:
{% for product in products limit: for_limit %}
{% comment %} Skip product if tagged 'HIDE' {% endcomment %}
{% unless product.tags contains 'HIDE' %}
[CODE TO SHOW PRODUCT INFO]
{% endunless %}
{% endfor %}
They will likely show in the search, we have used a different tag to stop them showing but don’t use the native search so have no solution for that for you I’m afraid (it was implemented before my time so I have never looked into how it works)
Hi,
This would work for my case.
But the issue here is that the collection link is getting referenced by Google with time, so if people enter the collection name in Google Search, the collection might be accessible by anyone.
How could I avoid this?