Deep Dive

Shopify Markets and Google's Locale Deindexing: Why Your Index Count Dropped and What To Do

Shopify Markets creates 12+ URL variants per page. Google is deindexing /en-ca/, /en-gb/, and /en-au/ as near-duplicates. Here is the decision matrix and step-by-step fix guide.

Inxy Team · Updated May 28, 2026 · 14 min read

Back to: Google 2026 Indexing Rules

Quick Answer: Shopify Markets creates 12+ URL variants per page for each locale (e.g. /en-ca/, /en-gb/, /en-au/). Google is deindexing these as near-duplicates even when hreflang is correctly set up. One store dropped from 12,665 to 5,351 indexed pages after enabling Markets. The GSC signal to watch is “Duplicate, Google chose different canonical than user.” The fix depends on whether you need those locales to rank independently.

If you enabled Shopify Markets in 2024 or 2025 and your GSC index coverage has been quietly shrinking since, you are almost certainly seeing the locale deindexing pattern that has become one of the most common indexation problems across Shopify stores in 2026.

The short version: when Shopify Markets generates locale-prefixed URL variants for your pages, Google increasingly treats them as near-duplicate content of your root URLs and chooses to index only the root. The locale variants drop out of the index, taking your ability to rank for geo-targeted queries with them.

This article explains exactly how the problem forms, how to read the GSC signals that confirm it, how to decide which locales to fight for, and how to fix it.


How Shopify Markets Creates the Problem

Shopify Markets is built around locale-prefixed URLs. When you add a market for Canada, the UK, and Australia, Shopify generates URL structures like this for every page on your store:

Original URLCanada variantUK variantAustralia variant
/products/blue-wool-coat/en-ca/products/blue-wool-coat/en-gb/products/blue-wool-coat/en-au/products/blue-wool-coat
/collections/outerwear/en-ca/collections/outerwear/en-gb/collections/outerwear/en-au/collections/outerwear
/blogs/style/winter-coat-guide/en-ca/blogs/style/winter-coat-guide/en-gb/blogs/style/winter-coat-guide/en-au/blogs/style/winter-coat-guide

A store with 1,000 URLs that enables 4 markets now has 5,000 URLs. With 11 markets, it has 12,000 URLs. Each of these variants has substantially identical content: same product copy, same images, same descriptions. The only differences are currency display, shipping information, and sometimes a language if the market serves a non-English territory.

Why hreflang does not fully solve this:

Shopify does implement hreflang annotations on Markets pages. These tell Google which URL is the canonical version for each locale combination. The problem is that Google’s algorithms treat hreflang as a hint, not a directive. When the content similarity between the root URL and the locale variant is very high (which it is for most English-language Markets, where the only difference is currency display), Google routinely overrides the hreflang signal and selects the root URL as the canonical for all variants.

This is not a Shopify bug. It is Google’s duplicate content classifier doing its job, and the consequence for your store is that the locale variants vanish from the index.


Reading the GSC Signal

The primary GSC signal is found in the Coverage (or Indexing) report.

Navigate to: GSC > Indexing > Pages > Reason: “Duplicate, Google chose different canonical than user”

This report shows pages where you designated a canonical URL, but Google disagreed and selected a different URL as the canonical. For Shopify Markets stores experiencing this problem, the pages in this report will be dominated by locale-variant URLs.

What you see in GSCWhat it means
Locale URLs (e.g. /en-ca/products/…) in “Duplicate, Google chose different canonical”Google is indexing root URL, treating locale variant as duplicate
Count dramatically higher than expectedThe scope of the deindexing: compare to your Shopify sitemap submission count
Root URL indexed, locale not indexedOrganic traffic from Canada/UK/AU goes to root URL, may not geo-rank well
Locale URL indexed but root marked as canonicalMixed signal, potentially unstable

The representative example: a mid-size apparel store that enabled Markets for 4 English-language markets (Canada, UK, Australia, and Ireland). Before enabling Markets: 3,163 indexed pages. After enabling Markets, the sitemap grew to approximately 15,815 URLs. Six months later, GSC showed 5,351 indexed pages — a drop of 12,665 indexed pages, with the vast majority showing “Duplicate, Google chose different canonical than user” for the locale variants.

That store had correctly implemented hreflang. The problem was content similarity, not technical implementation.


The Decision Matrix: Which Locales to Keep

Before jumping to fixes, make a deliberate decision about which locale variants you need Google to index independently.

When Independent Locale Indexing Matters

You need locale variants independently indexed when:

  • Search volume exists in that locale for your keywords. If Canadian buyers search “wool coat Canada” in meaningful volume, you want a Canadian-indexed URL to potentially geo-rank for it.
  • Your pricing or availability is genuinely different. If the product page for the Canadian market shows CAD pricing and CA-specific shipping, there is meaningful differentiation.
  • You have a separate customer acquisition strategy per market. If you run geo-targeted Google Ads to locale URLs, those pages need to be indexed.

When Locale Indexing Does Not Matter

You do not need locale variants independently indexed when:

  • Your international traffic converts fine on the root URL. Google can still serve your root URL to international searchers; it just may not geo-rank as well for locale-specific queries.
  • The locale markets are secondary. If Canada represents 4% of your revenue and requires 3,163 additional URLs to index, the crawl budget cost may exceed the benefit.
  • The content is identical except for currency. Currency-only differences rarely produce meaningful ranking differentiation per market.

Decision Matrix

Locale revenue shareSearch volume in localeContent differentiationRecommended approach
15%+HighYes (language, pricing, shipping)Fight for independent indexing: see Fix Option A
15%+HighNo (currency only)Consider ccTLD or subdomain structure
5-15%MediumYesSelective: index key product + collection pages only
5-15%MediumNoConsolidate to root: see Fix Option B
Under 5%LowAnyConsolidate to root, save crawl budget

Fix Option A: Maximize Locale Differentiation to Force Independent Indexing

If you need a locale variant indexed, you need to create enough content differentiation that Google’s duplicate classifier stops treating it as a copy.

Step 1: Add locale-specific content to key pages. For each priority locale, add a section to your product and collection pages that is specific to that market. For Canada: a paragraph about Canadian sizing conventions, Canadian shipping lead times, or notes about Canadian import standards if relevant. For UK: UK-specific care label regulations, UK sizing, UK delivery details. The content must be genuine (it should actually help that market’s buyers) and substantial (a paragraph or more is the threshold).

Step 2: Use locale-specific meta titles and descriptions. The meta title and description are part of what Google reads for duplication signals. “Blue Wool Coat - Free UK Delivery” is more differentiated from “Blue Wool Coat - Free Shipping” than “Blue Wool Coat - Free Delivery” is. Make the geo-specificity visible in the head.

Step 3: Implement hreflang with the correct language-region codes. Shopify Markets may default to en for all English-language markets. Override this to en-CA, en-GB, en-AU etc. for each specific market. The additional specificity gives Google clearer routing instructions.

Step 4: Submit locale sitemaps separately and monitor. Submit separate sitemap files per locale to GSC and monitor the coverage report weekly for 4-6 weeks. Recovery of locale indexing with this approach takes 4-8 weeks.


Fix Option B: Consolidate Locale Variants to Root URL

If a locale does not justify independent indexing (under 5% revenue, low search volume, no content differentiation), consolidating is cleaner and improves crawl budget allocation for the rest of your store.

Step 1: Set canonical tags on locale URLs pointing to root. In Shopify Markets settings or via a custom code injection, add <link rel="canonical" href="[root-url]" /> to every locale URL for this market. This explicitly signals to Google that the root is the intended canonical, aligning your stated preference with what Google is already doing.

Step 2: Remove locale variants from your sitemap. Update your sitemap.xml to exclude URLs for consolidated locales. A sitemap that lists URLs Google cannot index wastes crawl budget and signals low sitemap quality, which affects how Google treats your entire sitemap submission.

Step 3: Update internal links. Any internal link pointing to a locale URL (from a navigation menu or promotional banner) should be updated to point to the root URL. Locale URLs receiving internal links can confuse the canonical signal.

Step 4: Set up geo-targeting in GSC for the root domain. If you still want Google to have a geo-targeting hint for the root URL, set the country preference in GSC under Legacy tools > International Targeting. Note: this is a deprecated tool and Google has reduced its weight, but it remains a marginal signal.


Fix Option C: Consider Subdomain or ccTLD Architecture

For stores where international markets represent 20%+ of revenue and the content differentiation is significant, a subdomain or ccTLD structure creates clearer separation than locale URL prefixes.

ArchitectureExampleGoogle treatment
Locale prefix (Shopify Markets default)/en-ca/products/…Near-duplicate risk when content similarity is high
Subdomainca.mystore.com/products/…Treated as separate entity, stronger geo-signal
ccTLDmystore.ca/products/…Strongest geo-signal, treated as separate site

The trade-off: subdomains and ccTLDs require separate GSC properties, separate sitemap management, and do not consolidate domain authority. For most Shopify stores under $5M annual revenue, locale prefix with strong differentiation (Fix Option A) is sufficient and less architecturally complex.


Inxy note: Inxy’s GSC integration surfaces the “Duplicate, Google chose different canonical” count as a first-class metric on the indexing dashboard. It breaks down which locale variants are affected, calculates the indexed page delta per market, and generates a prioritized fix list based on each market’s share of your GSC-tracked revenue. If you are managing multiple Shopify Markets and need to decide where to invest, the dashboard makes the revenue impact of each market’s deindexing visible in one place.



FAQ

Will fixing this recover my lost organic traffic from international markets?

In most cases, yes, but the timeline is 4-8 weeks per locale after implementing fixes. Recovery depends on whether the locale was previously ranking and generating traffic. If the locale URLs were indexed but not ranking meaningfully before, recovery may show as index count improvement without a large traffic change.

Does this affect stores not using Shopify Markets (separate Shopify stores per market)?

No. This issue is specific to Shopify Markets locale-prefix URL structure. Separate Shopify stores per market operate as separate domains and do not create this URL duplication pattern.

Shopify says Markets supports hreflang automatically. Why is that not preventing the problem?

Hreflang tells Google your canonical preference. Google respects hreflang for language differentiation more reliably than for locale-only differentiation. When two URLs have identical language and only differ by currency display, Google’s duplicate classifier outweighs the hreflang signal. The fix is content differentiation, not better hreflang implementation.

My sitemap shows 15,000 URLs but GSC shows 5,000 indexed. Is that purely the Markets issue?

Not necessarily. The Markets issue is likely responsible for a large portion, but Shopify’s sitemap also includes URLs that are legitimately excluded: redirect chains, password-protected pages, pages excluded by robots.txt, and pages Google has decided are low quality. Pull the full breakdown in GSC Coverage to see how many fall into each reason category.

Can I just block locale URLs in robots.txt to save crawl budget?

Blocking locale URLs in robots.txt prevents Google from crawling them, which also prevents Google from understanding the canonical relationship between the locale URL and the root. The recommended approach is to allow crawling but signal canonicalization correctly, rather than blocking. Blocking is harder to reverse if you later need those locales indexed.