If your Shopify translation is not working, the cause is almost never a single bug, it’s one of about a dozen distinct points where the translation chain breaks: a language added in Markets but never published, a theme with no language selector, content types Shopify simply doesn’t auto-translate, edits that never re-synced, a stale cache, or an SEO tag pointing Google at the wrong language. This guide walks the entire diagnostic tree, symptom to cause to fix, so you can find your specific break fast.
Shopify’s translation stack has several moving layers, Markets, the Translate & Adapt app, your theme, third-party apps, the CDN, and the hreflang/canonical tags Google reads. A failure in any one of them looks the same from the storefront: the wrong language shows up. The trick is knowing which layer is at fault. Let’s isolate it.
Quick diagnosis: why your Shopify translation is not working
Before changing anything, find your symptom in this list. Each points to a section below.
- Nothing is translated anywhere → language not published, or not attached to a market. Jump to Fix 1.
- Shoppers have no way to change language → missing storefront language selector. Fix 2.
- Only two languages auto-translated → you hit Translate & Adapt’s auto cap. Fix 3.
- Product pages translate, but menus, buttons, or hero text don’t → theme customizer content isn’t covered by product translation. Fix 4.
- Policies, filters, forms, or app content stay in the original language → those resource types aren’t auto-translated. Fix 5.
- You edited a product and the translation didn’t update → native tools don’t re-sync edits. Fix 6.
- The old language keeps showing after you switch → caching or CDN. Fix 7.
- Storefront is right, but Google shows the wrong language → hreflang or canonical problem. Fix 8.
Work top to bottom, the earlier causes are more common and cheaper to rule out.
Fix 1: Language added in Markets but not live
Symptom: You added a language, translated content inside your app, but the live store shows nothing.
Cause: Shopify serves translated content through Markets, and a language has to be both published and attached to a market before it appears. Adding it in the Translate & Adapt app or the Languages screen is only step one.
Fix:
- Go to Settings > Languages. Confirm your target language sits under Published languages, not Unpublished. If it’s unpublished, click Publish.
- Go to Settings > Markets. Open the market that covers the region you’re targeting.
- Under the market’s language settings, confirm your language is added and available.
If a language is translated but the market only lists your primary language, the translation has nowhere to render, which reads exactly like “translation not working.” Add the language, save, and reload.
Publish AND attach every time
The single most common false alarm is a language that’s translated and published but never added to the market. Confirm both before you assume anything is broken. Two clicks in Settings > Markets solves more “not working” reports than any code change.
Fix 2: The theme has no language selector
Symptom: Everything is published, but visitors always land in the primary language with no way to switch.
Cause: Publishing a language doesn’t add a selector to your theme. Without one, shoppers can’t reach the translated storefront, and geolocation redirects only cover a subset of visitors.
Fix:
- Go to Online Store > Themes and click Customize.
- Open your header or footer section.
- Add the Language selector block, most Online Store 2.0 themes, including Dawn, ship one.
- Save and preview; you should see a dropdown.
If your theme is a custom or older build without a selector, add one through theme settings or a Shopify-recommended geolocation app. Our Dawn theme translation guide walks through placing the selector correctly.
Fix 3: Only 2 languages auto-translated
Symptom: You enabled five languages, but only two filled in automatically.
Cause: This is a documented limit, not a fault. Per Shopify’s Help Center, Shopify’s free Translate & Adapt app auto-translates a maximum of 2 languages (as of July 2026). Additional languages must be translated manually.
Fix: Either translate the extra languages field by field inside Translate & Adapt, or move to a dedicated app that auto-translates every language you enable. This is a structural wall rather than a setting, you can’t toggle past it. We cover the workarounds in depth in Shopify Translate and Adapt not working, which digs into the native app specifically.
Fix 4: Theme customizer text isn’t translated
Symptom: Product titles and descriptions translate fine, but your announcement bar, navigation labels, button text, or homepage hero copy stay in the original language.
Cause: Product-level translation covers products, collections, pages, and blog posts. Text you typed directly into the theme customizer, section headings, custom buttons, banner copy, is stored separately as theme content and translated through a different path. Many merchants translate their catalog and assume the whole storefront followed.
Fix:
- In Translate & Adapt (or your translation app), look for the theme content or static content category, distinct from products and collections.
- Translate the customizer strings there, headings, labels, buttons.
- For hardcoded strings that live in the theme’s own locale files (
locales/en.default.jsonand its siblings), you may need to edit those files or the relevant section’s language settings directly.
Theme content is one of the most-missed layers because it’s invisible until a shopper switches languages and sees English buttons on a French page.
Fix 5: Policies, filters, forms, and app content
Symptom: Your refund policy, collection filters, contact form, or a reviews widget stays in the original language even though everything else translated.
Cause: Shopify’s auto-translation doesn’t cover every resource type. Per Shopify’s Help Center, store policies, collection filters, forms, payment method instructions, tags, and product images are outside product-level auto-translation, and third-party apps store their own strings entirely separately.
Fix (by type):
- Store policies (refund, privacy, terms): manual-only. Write localized versions and paste them in per language.
- Collection filters and forms: often live in theme locale files or the app that renders them, check the theme’s language settings or the app’s own configuration.
- Third-party app content (reviews, upsells, subscriptions): open the app’s settings and look for its own translation or localization panel. These strings never pass through Shopify’s Translations API, so no Shopify translation tool can reach them, and neither can LocaleFlow.
- Metafields and metaobjects: these are reachable through the Translations API but native tools give limited control. An app that reads deeper, including metafield-level control, closes most of these gaps for Shopify-native content.
Fix 6: Edited content that never re-synced
Symptom: You updated a product description or a seasonal banner, refreshed the translated storefront, and the old translation is still there.
Cause: Shopify’s native tools do not re-translate automatically when you edit the source. The existing translation stays frozen until you manually re-translate that field. This is easy to miss because nothing errors, the old text just lingers.
Fix:
- Open your translation app.
- Select the resource you edited.
- Find the changed field, re-translate or correct it, and save.
Fine for the occasional edit. But if you change prices, descriptions, or campaign copy often, you’ll be chasing stale strings across every language. Auto-sync solves this: LocaleFlow detects the edit and re-translates the moment source content changes, so the storefront never drifts out of date.
Fix 7: Caching and CDN serving a stale language
Symptom: You published or fixed a translation, but the storefront still shows the old language for a while, or intermittently.
Cause: Shopify serves storefront pages through a CDN, and browsers cache aggressively too. Right after you change a translation or a market setting, a cached copy can persist for a few minutes before it clears.
Fix:
- Hard-refresh the page (Cmd/Ctrl + Shift + R) and test in a private/incognito window to bypass your browser cache.
- Check the URL locale prefix, a correctly served French page carries
/fr, German/de, and so on. If the prefix is missing, the market-to-language routing is off, not the cache. - Give CDN propagation a few minutes after publishing before concluding a translation “didn’t work.”
If a stale language survives a hard refresh in a clean session after several minutes, it’s not caching, return to Fix 1 and re-check the market pairing.
Fix 8: Google shows the wrong language (hreflang and canonical)
Symptom: Your storefront switches languages perfectly, but Google search results, link previews, or AI Overviews show the original language for a translated page.
Cause: This is an SEO-layer failure, separate from your storefront. Two culprits dominate:
- Missing or broken hreflang: search engines need reciprocal hreflang tags linking every language version of a URL. Without them, Google can’t tell your French page is the French version of your English page.
- Wrong canonical: if a translated URL’s canonical points back at the primary-language URL, Google treats the translation as a duplicate and serves the original instead.
Fix:
- Confirm each localized URL self-canonicalizes (the French page’s canonical points to the French URL, not the English one).
- Confirm reciprocal hreflang, every language version lists all the others, including a
x-default. - Validate with a crawler or Google Search Console’s international targeting report, then request re-indexing.
Shopify with Markets generates hreflang for published market languages automatically in most themes, so this usually surfaces when a language is published but not correctly attached to a market, tying this fix straight back to Fix 1.
When it’s a limit, not a bug
Some of these aren’t fixable with a setting because they’re structural to the native tools:
- The 2-language auto cap
- No auto-sync when you edit source content
- Unsupported resource types and thin metafield control
- No glossary or term-locking for consistent brand names
These are the ceilings merchants hit as they grow. LocaleFlow stores translations natively through the same Shopify Translations API, so content still lives in your admin, while auto-translating all your Markets languages, auto-syncing edits, and covering products, collections, theme content, and metafields with field-level control. It does not reach into unrelated third-party apps, because those strings never touch Shopify’s Translations API; nothing does.
The stakes are real. CSA Research found that 76% of shoppers prefer buying in their native language, and 40% won’t buy in another language at all. A store that’s “translated” but leaking untranslated policies, stale edits, or the wrong language in Google is quietly losing those buyers.
Conclusion
Shopify translation not working almost always resolves to one identifiable layer: publish and attach the language in Markets, add a selector to the theme, translate theme content and policies separately, re-sync your edits, clear the cache, and fix hreflang so Google shows the right language. Walk the tree in order and you’ll find your break fast.
When the blocker is structural rather than a setting, that’s the signal to move to a dedicated app. Install LocaleFlow from the Shopify App Store and start translating today., Start translating.


