Internal Linking for Multilingual Shopify Stores
Most Shopify merchants spend hours translating their store, then accidentally wire every internal link back to their English pages — quietly telling Google that the French, German, and Japanese versions don't quite stand on their own. Fixing that single structural problem can meaningfully shift how well your translated pages rank in each target market.
This guide covers exactly how multilingual internal linking works on Shopify, what breaks it, how to audit it properly, and how to keep it clean as your catalog grows.
Why Multilingual Internal Linking Is Different From Standard Internal Linking
Standard internal linking passes PageRank and tells crawlers how your site is structured. In a multilingual store, it does a third job: it signals to Google which language version of a page is the authoritative destination for users in a given locale.
When a customer lands on your /fr collection page and clicks through to a product, that link should resolve to /fr/products/nom-du-produit — not back to /products/product-name. If it resolves to the English URL, you have created a cross-locale link that undermines the French page's authority and confuses Googlebot about which version to surface in French search results.
This is not a theoretical concern. It compounds at scale: a store with 500 products translated into four languages can generate thousands of links that quietly route users and crawlers out of their intended locale.
For the foundational architecture that makes correct linking possible, see Shopify Markets Explained: A Merchant's Guide to Selling Globally and Subfolders vs Subdomains for Multilingual Stores: Which Wins? — the URL structure you choose directly affects how links resolve.
How Shopify Resolves Internal Links Across Markets
Shopify's native multilingual storefront (using Shopify Markets) serves localized URLs in one of three configurations:
- Subfolder —
yourdomain.com/fr/products/... - Subdomain —
fr.yourdomain.com/products/... - Country domain —
yourdomain.fr/products/...
This distinction matters for internal links because relative paths do not auto-localize in all configurations.
Subfolder stores
In subfolder setups, Shopify's theme typically prepends the locale handle automatically. A link like {{ product.url }} in Liquid will render as /fr/products/slug when the request is in the French market context. This is the most forgiving configuration for internal linking.
Subdomain and country domain stores
Here, relative paths do not automatically carry the locale. A relative link to /products/my-product from fr.yourdomain.com will resolve correctly only if the browser stays on the same subdomain — but hardcoded absolute URLs pointing to yourdomain.com/products/my-product will route users and crawlers entirely out of the French locale. This is a common and consequential mistake. In these configurations, any hardcoded links in theme customizations, landing page builders, or third-party app blocks must use locale-aware absolute URLs.
Practical check: After adding a new market, open DevTools on your French storefront, inspect any navigation or product links, and confirm the href attribute includes the correct locale prefix or subdomain. Do not assume the theme handles it.
Auditing Your Multilingual Internal Links: A Specific Workflow
Naming Screaming Frog without telling you what to look for is useless advice. Here is the actual process.
Step 1: Crawl each locale separately
In Screaming Frog (6.x+), go to Configuration → Spider → Crawl → Start URL and enter your French start URL (e.g., https://yourdomain.com/fr). Under Configuration → Include, add a rule to include only URLs containing /fr/. Run the crawl.
Export All Outlinks (Bulk Export → All Outlinks). In the exported CSV, filter the Destination column for URLs that do not contain /fr/. Any destination URL pointing to /en/ or a bare /products/... path is a broken cross-locale link.
Step 2: Cross-reference with hreflang
Export your hreflang data (Reports → Hreflang). A correctly structured page will show:
hreflang="fr"pointing toyourdomain.com/fr/products/slug-frhreflang="en"pointing toyourdomain.com/products/slug-en
A broken pattern looks like this in the output:
| URL | hreflang tag | Internal links from this page point to |
|---|---|---|
/fr/products/chaussure |
fr ✓ |
/products/shoe ← English URL ✗ |
When hreflang says "this is a French page" but the internal links route to English URLs, you are sending contradictory signals. Google's John Mueller has confirmed that inconsistent signals like this reduce the reliability of hreflang annotations. See Hreflang on Shopify: The Complete Guide to International SEO Tags for the full implementation details.
Step 3: Check navigation and collection links specifically
Collection pages are the highest-leverage internal linking surfaces in a Shopify store — they aggregate product links and receive significant crawl attention. If your French collection page links to 50 products but 50 links resolve to English product URLs, you have negated most of the SEO value of translating that collection. Read How to Translate Shopify Collections (and Why It Matters for SEO) for why collection translation is foundational, not optional.
Building a Correct Link Structure From the Start
Use Liquid's built-in URL helpers, not hardcoded strings
In theme code, always use {{ product.url | within: collection }} or {{ page.url }} rather than constructing URLs manually. Liquid URL filters are locale-context-aware in subfolder setups and reduce the risk of hardcoded English paths.
Audit app-injected links
Third-party apps — upsell widgets, review apps, recently viewed carousels — frequently inject hardcoded links that ignore locale context. After installing any app, crawl your French (or other non-primary) locale and inspect the outlinks the app blocks generate.
Blog posts: link within the same locale
If you translate your blog content, internal links within a French blog post should point to French product and collection URLs, not default English ones. How to Translate Shopify Blog Posts for International Readers covers the workflow for getting translated blog content live — but once it is live, make sure any product references inside the post use locale-specific URLs.
Monitor with Search Console per market
Google Search Console lets you filter by country target. After fixing cross-locale link issues, watch the Coverage and Pages indexed reports for each locale over the following four to six weeks to confirm crawl behavior improves. Using Google Search Console to Monitor Your Multilingual Store walks through the property setup and signals to watch.
Keeping Links Clean as Your Catalog Grows
The audit above is a one-time fix. The real challenge is prevention as you add new products, run new campaigns, and update pages.
A few durable habits:
- Standardize link creation in your theme once. If your Liquid templates use the correct URL helpers, every product card, breadcrumb, and recommendation block inherits correct locale handling automatically.
- Translate first, publish second. When you add a new product, translate it before it appears in collection pages. A French collection linking to an untranslated product page is a locale break. Tools that auto-translate new products — like StoreLingo's auto-translate feature — reduce the window between a product going live and its translations being available.
- Re-audit after major theme changes. Theme updates frequently reset customizations. Add a post-update crawl to your deployment checklist.
Add StoreLingo on the Shopify App Store →
FAQ
Does Shopify automatically fix internal links when I add a new language? Shopify's native Liquid URL helpers are locale-aware in subfolder market configurations and will render localized URLs automatically when used correctly in theme templates. However, hardcoded links in theme customizations, third-party app blocks, or manually written HTML are not touched by Shopify and must be audited and corrected manually.
Do internal links affect hreflang, or are they independent signals?
They work together, not independently. Hreflang tells Google which page serves which locale; internal links within that locale reinforce or contradict that signal. A French page with a correct hreflang="fr" tag but internal links consistently routing to English URLs sends contradictory signals that reduce Google's confidence in your hreflang annotations and can hurt ranking in French search results.
Should I use absolute or relative URLs for internal links in a multilingual Shopify store?
It depends on your market configuration. In subfolder setups, relative URLs rendered through Liquid helpers are reliable. In subdomain or country domain setups, relative paths can behave unexpectedly, especially in hardcoded theme sections or app-injected blocks — in those cases, locale-aware absolute URLs are safer. Always verify by inspecting rendered href attributes on your non-primary locale storefronts after any structural change.
Translate your store into 47 languages
StoreLingo translates products, collections, pages and articles with AI — review before publishing, keep your brand terms consistent.
Add to Shopify →