SEO & performance
hreflang
hreflang is the annotation that tells search engines which language and region each version of a page is meant for, so a Canadian shopper gets the Canadian page rather than the UK one. It must be reciprocal — every version has to point back at every other, including itself — which is why it is so frequently implemented incorrectly. Shopify Markets emits it automatically for translated markets.
Why it matters
hreflang is the most error-prone annotation in international SEO, and the errors are silent. Nothing breaks visibly — pages still load, rankings still exist — but shoppers land on the wrong market's page, see the wrong currency, and leave.
The cost is concentrated exactly where it hurts. A Canadian shopper served the UK page sees prices in pounds and delivery terms that do not apply, and the bounce is invisible in reporting unless someone is looking for it specifically.
It also solves a duplicate content problem. Several near-identical English pages for the UK, US, Canada, and Australia would otherwise compete with each other; hreflang tells search engines they are alternates for different audiences rather than duplicates to choose between.
How it works on Shopify
Each page version declares every version including itself, using a language code and optionally a region — en for English generally, en-CA for English in Canada, fr-CA for French in Canada.
The reciprocity requirement is where implementations fail. If the Canadian page lists the UK page, the UK page must list the Canadian one. A missing return reference invalidates the relationship, and partial implementations are common on sites where markets were added over time.
x-default marks the fallback for visitors whose language and region match nothing, which is usually the international or English page.
hreflang works alongside canonical tags rather than instead of them: each market's page should canonicalise to itself, not to a master version. Canonicalising all markets to one page removes the others from the index entirely, which is a common and severe mistake.
Shopify Markets emits hreflang automatically for translated markets, which handles most cases correctly. Custom implementations — multi-store setups, or headless builds — are where errors concentrate.
Common mistakes
- Missing return references. The most frequent error. Every version must point at every other.
- Canonicalising markets to one master. Removes every other market from search results.
- Wrong codes. Language codes are ISO 639-1, region codes ISO 3166-1 alpha-2. "uk" is Ukrainian, not the United Kingdom — an error that appears surprisingly often.
- Region without language. The language comes first and is required; region alone is invalid.
- Omitting self-reference. Each page must include itself in the set.
- Pointing at redirects or 404s. Every referenced URL must return 200.
When you need help
The trigger is a multi-market store where the wrong pages appear in the wrong countries, or where Search Console reports hreflang errors nobody can resolve.
Validation is mechanical — the reciprocity and code checks can be automated — but fixing it usually means untangling how the market structure was built, particularly on stores that grew from separate storefronts into Markets or that run a custom frontend. That is where the annotation and the URL structure have to be designed together rather than patched.
Related terms
- Shopify MarketsShopify Markets is Shopify's built-in toolset for selling internationally from a single store. It manages currencies, local pricing, duties and import taxes, domains or subfolders per market, and language translation — replacing the older pattern of running one store per country. Markets Pro adds a merchant of record service that absorbs compliance and fraud liability.
- Canonical tagA canonical tag tells search engines which URL is the authoritative version of a page when several URLs serve similar content. Shopify generates duplicates constantly — the same product reachable under multiple collection paths, plus tag and sort parameters — so canonicals are what consolidate ranking signals instead of splitting them. Google treats them as a strong hint, not a command.