How to Translate Shopify Structured Data and Schema Markup for International SEO
Most Shopify merchants translating their stores obsess over product descriptions and meta titles — and completely ignore structured data. That's a mistake, because untranslated schema markup means Google may serve English rich results to French or German shoppers, costing you click-throughs before a customer ever lands on your store.
Getting Shopify multilingual schema markup right is one of the less-talked-about levers in international SEO, but it directly affects whether your product listings show star ratings, prices, and availability in search results across every language you target. This guide gives you a concrete plan to handle it properly.
What Is Structured Data and Why Does It Matter for Multilingual Stores?
Structured data is machine-readable code — typically JSON-LD — embedded in your page's <head> or <body> that tells search engines exactly what your content represents: a product, a breadcrumb trail, an article, a FAQ. When Google reads it correctly, it can generate rich results: star ratings, price ranges, availability badges, and more in the SERP.
For a multilingual store, the challenge is that schema markup is generated by your Shopify theme, usually dynamically, pulling from your store's content. If your theme outputs a Product schema with an English name and description, that English text gets indexed even when a French shopper hits your /fr/ URL — undermining both your rankings and your brand impression.
The good news: structured data is locale-specific by design. Google explicitly states that schema on a page should match the language of that page's visible content. That means your translated pages need translated schema.
Which Schema Types Are Most Critical to Translate?
Not all schema types carry equal weight for e-commerce. Prioritise these:
Product Schema
This is the highest-impact type for any shop. It contains:
name— product titledescription— product descriptionoffers(includingpriceCurrency,availability)brandsku
The name and description fields must match the language of the page. priceCurrency should reflect the local currency (e.g., EUR for Germany, JPY for Japan) — something closely tied to how you've configured Shopify Markets.
BreadcrumbList Schema
Breadcrumbs help Google understand site structure and appear in SERPs. The item name values within a breadcrumb schema should be in the local language — "Accueil" not "Home" for French pages.
Article / BlogPosting Schema
If you translate blog content (which you absolutely should — see how to translate Shopify blog posts for international readers), the headline and description in your Article schema need to match the translated content.
FAQPage Schema
FAQ schema can generate rich results directly in search. If your FAQ page is translated, the Question and Answer text in the schema must be translated too — otherwise Google sees a mismatch between visible content and structured data, which can suppress rich results entirely.
AggregateRating Schema
Review data fed into schema should ideally come from reviews in that language or be handled carefully. For a deeper look at managing this, read how to handle multilingual product reviews and social proof when selling across borders.
How Shopify Themes Generate Schema (and Where Things Break)
Most Shopify themes — including Dawn and other popular free themes — generate JSON-LD schema dynamically using Liquid, pulling directly from product.title, product.description, and similar variables. Here's a simplified example from a typical theme:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "{{ product.title | escape }}",
"description": "{{ product.description | strip_html | escape }}"
}
</script>
When a shopper visits your /fr/products/your-product URL, Shopify serves the French translation of product.title and product.description — if those translations exist in Shopify's translation layer. This means:
- If your translations are complete and published, most well-coded themes will automatically output the correct translated values in schema.
- If translations are missing, incomplete, or unpublished, the schema will fall back to your default language — silently corrupting your multilingual SEO.
The fix: ensure 100% translation coverage for product titles, descriptions, and collection names before worrying about the schema code itself. Tools that show translation completeness per language per content type are invaluable here. StoreLingo's dashboard flags untranslated content so you can see gaps before they become ranking problems.
Practical Steps to Audit and Fix Your Multilingual Schema
Step 1: Test Each Language URL in Google's Rich Results Test
Go to search.google.com/test/rich-results and test your product URLs in each language (e.g., yourstore.com/fr/products/example). Check:
- Is the
namein French (or whichever language)? - Does
descriptionmatch the page's visible text? - Is the breadcrumb using localised names?
If you see English content in the schema for a non-English URL, you have a translation gap.
Step 2: Check Translation Completeness First
Before touching theme code, verify that your product titles, descriptions, and collection names are fully translated and published. Incomplete translations are the most common cause of schema language mismatches. Using bulk translation tools can close gaps across hundreds of products efficiently.
Step 3: Inspect Your Theme's Schema Liquid Files
In your theme code, look for files like product.json.liquid, snippets/structured-data.liquid, or schema blocks inside templates/product.liquid. Confirm they use product.title and product.description rather than hardcoded English strings. If a developer has hardcoded content (e.g., a static "name": "Our Store" in breadcrumbs), that needs to be replaced with a Liquid variable.
Step 4: Handle priceCurrency and availability Correctly
These fields are less about language and more about locale accuracy. Ensure:
priceCurrencymatches the currency shown to that market (use Shopify Markets currency settings)availabilityuses Schema.org values (https://schema.org/InStock) — these are standard URLs, not language-specific, so no translation needed
Step 5: Validate After Publishing Translations
Once translations are live, re-run the Rich Results Test and also submit your sitemap through Google Search Console to prompt re-crawling. Monitor impressions by country over the following weeks to see whether rich results begin appearing in new markets.
What About Schema for Translated Meta Fields?
Shopify's SEO meta title and description (the fields that appear in search results) are separate from schema. Both matter. Your schema description should ideally align with your meta description — a consistent signal to Google about what the page is about. For a full breakdown of why translated meta fields are non-negotiable, see why translated meta titles and descriptions make or break multilingual SEO.
StoreLingo translates SEO meta fields alongside product and collection content, so both your visible meta tags and the content driving your schema values stay in sync across all 47 supported languages.
Common Mistakes to Avoid
- Translating visible content but not publishing it — unpublished translations don't affect what Liquid variables output, so your schema stays in the default language
- Using a translation app that works via JavaScript overlay — overlay-based tools replace text in the browser after page load, meaning crawlers see the original language in both the visible content and the schema
- Ignoring breadcrumb schema — it's often overlooked but breadcrumbs appear in SERPs and should use localised collection and page names
- Forgetting blog and page schema — if you've invested in translating editorial content, make sure Article schema reflects it; see how to translate Shopify pages for context on what content types need attention
The Advantage of Native Shopify Translations
Apps that store translations in Shopify's native translation layer (using the Translations API) automatically feed the correct language into Liquid variables — which means your theme's dynamically generated schema is correct by default. This is a meaningful architectural difference from overlay-based translation approaches, and it's why Shopify's multilingual SEO best practices recommend native translations over JavaScript-based workarounds.
StoreLingo uses Shopify's native translation layer exclusively, so when your French translations are published, product.title outputs the French title everywhere — including in your JSON-LD schema — without any extra configuration.
Add StoreLingo on the Shopify App Store →
FAQ
Does Shopify automatically translate schema markup when I add translations?
Yes — if your theme uses Liquid variables like product.title and product.description to build JSON-LD schema (which most modern themes do), publishing translations through Shopify's native translation layer will automatically update the schema output for each language URL. The key is ensuring translations are complete and published, not just saved as drafts.
Will untranslated schema markup hurt my rankings in international markets? It can. Google's guidelines state that structured data should match the language of the page's visible content. A mismatch — English schema on a German product page — may prevent rich results from appearing for that URL, and could be treated as a low-quality signal for that locale. It's unlikely to cause a manual penalty, but it does suppress the rich result features that improve click-through rates.
Do I need to translate schema values like @type, availability, and priceCurrency?
No. Schema.org vocabulary terms (@type, @context, availability URLs like https://schema.org/InStock) are standardised and language-agnostic — leave them as-is. Only human-readable text fields like name, description, headline, and breadcrumb item names need to be in the local language.
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 →