Home Blog SEO
SEO

Shopify international SEO: hreflang, markets, and translations

International SEO on Shopify: Markets, subfolders vs domains, hreflang gaps, translations and duplicate content. A technical checklist.

Lionel Fenestraz · 17 August 2026 · 10 min read · Updated: August 2026
Laptop showing an ecommerce store with a globe on the desk
In this article

Shopify handles a big chunk of international SEO for you through Shopify Markets: it generates hreflang tags automatically based on your market and language setup, applies self-referencing canonicals per version, and adds every language and region URL to the sitemap. That’s confirmed in the official Markets SEO documentation. What you have to decide is the domain structure, who writes the translations, and how you keep two markets that share a language from competing against each other.

In this post I’ll walk through how the system works under the hood, where it breaks in practice when I audit stores selling across several countries, and a technical checklist to confirm your hreflang is set up right before you sign off on an international expansion. It’s part of the Shopify SEO for ecommerce 2026 cluster, where the rest of the platform’s technical SEO lives.

In 30 seconds:

  • Shopify Markets generates hreflang automatically based on your market and language setup, with an x-default pointing to the primary domain (Shopify Help Center)
  • Three possible structures: subfolders (store.com/fr/), subdomains (fr.store.com), or country domains (store.fr); Shopify recommends subfolders for most stores
  • Each market version carries a self-referencing canonical plus hreflang that ties the variants together, so Google reads them as distinct pages, not duplicates (Shopify Help Center)
  • Translations aren’t auto-generated: you write them yourself or with the Translate & Adapt app (Shopify Help Center)
  • The point that fails most in audits: two same-language markets (Spain and Mexico in Spanish) with no signals to tell them apart end up cannibalizing each other

What is Shopify Markets and what does it solve for international SEO?

Shopify Markets is the native feature for selling in multiple countries and languages from a single store, adapting currency, language, prices, domains, and theme content by location. In SEO terms, its value is that it saves you the most fragile part of manual internationalization: hreflang.

Back when I built hreflang by hand on other platforms, half the problems came from malformed tags, made-up language codes, or missing reciprocity between versions. Shopify removes that risk. Per its Markets SEO documentation, hreflang tags are generated automatically from your market and language setup, with the right codes (say, en-us, fr-fr) and an x-default tag pointing to the primary domain. The sitemap also builds itself and includes the language and region URLs with their hreflang annotations.

That doesn’t mean you can walk away. The work just shifts: instead of writing correct tags, you make good architecture and content decisions. That’s where an expansion is actually won or lost.

What Markets does for you

  • Generates reciprocal hreflang between language/region versions.
  • Applies a self-referencing canonical to each market version.
  • Includes every variant in the XML sitemap.
  • Lets search bots skip geolocation redirects so they can crawl all versions.

What’s still on you

  • Choosing subfolders, subdomains, or country domains.
  • Providing the translations (Shopify doesn’t invent them).
  • Avoiding cannibalization between same-language markets.
  • Deciding which markets deserve indexing and which don’t.

Subfolders, subdomains, or country domains?

Short rule: for most stores, subfolders. That’s what Shopify’s own documentation recommends, and it matches what I see work best when a business doesn’t have an SEO team per country.

The logic is about authority. A subfolder (store.com/fr/) shares the primary domain’s authority, so every link the homepage earns also pushes the language versions. A subdomain (fr.store.com) or a country domain (store.fr) starts its authority from close to zero, and you have to make up for that with dedicated link building per country. If you don’t have the resources for that, a country domain is a weight around your neck, not an advantage.

StructureExampleAuthorityComplexityWhen I pick it
Subfolderstore.com/fr/Shares the primary domain’sLowThe default for almost every store
Subdomainfr.store.comIndependent, has to be builtMediumWhen the market justifies its own infrastructure and content
Country domainstore.frIndependent, the strongest local signalHighLarge brands with a per-country team and link-building budget

The country domain gives Google the clearest geographic signal, that much is true. But that edge only counts if you’re going to feed it local content and links on an ongoing basis. In a store with limited resources, the subfolder almost always wins. If you’re coming from WordPress, this cost-vs-control logic will feel familiar; I compare it in detail in Shopify SEO vs WordPress SEO.


How does Shopify handle hreflang, and where does it break?

Shopify sets up hreflang correctly at the technical level: reciprocal tags, valid codes, x-default to the primary domain, and self-referencing canonicals per version, per its Help Center. The problem usually isn’t in how it writes the tags. It’s in the decisions you make, which the system reflects faithfully, mistakes included.

These are the failures I run into over and over.

Two same-language markets with nothing to tell them apart

This is the most common and the most expensive. You sell in Spain and in Mexico, both in Spanish. Shopify generates es-es and es-mx with correct hreflang. But if the content on both versions is identical word for word, Google gets two pages competing for the same Spanish queries. Hreflang tells it “serve this one to Spain and that one to Mexico,” and it helps, but it doesn’t erase the tension when the content offers no distinct local signals: currency, references, payment methods, shipping. When two versions are clones, one tends to eat the other in generic SERPs. It’s the same cannibalization dynamic I cover for product variants in Shopify variant SEO and cannibalization, applied here to markets.

Half-finished translations

Shopify doesn’t translate for you. If you turn on a language but only translate the product pages and leave the theme, the menus, and the legal pages in the base language, you’ve got a half-translated version. Google sees mixed content, and the user sees a sloppy store. The translation documentation lists everything you can translate (titles, descriptions, metadata, collections, pages, blog articles, menus, theme sections, notifications). If you don’t cover that list, the translation is incomplete.

Untranslated URL slugs

Translating the URL slug is optional in Shopify but it helps SEO, per its own documentation. Plenty of stores skip it and end up with English URLs under a French subfolder. It doesn’t break anything, but you lose keyword relevance in the local language. Heads up: the /products/ segment of the URL can’t be translated, that’s fixed by the platform.

Tags that don’t translate

One detail that catches people out: tags (product, article, and blog tags) can’t be translated, per the Help Center. If your navigation or content architecture leans on tags, that part stays in the original language across every market. Worth knowing before you build on tags.


How do I avoid duplicate content between markets?

Shopify already covers the technical side: each market version carries a self-referencing canonical plus the hreflang that ties the variants together, and that tells Google they’re distinct pages for distinct audiences, not duplicates, per its documentation. With that foundation, the “dangerous” duplication is the kind you create yourself by launching clone markets.

My approach in audits is simple. First, decide which markets deserve to be full versions and which shouldn’t be indexed yet. A market with the currency swapped but the same content in the same language rarely justifies its own indexing early on. Second, differentiate the markets you do launch: swapping the currency symbol isn’t enough, you have to adapt shipping, returns, price references, and any signal that makes the page genuinely local.

Shopify’s self-referencing canonical is correct for the general case, but it doesn’t fix two pages in the same language being twins. No tag fixes that. Only content does. For the full picture of how Shopify generates canonicals and the five scenarios where it fails, I have a dedicated post on canonical tags in Shopify.


Technical checklist for international SEO on Shopify

This is what I review before signing off on a multi-market store. Open the source code of a product page in each language and start ticking.

  1. Hreflang present and reciprocal. In the <head>, each version links to the others and to itself. With Markets it should be there by default; check that a custom theme or an app didn’t break it.
  2. x-default pointing to the primary domain. It should exist and point to the base version, not a stray variant.
  3. Valid language/region codes. es-es, fr-fr, en-us… well formed. No es-latam or made-up codes Google doesn’t recognize.
  4. Self-referencing canonical per version. Each market URL points to itself, not to the base version.
  5. Consistent domain structure. Subfolder unless you have the resources to feed subdomains or country domains.
  6. Complete translation, not half done. Theme, menus, legal pages, notifications, and product pages, all in the market’s language.
  7. Translated slugs where they add local keyword value (remembering that /products/ doesn’t translate).
  8. Same-language markets differentiated by real content, not just currency.
  9. Sitemap with every variant. Markets includes them; confirm it in Search Console.
  10. No redirects hiding versions from bots. Shopify lets crawlers bypass geolocation; check that no app forces it.

If any point fails, there’s your work. Almost always the bottleneck isn’t technical but content: incomplete translations and clone markets. And no configuration solves that; the team that writes solves it. If you’re building page by page, my Shopify product page SEO guide covers the on-page that needs to be translated.


Frequently asked questions

Does Shopify add hreflang automatically?

Yes. Per the Shopify Markets SEO documentation, hreflang tags are generated automatically from your market and language setup, with the matching codes and an x-default to the primary domain. You can turn it off by editing the Liquid, but Shopify doesn’t recommend it and neither do I.

Subfolders or country domains for selling abroad?

For most stores, subfolders (store.com/fr/), because they share the primary domain’s authority and have the lowest setup complexity. Country domains give the strongest geographic signal, but they start their authority from zero and only pay off if you’re going to do sustained link building and local content. That’s the recommendation in Shopify’s own documentation.

Does Shopify translate my store on its own?

No. Shopify makes translation management easier with the Translate & Adapt app, but you provide the translations, per its Help Center. The platform doesn’t generate the translated text automatically; it only organizes it by language once you (or a machine translation you review) supply it.

Does selling the same language in two countries create duplicate content?

Technically Shopify covers it with self-referencing canonicals and hreflang that separate the versions. The real risk shows up when the two versions have identical content: then they compete for the same generic queries and one tends to cannibalize the other. No tag solves that. You solve it by differentiating the content with real local signals: currency, shipping, price references, payment methods.

Can I translate product URLs in Shopify?

You can translate the slug (the final part of the handle) and it improves local SEO, but the /products/ segment of the URL is fixed by Shopify and can’t be changed. Product, article, and blog tags don’t translate either, per the official documentation.


Selling abroad is a content decision, not just a configuration

The technical side of international SEO on Shopify is handled out of the box: reciprocal hreflang, canonicals, sitemap. That’s a real advantage over building it by hand. What decides whether your expansion works comes after: giving each market genuinely local content and complete translations. Stores that launch clone markets with the currency swapped rarely see a return. The ones that adapt for real do.

If you’re planning an international expansion on Shopify and want a review of the hreflang, the domain structure, and the cannibalization risk between markets before you launch, book 30 minutes of consulting and we’ll look at it on your store.

Lionel Fenestraz — Freelance Google Ads & Meta Ads Consultant
Lionel Fenestraz
Freelance PPC & CRO Consultant · Google Partner · CXL Certified · Google Ads Search Certified
7+ years managing Google Ads and Meta Ads for vacation rental, B2B and ecommerce. Trilingual ES/EN/FR.
Free first call

Could your ad campaigns
perform better?

30 minutes to review your situation and tell you exactly what I would change. No pitch, no sales proposal.

Book a call →
30 min · Google Meet · No commitment