Skip to main content

Unlisted product status

Unlisted is a ProductStatus that hides a product from internet search (by adding noindex and nofollow meta tags to the Online store product page), your store's sitemap, and Shopify Catalog. An unlisted product doesn't display in Shopify-powered collection pages, search results including predictive search, or product recommendations in your storefront.

This is useful for scenarios like private sales, warranties, or "free gift with purchase" products that you don't want discovered outside of their intended uses.

Unlisted is available as a new product status value in the latest GraphQL Admin API and Webhooks API. Note: Older versions of Admin API (prior to 2025-10) return product status for unlisted products as active.

Review considerations for setting a product's status as Unlisted.


Anchor to How to query and set unlisted as a product statusHow to query and set unlisted as a product status

  • GraphQL Admin API: You can query and set the unlisted status through the new unlisted enum in ProductStatus.
  • Webhooks API: You can query the unlisted status with the Webhooks API on products/update topics.

Anchor to How unlisted products are hiddenHow unlisted products are hidden

Unlisted products are hidden across the following buyer-facing surfaces:

  • Shopify storefront search, collections, and recommendations
  • Internet Search (for online store product pages):
    • <meta name="robots" content="noindex,nofollow"> headers are added on the online store product details page.
    • Won't be listed in sitemap.xml.
  • Shopify Catalog

Anchor to How unlisted products are discovered across buyer surfacesHow unlisted products are discovered across buyer surfaces

Unlisted products aren’t indexed or linked by default. They’re available only when referenced directly. In cart, checkout, orders, and other post‑purchase surfaces, unlisted products behave like active products.

Note: Shop App is not supported.

  • Metafield of type variant_reference and product_reference (see list of data types).
  • id or handle:
    • Example: query getProduct { product(handle:"unlisted-product-handle"){ title } }

Note: Can't be accessed via the query param on any root.

  • If a buyer can access the product URL, the page will render the product object. Buyers might obtain the URL via a guessable handle, data from the Cart AJAX API, a previously shared link, or an app.
  • Any page with:

Buyers could obtain a link to an unlisted product if linked on the storefront or an external website.


Was this page helpful?