5 Shopify Sitemap Problems That Stop Google From Indexing Your Products
Shopify generates your sitemap automatically at /sitemap.xml — you cannot edit the file directly and you cannot stop it from being generated. What you can control is the underlying content structure, canonical configuration, and which pages exist in your store. That limited control is precisely what makes Shopify sitemap problems so frustrating: the issues are structural, not simply misconfigured settings.
These five problems appear consistently across Shopify stores of all sizes. Each one has a specific root cause and a specific fix.
How to check your sitemap: Visit yourdomain.com/sitemap.xml to see your sitemap index, then open each child sitemap (products, collections, pages, blogs) to inspect the URLs being submitted to Google.
Problem 1: Duplicate Product URLs — /products/ vs /collections/*/products/
Shopify creates two accessible URLs for every product in a collection. The canonical URL is /products/blue-widget. But when a customer reaches that product via a collection, Shopify also generates a collection-scoped URL: /collections/widgets/products/blue-widget. Both URLs serve the same content, and both are accessible — which means Google can discover and crawl both.
What this looks like in GSC: The Coverage report shows some product pages as "Duplicate, Google chose different canonical than user" — Google found both versions, decided on its own preferred canonical (sometimes the /collections/ URL), and ignored your intended canonical. You may also see "Crawled — currently not indexed" for some /collections/*/products/ URLs if Google is uncertain which version to index.
Why it happens: Shopify's sitemap correctly includes only the /products/ URLs. But Shopify themes often link to products using collection-scoped URLs in breadcrumbs, "you might also like" carousels, and collection page product grids. If those links use the /collections/*/products/ format, Googlebot follows them and discovers the duplicate.
Fix: Shopify automatically adds a rel=canonical pointing to the /products/ URL on both versions — so the canonical signal is correct by default. The issue arises when internal links are inconsistent. Audit your theme: search your Liquid templates for product.url vs product.url | within: collection. The within: collection filter generates collection-scoped URLs. Remove it from internal links where it is not functionally necessary (breadcrumbs are typically the only place it is warranted).
Problem 2: Out-of-Stock Products in Sitemap with Noindex or Hidden Status
Shopify's sitemap includes all published products — including products that are out of stock, unavailable, or set to "continue selling." The conflict occurs when a store owner or a third-party inventory app applies a noindex tag, sets the product to draft, or hides it from a sales channel when stock hits zero, but the URL remains in the sitemap.
What this looks like in GSC: Out-of-stock products show up under "Excluded — noindex tag" in GSC's Coverage report, but they are still listed in your sitemap. Google flags these as sitemap errors. More damaging: if you are using an app that temporarily redirects out-of-stock products to a collection page (a common inventory management pattern), those products return 301s from the sitemap — which GSC reports as "Redirect error."
Why it happens: Shopify's sitemap generation does not filter based on noindex status or availability. The sitemap is generated from product publication status, not from the product's indexability or stock state. Apps that manage out-of-stock behavior (like inventory redirects or conditional noindex tags) operate independently of sitemap generation.
Fix: Decide on a single strategy for out-of-stock products and apply it consistently. Option A: keep out-of-stock products published, indexable, and in the sitemap — add "notify me when back in stock" functionality and update the page copy to reflect availability. Option B: set products to draft when permanently discontinued — this removes them from the sitemap automatically. Option C: if using a third-party app for conditional noindex, ensure the sitemap is also filtered to exclude those products (most apps have a setting for this; if yours does not, contact the app developer). Never apply a noindex to a page that is still listed in your sitemap.
Problem 3: Paginated Collection Pages in the Sitemap
Shopify generates paginated URLs for collections with more products than fit on one page: /collections/widgets?page=2, /collections/widgets?page=3, etc. These URLs should not be in your sitemap. They are thin content (just a filtered view of your collection), they are not linkable targets you want to rank, and they create duplicate content issues if Google indexes them.
What this looks like in GSC: Paginated collection pages appear under "Crawled — currently not indexed" or "Duplicate without user-selected canonical." If a third-party SEO app has submitted these URLs via a custom sitemap, they show up as submitted but never indexed.
Why it happens: Shopify's default sitemap correctly excludes paginated collection URLs — the ?page= parameter is not included. The problem arises when merchants install SEO apps that generate supplementary sitemaps and include pagination URLs in them, or when custom sitemap implementations are added without correctly filtering out parameterized URLs.
Fix: Audit all sitemaps associated with your domain — not just /sitemap.xml. Some SEO apps register additional sitemaps in robots.txt. Check for any URL containing ?page= across all submitted sitemaps and remove them. Also ensure that paginated collection pages have a canonical pointing to the first page of the collection (or a self-referential canonical on page 1) — this is not added automatically by Shopify and requires theme-level implementation or an SEO app configuration.
Problem 4: Shopify Markets Creating Duplicate Hreflang Without Proper Canonicals
Shopify Markets creates separate storefronts for different regions or languages, often using subfolders (/en-gb/products/blue-widget) or subdomains (en-gb.yourstore.com/products/blue-widget). When Shopify Markets is enabled, each market gets its own sitemap, and hreflang attributes are supposed to link the localized versions together.
The problem: Shopify Markets' automatic hreflang implementation is incomplete in several common configurations. If you have a market that uses the same language as your default store (e.g., an "English — UK" market and an "English — US" default), the hreflang tags may be missing or malformed. Google treats these as separate pages with near-duplicate content and no relationship signal between them, resulting in neither version ranking well for its target region.
What this looks like in GSC: You see product pages from your non-default markets in the Coverage report as "Duplicate, Google chose different canonical than user." GSC's International Targeting report shows hreflang errors. You may also see impressions split between market-specific and default URLs for the same product, with neither ranking strongly.
Fix: Verify your hreflang implementation using Google's hreflang testing tool or a site crawler set to check hreflang attributes. Every market URL must include a complete set of hreflang tags — including an x-default pointing to your primary storefront. If your Shopify theme does not generate complete hreflang tags automatically for all markets, you need to implement them via theme customization or a dedicated hreflang app. Also confirm that each market's sitemap is submitted to GSC as a separate property (if using subdomains) or as part of the root property (if using subfolders), and that the market-specific sitemaps are referenced in robots.txt.
Problem 5: App-Generated Pages Not Appearing in the Sitemap
Shopify apps frequently create pages that are valuable for SEO — landing pages generated by page builder apps, blog posts added by content apps, lookbook pages from visual merchandising apps, FAQ pages from customer support apps. These pages live at Shopify URLs and are publicly accessible, but Shopify's automatic sitemap does not include them because they are not native Shopify page types.
What this looks like in GSC: Pages you expect to see in the Coverage report simply are not there — they are not submitted, not indexed, and showing zero impressions despite having content you want to rank. When you inspect those URLs in GSC, they are "Discovered — currently not indexed" (Google found them through a link but has not prioritized them for crawling) or they do not appear at all.
Why it happens: Shopify's sitemap is generated from native data models: products, collections, pages (standard Shopify pages), blog posts, and policies. App-created content is stored in the app's own data layer and is not reflected in Shopify's content database in a way that feeds the sitemap generator.
Fix: Check whether the app you are using has a sitemap integration. Many mature Shopify apps (page builders like PageFly and Shogun, for example) have sitemap settings that either append their URLs to Shopify's sitemap via the API or generate a supplementary sitemap. If the app does not have this, you have two options: (1) use GSC's URL Inspection tool to manually request indexing for high-priority pages, and build links to those pages so Googlebot discovers them through crawling; or (2) create a custom supplementary sitemap using Shopify's Storefront API and register it in robots.txt. The supplementary sitemap approach is the more scalable solution for stores with large volumes of app-generated content.
The Shopify Sitemap Audit Process
Shopify's closed sitemap generation means you cannot edit the file, but you can audit it. Monthly, run this sequence:
- Fetch
/sitemap.xmland each child sitemap. Record total URL counts per sitemap section. - Spot-check 20 product URLs — verify they return 200, have correct self-referential canonicals, and do not have noindex tags applied by an app.
- Check for any
?page=parameters in collection sitemaps. - Verify all Shopify Markets sitemaps are submitted to GSC and hreflang attributes are complete.
- List app-generated pages you want indexed and confirm they are either in the sitemap or being submitted manually.
- Review GSC Coverage report for new errors, especially "Redirect errors" (which often signal out-of-stock redirect configurations hitting sitemap URLs).
Shopify's sitemap is more reliable than WordPress out of the box — but the structural constraints of the platform mean that problems, when they appear, require Liquid-level or API-level intervention rather than a plugin settings change. Understanding where the gaps are is the first step to closing them.