HomeAboutServices PortfolioSkillsToolsBlog ClientsContact

Shopify Markets Hreflang Audit: Check US and Canada Product URLs

World map and desk globe, illustrating regional storefront planning for Shopify Markets.
Image: Aslı Yılmaz · Unsplash License. Cropped and converted to WebP.

A Shopify Markets hreflang audit starts with the actual regional product URLs and the annotations each page returns. Compare the US English, Canada English and, where published, Canada French versions of the same item. Then check whether their alternate links, canonical destinations and accessible content agree with the intended market configuration.

A currency selector alone doesn't establish that URL map. This tutorial uses a fictional trail mug on example.test, with distinct addresses assumed to be configured for its audiences. The supplied offline exercise contains deliberately broken HTML and corrected counterparts. It demonstrates diagnosis, without accessing a Shopify account or measuring search results. For the wider catalog context, start with the ecommerce SEO guide.

Key takeaways

  • Map distinct, configured market URLs before checking annotations; a currency change alone doesn't establish alternate pages.
  • Inspect Shopify's automatic output before investigating additional theme or app tags.
  • Check return links, self references, canonical destinations and accessibility together.
  • Use the fictional fixture to practise diagnosis, then verify real storefront evidence separately.

Which URLs belong in this Shopify Markets hreflang audit?

Include only configured, published regional versions of the same product. The exercise assumes US English uses the primary domain, while Canada has distinct English and French subfolders. Shopify ties alternate annotations to distinct market addresses and language settings, rather than a shared URL alone (Shopify Help Center, International SEO for markets, checked 2026-10-06).

Build the inventory from configuration and page evidence. Record the product identity, audience, published language and final address reached without an editor session. A translated handle may differ from its English counterpart. Match the underlying item, rather than guessing its French slug.

Scroll horizontally on smaller screens to read the complete URL matrix.

AudienceLocaleAssumed product URL
US Englishen-UShttps://example.test/products/trail-mug
Canada Englishen-CAhttps://example.test/en-ca/products/trail-mug
Canada Frenchfr-CAhttps://example.test/fr-ca/products/tasse-randonnee

French belongs in the audit only when that version genuinely exists. An untranslated page with a French-looking address needs editorial investigation, not a reassuring label. The bilingual language SEO guide explains the broader language planning; this walkthrough concentrates on regional product relationships.

Write exceptions beside the inventory. An item unavailable in Canada may lack a Canadian counterpart, while another product has every planned edition. Don't quietly substitute a collection homepage when the equivalent product is absent. That changes the relationship you're testing.

Where does Shopify's automatic hreflang come from?

Shopify supplies automatic hreflang through content_for_header, rendered inside the theme's head. Its theme documentation warns that additional custom annotations can duplicate or contradict this output (Shopify, Use hreflang tags in your theme, checked 2026-10-06). Inspect the returned markup before recommending an app or another Liquid loop.

Save the original HTML response for each listed address. Keep its request URL, capture time, final destination and relevant response headers nearby. Searching only the theme repository misses tags produced by the platform. Conversely, searching only browser elements can obscure which markup arrived initially and which a script added later.

Capture the source and rendered head

Search for hreflang and rel="canonical" in both views. Count every occurrence. Compare the source with the rendered head if an app modifies metadata in the browser. Record differences without assuming the last visible element overrides earlier declarations.

Label captures by environment: published theme, preview theme and collection entry point. Otherwise, comparisons can mingle revisions from different releases. Include a timestamp in the filename and retain untouched bytes, so a developer can distinguish stale export evidence from an intermittent delivery problem.

Compare the product's alternate links across every planned edition, including each page's own reference. Google's localized-page guidance requires self references, fully qualified destinations and reciprocal links between alternatives (Google Search Central, Tell Google about localized versions of your page, checked 2026-10-06). A correct US declaration alone cannot establish a complete Canadian relationship.

For this inventory, the US page should identify its Canadian counterparts, and each Canadian page should identify the US edition. Inspect the reverse direction explicitly. Can you follow the declared relationship back to where you started? An outgoing-link count won't answer that question.

Separate repetition from disagreement. An identical duplicate is a maintenance problem worth tracing; competing destinations for the same locale create an ambiguous map. In the broken fixture, the US document repeats Canada English and also points that locale at a retired address. Preserve those entries separately instead of collapsing them into a dictionary.

Validate the intended audience

The exercise uses en-US, en-CA and fr-CA. Google's guidance specifies language codes with optional region codes; a country alone is insufficient, and UK is not the supported region identifier for Britain (Google Search Central, supported codes, checked 2026-10-06). The sample checker uses a deliberately limited allowlist, not a universal locale registry.

Compare each market's canonical destination

For these intended distinct market pages, expect a single canonical pointing to each edition's own address. Shopify documents self-referencing canonicals for market-specific versions (Shopify Help Center, automatic canonical URLs, checked 2026-10-06). The fixture treats a Canadian canonical pointing to the US page as a configuration conflict requiring investigation.

Canada English and US English may share substantial copy. That resemblance doesn't justify replacing the platform's regional canonical behavior without examining the intended setup. Trace the delivered signal first. The canonical tag guide covers consolidation decisions when pages genuinely serve duplicate purposes.

The French edition deserves a separate language check. Google advises selecting a canonical in the same language when using hreflang, where available (Google Search Central, canonical best practices, checked 2026-10-06). An English canonical on an intended French product page should prompt scrutiny.

Treat the market matrix as a relationship contract. A tag can be syntactically valid while contradicting that contract through its destination. This audit tests audience equivalence; the Shopify duplicate product URL walkthrough examines collection and product path duplication within a storefront.

What does the offline Shopify Markets hreflang audit show?

The offline exercise exposes deliberately conflicting annotations, then verifies corrected counterparts against the same expected URL map. All documents and response records are fictional. Running the checker on 6 October 2026 produced 23 diagnostic entries before correction and none afterward; these are fixture findings, not separate store incidents or measured SEO gains.

The broken US mock contains competing canonical destinations and repeated Canada English annotations. Canada's English mock points its canonical at the US edition and omits the US return link. Canada's French mock lacks its own alternate reference and carries a deliberate noindex directive. A retired alternate has no captured counterpart.

The report distinguishes an uncaptured destination from a confirmed HTTP failure. No request occurs. Its availability fields come from invented manifest records, so a missing snapshot means the checker lacks evidence about that address. This distinction prevents a local export gap from becoming a fabricated storefront outage.

python -B audit.py before
python -B audit.py after
python -B audit.py after --matrix
python -B test_audit.py

Run those commands inside the fixture folder with Python. The audit prints JSON or CSV and leaves inputs unchanged. Saved actual reports, expected diagnostics and relationship matrices accompany the sample. The standard-library implementation needs no account credentials, external package installation or network access.

The local run passed 17 regression tests, including separate mutations for missing returns, case variation, relative destinations, canonical conflicts and access restrictions. Both fallback-present and fallback-absent configurations pass when otherwise coherent. A clean result confirms only the rules this checker exercises; inspect its scope before adapting it to another storefront.

How should you trace conflicting annotations?

Trace a conflicting tag to its owner before changing configuration. Shopify's theme guidance provides an automatic-tag setting for setups with a replacement implementation and describes exceptions such as separate stores (Shopify, manual hreflang management, checked 2026-10-06). That option doesn't make disabling automatic output the default audit remedy.

Search theme layouts, snippets, app settings and browser-injected elements for the offending address. Record who maintains each generator and which products it affects. A stale hardcoded handle can appear correct on the sample product while sending unrelated items to that same destination.

Prepare a correction that leaves one coherent implementation responsible for the relationships. Where an unnecessary custom block duplicates the platform output, review its removal in a theme preview. Where a separate-store architecture needs custom coordination, document the replacement coverage before changing the automatic setting.

Retest the entire group after the proposed fix. Did removing the conflicting block also remove a valid French reference? A comparison of captured heads answers that directly. Editing one visible tag and declaring success skips the ownership problem that caused the duplication.

Retest accessibility and representative products

Verify that each intended destination can actually deliver its regional product content. Record response status, redirect destination, crawl permission and indexing directives separately. Google documents noindex in HTML or response headers as an instruction preventing search appearance (Google Search Central, robots meta and X-Robots-Tag specifications, checked 2026-10-06). An alternate link doesn't cancel it.

A successful browser visit is only part of the evidence. Check whether a location redirect, password screen or unavailable-product message changes what the requested address serves. Review robots rules and headers alongside the captured content. Never report the fixture's invented status fields as actual network observations.

Choose samples that challenge the implementation

Sample a newly launched SKU, a translated handle, a seasonal item excluded from Canada and a discontinued listing. Add a domain migration if applicable. Those cases probe provisioning, handle translation, catalog eligibility and obsolete destinations. Record exclusions explicitly, so intentional gaps don’t become false positives.

Keep operational verification separate from search observation. Google's canonical guidance describes canonical declarations as signals, rather than a binding selection instruction (Google Search Central, canonicalization methods, checked 2026-10-06). On a real property, compare available indexed-page evidence after recrawling; an offline pass cannot predict Google's selected URL, indexing schedule or rankings.

What else matters for US and Canada hreflang?

Decide translation coverage and fallback behavior from the actual storefront design. They're related to the audit, but neither should be inferred from the shopper's currency. The fictional example has a published French counterpart and no fallback annotation by default, allowing the checker to demonstrate those assumptions without prescribing another store's configuration.

Does changing currency create Canadian alternate URLs?

A different price display doesn't prove that a distinct Canadian product address exists. Check the configured domain or subfolder and visit the resulting URL directly. If both audiences use the same address, don't invent an alternate page merely to complete a spreadsheet. Establish the URL inventory first.

Is x-default mandatory for this audit?

No. Google recommends x-default for unmatched language settings, particularly selector or fallback pages (Google Search Central, x-default guidance, checked 2026-10-06). Shopify documents automatic fallback output to the primary domain (Shopify Help Center, automatic tag structure, checked 2026-10-06). Inspect any supplied destination; absence alone isn't a universal failure.

Should an app repair missing French annotations?

First confirm the French product exists, its language is published and its address belongs to the intended market. Then inspect the automatic output and competing generators. Adding another annotation source before understanding the omission can obscure the defect. Fix configuration or ownership at the layer that actually causes it.

Finish with evidence your team can review

Close the audit with a reproducible issue record: expected audience mapping, captured heads, conflicting destinations, proposed owner and retest findings. Keep local simulation results labeled throughout. The fixture's corrected HTML illustrates a coherent relationship set; it isn't a Liquid patch to paste into a live theme.

For an implementation review, the technical SEO service scope describes related crawling and indexing checks. Carry this evidence forward, then observe the real property's behavior after the change.

Documentation retrieved 6 October 2026: Shopify theme hreflang; Shopify Markets international SEO; Google localized versions; Google canonical guidance; Google robots directives. Vendor documentation establishes intended behavior; the fictional fixture supplies local diagnostic evidence.

Found an inaccurate instruction or changed platform behavior? Send a correction with the affected passage, documentation reference and reproducible evidence.

Capture one equivalent product across your configured markets, document disagreements and retest the complete relationship set after a reviewed correction.

Get in touch
B
Bikesh Tamang
SEO specialist and front-end developer in Kathmandu, Nepal. More about me →