Hreflang & International SEO
The Multi-Currency, Multi-Region Mistake That Quietly Cannibalizes E-Commerce Traffic
Hreflang is one of the smallest tags in technical SEO and one of the easiest to get wrong at scale. On multi-region e-commerce sites, a broken hreflang setup doesn’t just confuse Google — it puts the wrong currency, the wrong language, and sometimes the wrong country’s stock levels in front of a paying customer.
1. What Hreflang Actually Does (and Doesn’t Do)
Hreflang is an annotation, not a ranking signal. It tells Google (and Bing, to a lesser extent) which URL to serve to a user based on their language and, optionally, their region — nothing more. It does not translate content, does not merge duplicate content into one “stronger” page, and does not directly affect rankings the way backlinks or content quality do.
What it does do is prevent Google from treating your /en-us/, /en-gb/, and /de-de/ product pages as duplicate or competing content, and instead understanding them as intentional regional variants of the same page — provided the implementation is correct. When it’s wrong, Google falls back to its own judgment about which version to show, which is where things go sideways.
VERIFIED Google states explicitly in its own documentation that hreflang is used to serve the correct language or regional URL in search results and is not a ranking factor in itself.
2. The Three Ways to Implement It
- HTML link tags — <link rel=”alternate” hreflang=”x” href=”…”> in the <head> of every page; most common for small-to-mid catalogs
- HTTP headers — used for non-HTML resources like PDFs, sent as Link: headers in the server response; rare in e-commerce but relevant for downloadable spec sheets or catalogs
- XML sitemap annotations — hreflang declared inside the sitemap rather than the page head; the only practical option once you’re managing tens of thousands of SKUs across multiple regions, since it keeps the annotation out of every individual page’s markup
For most Shopify Markets or headless multi-region catalogs Alneeko works with, sitemap-based hreflang is the right call past a few thousand URLs — it’s far easier to audit and regenerate programmatically than chasing tags across every template.
3. Getting the Codes Right: ISO 639-1 + ISO 3166-1
Hreflang values combine a language code (ISO 639-1, e.g., en, de, fr) with an optional region code (ISO 3166-1 Alpha-2, e.g., US, GB, DE), joined by a hyphen: en-US, en-GB, de-DE. Two mistakes show up constantly here:
- Using a country code where a language code is expected, or vice versa — “en-UK” is invalid; the correct region code is GB, not UK
- Assuming language implies region — en alone targets all English speakers globally; en-GB targets English speakers specifically in Great Britain. Using only en when you actually have three distinct English variants (US, GB, AU) collapses them into one signal Google can’t disambiguate
Every implementation also needs an x-default tag — the fallback URL for users whose language/region doesn’t match any of your listed variants. Omitting it means Google picks a default for you, which is rarely the one you’d choose.
4. The Mistake I See Most Often in Multi-Region Audits
The single most common failure isn’t a wrong code — it’s a missing return tag. Hreflang is reciprocal by design: if your /en-us/ page declares an alternate for /en-gb/, the /en-gb/ page must declare a matching alternate pointing back to /en-us/. If that return link is missing, broken, or points to a redirected URL instead of the final destination, Google is instructed to disregard the entire hreflang cluster for that pair — not just the one broken direction.
| Worked example — Verdant Living Co. (Alneeko case profile) In one of our audit case profiles, Verdant Living Co. had launched a UK storefront at /en-gb/ alongside its existing US site, with hreflang tags added only to the new UK templates. The original US template was never updated to declare the reciprocal /en-gb/ alternate. Google’s crawler saw a one-directional signal, discarded the whole hreflang relationship, and continued ranking the US /en-us/ product pages for UK search queries — the exact outcome the UK launch was meant to prevent. |
This pattern repeats constantly because it’s an easy gap to create operationally: a new region gets built and launched as its own workstream, and the “add the return tag to the old templates” step falls outside that project’s scope. The fix is simple once found; finding it without checking directly is the hard part, covered in Section 6.
5. Where Multi-Currency SEO Overlaps — and Complicates — Hreflang
Currency and language are not the same signal, and treating them as interchangeable is the second major failure pattern in international e-commerce.
5.1 URL structure options
| Structure | Example | Trade-off |
| ccTLD | brand.co.uk | Strongest geo-targeting signal; highest cost and maintenance overhead |
| Subdirectory | brand.com/en-gb/ | Consolidates domain authority; easiest to maintain and the most common e-commerce choice |
| Subdomain | uk.brand.com | Treated closer to a separate site by some crawlers; middle-ground cost and signal strength |
5.2 The JS-only currency switcher problem
A very common shortcut: one URL serves all regions, and a JavaScript currency switcher (often geolocation-based) changes the displayed price client-side without changing the URL. This creates two separate problems at once — there’s no unique, crawlable URL for hreflang to reference per currency/region, and any crawler that doesn’t execute that JavaScript (see our JS Rendering & SEO guide for exactly which ones don’t) sees only the default currency, regardless of searcher location.
DISPUTED Whether currency alone should ever justify a separate hreflang-annotated URL (as opposed to language/region) is genuinely debated among practitioners — Google’s own guidance focuses on language and region, not currency, so teams reasonably differ on whether an en-US vs en-CA split is justified by currency differences alone when language and product catalog are otherwise identical.
The practical resolution most Alneeko audits land on: pair currency with a region-specific URL (/en-ca/ rather than a global /en/ with a JS switch) whenever price, tax, or availability genuinely differ by market — which is the case for most real multi-country e-commerce operations.
6. The Impact When This Goes Wrong
- Keyword cannibalization — the wrong regional URL ranks for local queries, splitting authority and confusing which page a query should reward
- Wrong currency/language shown to searchers — direct conversion and bounce-rate damage, since a UK searcher landing on a USD-priced page reads as untrustworthy or simply the wrong store
- Duplicate content flags — without reciprocal hreflang or canonical alignment, Google can treat near-identical regional pages as duplicates rather than intentional variants
- Wasted crawl budget — bots repeatedly crawling both the broken variant and its intended target without ever resolving which one to serve
- Silent revenue loss — the hardest to catch, because nothing “breaks” visibly; the site simply underperforms in a specific market with no obvious single cause
7. Where and How to Check the Impact Yourself
Google removed the dedicated International Targeting report from Search Console in September 2022, so this now takes a slightly different toolset than older guides describe.
7.1 Screaming Frog — Hreflang tab
Under Configuration > Spider > Crawl, enable “Crawl hreflang”, then run the crawl. The dedicated Hreflang tab flags missing return links, non-200 hreflang targets, incorrect language codes, and pages missing a self-referencing hreflang tag — this single tab catches the Verdant Living Co.-style mistake from Section 4 directly.
Screaming Frog path:
Configuration > Spider > Crawl > Hreflang (enable)
After crawl, check:
Hreflang tab > “Missing Return Links”
Hreflang tab > “Non-200 Hreflang URLs”
Hreflang tab > “Incorrect Language Codes”
7.2 Aleyda Solis’s Hreflang Tags Testing Tool
A free, purpose-built validator (hreflang.org tools, and similar checkers) that you paste a URL into; it fetches the page’s hreflang set and flags reciprocity and syntax errors without needing a full site crawl — the fastest single-URL sanity check.
7.3 Google Search Console — Performance report, filtered by country
Since the dedicated report is gone, filter the standard Performance report by Country and compare impressions/clicks for a given regional URL against the country it targets. A UK-targeted page earning most of its impressions from US queries is a strong practical signal of a hreflang or targeting failure, even without a dedicated report to confirm it directly.
7.4 URL Inspection Tool
Inspect the specific regional URL and check “Google-selected canonical” versus “User-declared canonical.” A mismatch here, combined with a country impression skew from 7.3, is usually enough to confirm the diagnosis before opening Screaming Frog.
8. Hreflang and Canonical Tags: The Interaction That Trips Up Shopify Markets
A related failure worth calling out on its own, because it’s specific to how Shopify Markets and similar platform-level multi-region tools are often configured by default: canonical tags and hreflang tags working against each other.
Each regional variant should carry a self-referencing canonical — /en-gb/ canonicalizes to itself, not back to /en-us/. When a platform or app defaults every regional URL’s canonical tag to the primary market (common when multi-region support is bolted on after a single-market launch), Google receives two contradictory signals: the canonical says “this page isn’t the authoritative version,” while hreflang says “serve this exact page to this specific audience.” Google generally follows the canonical in that conflict, which means the regional page you built specifically to be served hreflang-selected may never actually surface, regardless of how correctly the hreflang tags themselves are written.
VERIFIED Google’s documentation explicitly recommends self-referencing canonical tags on each localized version precisely to avoid this conflict, rather than canonicalizing regional variants back to a single primary market page.
On Shopify Markets specifically, this is worth checking directly rather than assuming the platform handles it correctly by default: view source on a secondary-market URL and confirm the canonical tag points to that same URL, not back to the primary market’s equivalent page.
9. Key Takeaways
- Hreflang is reciprocal — one missing return tag can invalidate the entire regional relationship, not just one direction
- Use ISO 639-1 language codes and ISO 3166-1 region codes correctly, and always include x-default
- At scale, manage hreflang via XML sitemap rather than per-page HTML tags
- Currency and language are separate signals — a JS-only currency switcher without unique URLs breaks both hreflang targeting and non-rendering crawler visibility
- Google’s International Targeting report is gone — verify with Screaming Frog’s Hreflang tab, a dedicated hreflang validator, and GSC’s Performance report filtered by country
- The business impact is rarely a visible error — it shows up as underperformance in a specific market with no single obvious cause, which is exactly why direct verification beats assuming it’s fine
10. References
1. Google Search Central — “Tell Google about localized versions of your page” (official hreflang implementation guidance). developers.google.com/search/docs/specialty/international/localized-versions
2. Google Search Central — confirmation that hreflang is not a ranking signal, within the same localized versions documentation.
3. Google Search Central Blog — announcement of the International Targeting report’s removal from Search Console (September 2022).
4. Screaming Frog — “Hreflang Auditing” documentation (Configuration > Spider > Crawl > Hreflang). screamingfrog.co.uk/seo-spider
5. Aleyda Solis — Hreflang Tags Testing Tool (independent, practitioner-built validator). hreflang.org
6. ISO 639-1 language codes and ISO 3166-1 Alpha-2 country codes (the two standards hreflang values are built from). iso.org
