How noindex Works on Shopify
On Shopify, a noindex directive tells search engines not to include a page in their index. It is delivered as a meta robots tag in the HTML <head>: <meta name="robots" content="noindex">. Shopify does not expose a simple toggle in the admin UI for most page types, so merchants either edit Liquid theme files, use canonical tag logic, or install third-party apps to control which pages receive this tag.
Shopify does apply noindex automatically in certain situations. Checkout pages, thank-you pages, cart pages, and the /account section all receive noindex by default โ the platform hard-codes this in its generated HTML and merchants cannot remove it. Outside those protected routes, noindex is entirely the merchant's responsibility to configure correctly.
Pages Shopify Noindexes Automatically โ and Why You Cannot Override Them
Shopify's checkout is hosted on a subdomain (checkout.shopify.com or a custom checkout domain) and is outside the merchant's theme control entirely. Cart pages (/cart), account login and registration pages (/account/login, /account/register), and order status pages are all served with noindex by the platform. This protects sensitive transactional URLs from appearing in search results and avoids duplicate-content signals from session-specific URLs.
Merchants frequently discover this when crawling their store with a tool like Screaming Frog or Ahrefs and seeing large volumes of noindexed URLs they did not configure. These are expected and correct. Attempting to override them via theme edits has no effect because the meta robots tag is injected at the infrastructure level, not through Liquid templates.
Adding noindex to Shopify Pages Through Theme Code
For page types the merchant controls โ collection pages, product pages, blog posts, standard pages โ noindex is added by editing the theme's Liquid files. The canonical location is the <head> section of theme.liquid or a dedicated SEO snippet file. A conditional block checks the page template or a URL parameter and outputs the meta robots tag accordingly.
A common pattern uses Liquid's template object: {% if template == 'search' %}<meta name="robots" content="noindex, follow">{% endif %}. This noindexes the native Shopify search results page (/search), which is a best practice since it generates near-infinite faceted URLs. The same conditional logic applies to filtered collection URLs that use ?sort_by= or ?filter. parameters, which Shopify generates automatically for collection pages using its native filtering system.
Shopify's URL parameter filtering (introduced with Online Store 2.0) creates crawlable faceted URLs by default. Without noindex or canonical tag management on those filtered URLs, search engines can crawl and index thousands of thin, duplicate collection variants. Suppressing them with noindex โ or using canonical tags pointing to the root collection โ is a required step for any store with more than a handful of products and filters.
Apps for Managing noindex at Scale
When a store has hundreds or thousands of pages, managing noindex through direct theme edits becomes impractical. Several apps in the Shopify App Store provide UI-based controls for meta robots tags. These apps inject the noindex tag either through a ScriptTag API call or by modifying theme files during installation. Merchants should verify which method an app uses, because ScriptTag-based injection loads JavaScript after initial HTML rendering โ search engine crawlers that read the raw HTML before JavaScript executes may miss the tag entirely.
Theme-modification-based apps are more reliable for SEO because the tag appears in the static HTML. Before installing any SEO app, audit what it writes to your theme files and test a noindexed page by fetching its HTML source directly (not via a browser rendering engine) to confirm the tag is present in the raw markup.
For enterprise Shopify Plus merchants, the Storefront API and headless commerce setups introduce additional complexity. When rendering pages outside Shopify's native Liquid layer, the merchant's front-end code is fully responsible for outputting meta robots tags. There is no automatic noindex inheritance from Shopify's platform in a headless context.
Common noindex Mistakes Specific to Shopify Stores
The most frequent error is noindexing a page and leaving it in the Shopify sitemap. Shopify auto-generates a sitemap.xml that includes product pages, collection pages, blog posts, and standard pages. If a page is noindexed but still listed in the sitemap, Google receives a contradictory signal โ the sitemap says crawl and consider indexing, the meta tag says do not index. Google's crawlers follow the meta robots tag over the sitemap, but the conflicting signal wastes crawl budget and can delay the noindex from taking effect.
Shopify does not provide native controls to exclude individual URLs from its generated sitemap. To remove a noindexed page from the sitemap, a merchant must either delete the page, use a custom sitemap app that rebuilds sitemap.xml with URL-level exclusions, or set the page to password-protected status. This is a meaningful platform limitation compared with CMS platforms that allow sitemap exclusion via a checkbox.
A second common mistake is accidentally noindexing the homepage. This happens when a noindex conditional is written too broadly in theme.liquid โ for example, targeting the index template without accounting for collection indexes. Testing every template type after any theme edit is non-negotiable.
Actionable Checklist for Shopify noindex Implementation
First, audit existing noindex coverage by crawling the store with a dedicated SEO crawler set to respect robots tags but also report noindexed pages. Confirm that checkout, cart, and account pages show noindex, then identify any product or collection pages carrying unintended noindex tags โ both are common after theme migrations or app installations.
Second, add noindex to the Shopify search results page (/search) and all faceted collection URLs generated by native filtering. Third, cross-reference noindexed URLs against the auto-generated sitemap.xml and use a sitemap management app to remove the overlap. Fourth, if using a headless or custom storefront, verify that meta robots tags are output in server-rendered HTML, not injected by client-side JavaScript. Run Google Search Console's URL Inspection tool on a sample of noindexed pages to confirm Google reads the tag correctly.