Shopify seo.hidden metafield: how to hide a page from search and sitemaps, and when Unlisted is the better switch
What the seo.hidden metafield hides, how to set it up in the admin, how it differs from Unlisted products and a noindex tag, and how to get Google to notice.
Published by AI Knows Us · Updated 21 October 2026
The Shopify seo.hidden metafield hides one product, page or blog post from search engines, from your sitemap and from your own store search, while the page stays published and anyone with the link can still open it. You create a metafield definition with the namespace and key seo.hidden, type Integer, one value, maximum 1, then set it to 1 on the item you want hidden. To show the item again, clear the value and save. For a product you only want reachable by direct link, Shopify recommends the Unlisted product status instead, because it also removes the product from collections and recommendations.
Everything below is taken from Shopify's help centre article on hiding a page from search engines and Google's documentation on noindex, both read on 22 October 2026.
What seo.hidden actually hides
Shopify describes seo.hidden as a system metafield. Set to 1 on a page, blog post or product, it hides that item "from sitemaps, search engines, and your online store search." The item is still live. Its URL loads, your theme renders it, and a customer who has the link sees it normally.
That last point matters. seo.hidden is a search setting, not access control. If a page holds something that must stay private, such as a wholesale price list, hiding it from Google does not stop someone who has the link from sharing it.
Shopify's help article lists three resource types for the metafield: products, pages and blog posts. Collections are not on that list. For a collection or any other template, the theme code method further down is the route Shopify documents.
How to set it up, step by step
You create the definition once, and then it appears as a field on every item of that type.
- In your Shopify admin, go to Settings > Metafields and metaobjects.
- Under Metafield definitions, choose Products, Pages or Blog posts.
- Click Add definition. Give it a name such as SEO Hidden.
- Set Namespace and key to
seo.hidden. A short description such as "Hides this item from search engines when the value is 1" helps the next person on your team. - Select type Integer, then One value. Under Validations, set the maximum value to 1. Save.
- Open the product, page or blog post you want to hide. In its Metafields section, set SEO Hidden to 1 and save.
Repeat the definition step for each resource type you need. A definition made under Products does not appear on pages.
To reverse it, open the item, delete the value so the field is blank, and save. Shopify's instruction is to delete the value and leave the field blank.
"Namespace and key are already taken"
If Shopify shows this message when you type seo.hidden, an app on your store is already writing to that metafield. Shopify notes that third-party apps use it to store their own hide-from-search setting. In that case, go to the view of metafields without a definition and create a definition for the existing metafield, rather than a new one. Before you change anything, find out which app set it, because that app may change the value again on its next sync.
seo.hidden or Unlisted: which one for a product
For products there is a second switch, the Unlisted status, and the two do different jobs. This is Shopify's own comparison, simplified.
| Where the product shows | Unlisted status | seo.hidden set to 1 |
|---|---|---|
| Internet search | Hidden | Hidden |
| Sitemap | Hidden | Hidden |
| Storefront search | Hidden | Hidden |
| Shopify Catalog | Hidden | Hidden |
| Product page by direct URL | Shown | Shown |
| Storefront collections | Hidden | Shown |
| Product recommendations | Hidden | Shown |
| Third-party sales channels | Hidden | Shown |
So the choice is simple. If the product should be reachable only by a link you hand out, such as a custom order or a private sample, use Unlisted. If the product should still sell through collections, recommendations and other channels, and you only want it out of Google and your sitemap, use seo.hidden. If both are set, Shopify gives Unlisted priority.
The other method: a noindex tag in theme code
Shopify documents a second way to hide a page, and it suits a template rather than a single item. You add a robots meta tag inside the <head> of layout/theme.liquid, using Online Store, then the theme's actions menu, then Edit code.
To keep your internal search result pages out of Google, Shopify gives this snippet:
{% if template contains 'search' %}
<meta name="robots" content="noindex">
{% endif %}
To hide one item by its handle:
{% if handle contains 'page-handle-you-want-to-exclude' %}
<meta name="robots" content="noindex">
{% endif %}
There is a real difference between this and the metafield. Shopify says a page hidden with the meta tag is still visible to your storefront search. The metafield removes it from both. Also note that contains matches part of a handle, so a handle like sale would also catch summer-sale and sale-archive. Pick a handle that is unique, or test the condition on every page it could touch.
Theme code changes travel with the theme. If you publish a new theme, copy the snippet across, or the pages you hid come back into the index.
Do not block the page in robots.txt as well
It is tempting to add a Disallow rule for the same URL "to be safe". Google's documentation says this does the opposite. For noindex to work, "the page or resource must not be blocked by a robots.txt file." If robots.txt blocks the URL, Google never sees the noindex rule, and the page "can still appear in search results, for example if other pages link to it."
Shopify's own guidance is also to leave robots.txt.liquid alone unless you have a specific reason. It calls editing that file an unsupported customisation that Shopify Support cannot help with. For hiding individual pages, the metafield or the meta tag is the right tool.
When a hidden page will drop out of Google
Hiding a page does not remove it from Google at that moment. Google has to crawl the page again to see the change. Google's documentation says it "may take months for Googlebot to revisit a page," depending on how important the page is, and suggests asking for a recrawl with the URL Inspection tool in Search Console. Shopify points to the same two options: URL Inspection, or submitting your sitemap.
A sensible routine after you hide something:
- Open
yourstore.com/sitemap.xmland the child sitemap for that type, and confirm the URL is gone. - Search your own store for the item, and confirm it no longer appears in results.
- Run a live test in URL Inspection on the URL, read what it reports about indexing, and request indexing so Google recrawls it.
- If the page must leave Google quickly, use the Removals tool in Search Console, which Google lists for urgent cases.
Pages that are good candidates for seo.hidden
- Landing pages built for one ad campaign or email, where the same offer already has an indexable page.
- Thank you, confirmation and download pages that make no sense out of context.
- Blog posts that duplicate another post closely, while you decide whether to merge them.
- Pages for a trade show, partner programme or test that should not compete with your main pages.
- Products sold through other channels or bundles, where you do not want the single item ranking.
Pages that should not be hidden: your collections, which our guide to Shopify SEO treats as the pages that earn the most from search, your best-selling products and any page you want people to find from search. A common mistake is hiding a draft-like page during a redesign and forgetting the value is still 1 when the page goes live. Keep a short list of everything you have hidden and review it each quarter.
Questions about the Shopify seo.hidden metafield
Does seo.hidden make a page private?
No. The page stays published and opens for anyone with the URL. It only takes the page out of search engines, your sitemap and your store search.
Can I use seo.hidden on a collection?
Shopify's help article lists products, pages and blog posts for this metafield. For a collection, use the noindex meta tag method in theme.liquid with a condition that matches only that collection.
How do I unhide a page?
Open the item, clear the SEO Hidden value so the field is blank, and save. Then request indexing in URL Inspection so Google sees the change sooner.
Why can I not create the seo.hidden definition?
An app is already using that namespace and key. Create a definition for the existing metafield instead, and check which app wrote it before you edit values.
Is seo.hidden the same as adding noindex?
Both keep a page out of search engines. The metafield also removes the item from your sitemap and storefront search. The theme code noindex keeps it in storefront search.
What an assistant does with a page you hid
Search engines and the assistants that read them now overlap. A product you hid from Google can still be described by ChatGPT or Perplexity if another site wrote about it, and a page you wanted found may be passed over in favour of a marketplace listing. Hiding is about what Google indexes. Which of your pages an assistant chooses to quote when a shopper asks about your store is a separate question, and it is the one AI Knows Us is built to answer.