Shopify Markets does the technical part of international SEO for you: hreflang, canonical URLs and the exclusion of crawlers from automatic redirection. Except that it only does it under the conditions you set, and those are set once - at the start. Losses then do not arise in the Markets settings, but in three places beside them: in a market without its own URL, in strings nobody translated, and in translations the browser performs.
This article is not a guide to switching Markets on. It is a list of the places where an international store quietly disappears in Google, and a way to verify each of them on your own store.
Hreflang is only generated for a market that has its own URL
This is the most expensive sentence in the whole article and it is a quote from the Shopify help: "Hreflang tags are generated only for markets that have a distinct domain, subdomain, or subfolder" (help.shopify.com, International SEO for markets, retrieved 31 August 2026).
The practical consequence: a market whose URL does not differ from the primary one in any way gets no hreflang annotations. The search engine then has nothing to tie the language versions together with and decides for itself which one to show. You see two markets in the store, Google sees one page.
What Shopify does automatically once the URL is there:
- generates hreflang with a language and region code, for example en-us or fr-fr,
- adds an x-default pointing to the primary domain,
- sets a self-referencing canonical URL on every version, so the versions do not report themselves as duplicates but as variants for a different audience.
Automatic hreflang tags can be switched off in the admin. The help says outright: "Turning off automatic hreflang tags can negatively affect your store's SEO." If somebody flipped that switch in the past, you will spot it in ten seconds in the page source - and it is worth checking before anything else.
Subfolder, subdomain, country domain: a decision for years ahead
Shopify offers three structures: a subfolder (store.com/de/), a subdomain (de.store.com) and a separate country domain (store.de). The vendor describes the difference between them itself, and it is not a matter of taste.
| Structure | What happens to domain authority | When to choose it |
|---|---|---|
| Subfolder | inherited from the primary domain | the default choice |
| Subdomain | benefits less strongly, per Shopify | technical reasons |
| Country domain | built from zero | a strong local brand |
Of subfolders the help says that "region-specific URLs benefit from your store's existing search ranking and domain authority", of subdomains that they "might not benefit as strongly as subfolders", and of country domains that "each region-specific version of your store develops its own domain authority", making it the slowest route. For a first international setup Shopify recommends subfolders (help.shopify.com, International domains, retrieved 31 August 2026).
Changing this choice later is not a setting but a migration with everything that belongs to one: a URL map, redirects and a month of monitoring. That is why it is decided in advance and in writing.
Automatic redirection does not apply to crawlers, only to you
Markets can send a visitor to the version matching their country. The help adds an important exception: "Automatic redirection applies to customers, but search engine crawlers are excluded", so a crawler receives the content of the URL it requested.
For ranking that is good news. For your testing it is bad news: you cannot verify your own international versions in a browser, because the system redirects you before you see what Google sees. The check therefore belongs in a tool that fetches the page without redirection - in the URL inspection tool in Search Console or in a crawler.
"Fifty-eight per cent untranslated" is usually a number that means nothing
In the translation export of one Shopify store - luxury cosmetics, six language versions - we counted 284,505 lines and 50 to 58 % untranslated strings on 26 July 2026. It sounds like a disaster, and a more detailed analysis on 27 August 2026 showed that half of that number was somewhere other than it seemed.
Of 52 locale files, 24 had exactly the same number of missing keys - 264 out of 564. The same number in every file means one thing only: nobody has ever opened them. They are stock languages from the theme, never published and never seen by a customer. In the five actually published languages 8 to 12 % were missing.
The practical consequence for a quote. Before you start paying for translation, split the coverage into published and unpublished languages. The difference between "58 % missing" and "10 % missing where it matters" is a factor of five in budget and the same factor of five in time. The fingerprint of a stock file is exactly that suspicious match in the number of missing keys.
What cannot be translated on Shopify, even if you pay for it
The Translate & Adapt app is free, but it translates at most two languages automatically: "You can automatically translate a maximum of 2 languages." The rest are filled in field by field. Beside that there is a list of content that is not translated at all (help.shopify.com, Translate & Adapt, retrieved 31 August 2026):
- tags - product, article and blog ones,
- category filters,
- product images,
- forms from the Shopify Forms app,
- instructions for manually entered payment methods,
- content from third-party apps that is not stored as a Shopify translatable resource.
The most underestimated items are the first and the fourth from the top. Tags and filters hold the navigation inside collections together, so a foreign market keeps Czech or English navigation inside an otherwise translated page.
A special rule applies to URLs. The handle can be translated - /products/en-ca/shoes into /products/es-mx/zapatos - but the word products in the URL cannot. Moreover: "URL handles can't be customized for markets", so one language has one handle across all the markets where it is visible. Anyone who planned a different product URL for every market planned something the platform does not allow.
The limit on languages themselves is not what people expect: Shopify states you can sell in up to 20 languages on all plans except the cheapest entry one. The ceiling is therefore not in the number of languages, but in who is going to maintain those twenty language versions.
A translation performed by JavaScript does not exist for a search engine
This is the quietest way to lose your foreign-language SEO, and you cannot see it even in the source code fetched with curl.
In the same store we found a custom translation layer: a file of 87 kB with 304 querySelector calls and 528 textContent assignments. It takes the language from the URL with the construction location.href.split('/')[3]. Three behaviours follow from that, and all of them look like a mystery until you know where to look:
- On the default language version, which has no prefix in the URL, the layer does not run at all.
- The text changes only after the page has rendered, so the crawler gets the original wording and the user sees a layout shift.
- Renaming a single class in the theme switches off part of the translations and not one error appears in the console.
Before you start fixing "a string that will not translate", find out which of the three mechanisms is supposed to translate it - a locale file, the Translate & Adapt app, or this layer. A fix at the wrong level lasts until the next deployment.
Two storefronts of one brand drift apart without a single mistake
When a brand expands the other way - not with a market inside one store, but with a second store - a pair emerges that is maintained by hand. Comparing the file listings of two live themes of the same brand on 26 July 2026, we found that 255 out of 264 shared templates differ from each other.
One more number from the same analysis belongs both to expansion and to migration: 4,721 redirects, of which 49 are dead. A redirect map is not a file you upload once. It is an estate that gets watched after launch.
The difference between the two models lies mainly in the cost of maintenance. One store with markets has one theme and one set of translations; two stores have two of everything and drift apart quietly, because the difference lights up nowhere.
Six checks you can manage in a single afternoon
You need no agency and no paid tool for them. You need a browser, Search Console and an hour of quiet.
- In the page source of every language version, find hreflang and x-default. If they are missing, check whether the market has its own domain, subdomain or subfolder.
- Verify the canonical URL on the same page - it should point at itself, not at the primary market.
- Switch JavaScript off in the browser and load a foreign-language page. Whatever reverts to the original language is invisible to a search engine.
- Request the page without redirection - through URL inspection in Search Console - and compare what the crawler receives.
- In the translation export, split the files into published languages and stock ones. Count coverage from the published ones only.
- Go through the collection filters and tags on a foreign market. That is exactly where the original language stays, even when the rest of the page is translated.
Before you pay for translation, establish two numbers: what percentage is missing in the published languages and how many texts are translated only in the browser. The first number determines the budget, the second determines whether the translation counts towards SEO at all.
We will go through your international setup before you add another market
Send us the store address and the list of markets and languages you have live. We will return an overview of which versions have their own URL and hreflang, where translation happens only in the browser, and what the translation coverage is separately for the published languages. A scope of work then comes out of that, not an estimate.
What we build and take over on Shopify is described on the Shopify store development page. If you are still choosing a platform for several markets, start with the comparison of Shoptet, Shopify and WooCommerce.
Write to info@lamapixel.com or call +420 775 599 009.