Complete sample lesson · no account required
Find and fix a broken hreflang cluster
Repair reciprocal locale relationships without confusing localization with canonicalization.
Treat the annotations as a set of relationships
Alder’s US, UK, and German pages describe the same Ridge boot, with market-specific language and offers. These are equivalent destinations for different audiences. Hreflang annotations describe that relationship. They are not a translation service, a ranking boost, or a command that overrides every searcher’s context. The content and offer still need to be suitable for the market.
Start by identifying the exact product and equivalent page in each market. A German category is not an equivalent of a US product merely because it contains that product. Missing regional products need an explicit availability or fallback decision. Inventing a broad alternate destination makes the relationship misleading and can hide a broken product mapping.
Separate canonical selection from language alternatives
A canonical link expresses a preferred representative among duplicate or very similar URLs. Hreflang expresses locale alternatives. On this case’s distinct localized product pages, each destination has a self-referencing canonical and names all three locale versions, including itself. That keeps the signals coherent. Do not canonicalize a translated German page to the US original merely because the products are equivalent.
Near-identical same-language regional pages need a considered canonical strategy, particularly when the store cannot maintain meaningful regional differences. Investigate what Google selected and why; do not copy the self-canonical answer blindly to every duplication problem. Here the US and UK pages have distinct purchasable offers and destinations, so the intended indexable set is clear.
A corrected HTML set
<link rel="canonical" href="https://alder.example/uk/products/ridge">
<link rel="alternate" hreflang="en-US" href="https://alder.example/us/products/ridge">
<link rel="alternate" hreflang="en-GB" href="https://alder.example/uk/products/ridge">
<link rel="alternate" hreflang="de-DE" href="https://alder.example/de/produkte/ridge">This is the UK head. Repeat the same three alternate annotations on the US and German pages, changing the canonical to that page’s own URL. The domain is reserved example material, not a live test destination. Use en-GB rather than en-UK; a region alone is not a language code. Use absolute URLs and inspect the final destinations, not just the strings in a spreadsheet.
Choose a method and validate what was delivered
Google supports HTML annotations, HTTP Link headers, and XML sitemap annotations. Choose the method the platform can maintain reliably. Duplicating all three is not required. A syntax validator can detect malformed markup but cannot establish that the pages are equivalent or reciprocal. Fetch the destinations, inspect their status, canonical and indexing controls, and compare the full sets.
An x-default annotation is useful when an appropriate fallback destination exists for unmatched languages. It is not compulsory in every cluster. Do not point every product’s fallback at a generic home page without considering the lost shopping context. This exercise omits x-default because Alder has not yet designed a product-preserving fallback.
Shopify Markets can generate annotations from market and language configuration; inspect those before adding manual tags. On WooCommerce, identify which multilingual integration owns the mapping and whether the theme or another plugin also outputs tags. Repair the owning configuration rather than layering a contradictory second implementation over it. After release, validate representative products and missing-locale cases, and recheck Search Console observations after recrawling.
Download the practice lab: pages, source files and independent cases
Repair a partial cluster without inventing products
Remove the inaccessible German draft from the live Ridge set, add the US/UK reciprocal set and reconcile UK's canonical with its intended indexability. Vale's valid US/UK pair need not invent a German product. Complete coherent sets are easier to maintain, but a missing locale does not make every other reciprocal relationship invalid.
Independent practice
Use the supplied fictional evidence. Write your response before comparing it with the worked solution. No private account or paid tool is needed.
Page | Declared alternates / delivery |
|---|---|
US Ridge | US Ridge; UK Ridge; German draft |
UK Ridge | UK Ridge only; canonical US Ridge |
German draft | 401, not public |
US Vale / UK Vale | Reciprocal pair; no German equivalent exists |
Allow about 20 minutes. Alder and all supplied observations and figures are fictional practice material, not measured client results. Use the supplied case or equivalent evidence from your own store.
Independent case: German Summit becomes public, but its advertised URL redirects to a category. What must happen before adding it to the product cluster?
Worked solution
Provide and verify the actual equivalent Summit destination, not a generic category, and align its canonical/return links. If no equivalent exists, omit that locale relationship. Test final responses rather than only reviewing the annotation string.
Check your reasoning
Repair is specific to the broken relationship; there is no false rule requiring every product in every market.
Sufficient: your output cites the relevant records, gives a bounded decision and specifies a repeatable check. Partial: the decision is plausible but an evidence link or verification is missing. Revise: it invents facts, confuses identities or claims an outcome the evidence cannot establish.
Sources & further reading
- Google: localized versions of pages (opens in a new tab)
- Google: managing multilingual and multi-regional sites (opens in a new tab)
- Google: canonical URL guidance (opens in a new tab)
- Shopify: international SEO for markets (opens in a new tab)
Recheck platform controls before implementing a change. Recommendations in the worked case depend on its stated constraints.