In brief
- Shopify stores can publish up to 20 languages on the Basic, Grow and Advanced plans and up to 30 on Shopify Plus, using subfolders such as example.com/fr or separate domains and subdomains such as de.example.com.1
- Shopify adds hreflang tags automatically and includes every published language in the sitemap, so the SEO plugin configuration that handled this on WordPress is not rebuilt.1
- Translated URL handles are supported: /en-ca/products/shoes can become /es-mx/productos/zapatos, but the path word products itself cannot be translated.2
- Product, article and blog tags cannot be translated on Shopify.1
- Existing translations can be imported by CSV through Shopify's Translate & Adapt app or the language settings; the import does not generate translations, it loads the ones you supply.2
- WPML stores that use the ?lang= URL parameter need special care, because Shopify documents that redirects for URLs with query strings may not work as expected.34
Two different models
WPML and Polylang make WordPress multilingual by duplicating content. A product that exists in English, German and French is three posts with three IDs, linked together as translations of each other. WooCommerce Multilingual then keeps stock, prices and attributes in sync between the copies.
Shopify works the other way round. There is one product, with one inventory record and one set of variants, and translated text is attached to its fields. Nothing has to be synchronised because nothing is duplicated.
| Topic | WooCommerce with WPML or Polylang | Shopify |
|---|---|---|
| A translated product | A separate post per language | One product with translations |
| Stock | Synchronised between copies by the plugin | One inventory record |
| hreflang | Generated by the multilingual or SEO plugin | Automatic1 |
| Language limit | None in practice | 20, or 30 on Plus1 |
| Checkout language | Translated by plugin string translation | Pre-translated in 33 languages1 |
| Different catalog per language | Possible: a product can simply lack a translation | Handled through Markets and publishing, not through missing translations |
The migration trap
A naive export of a WPML store contains every product once per language. Imported as is, a 500-product store in three languages becomes 1,500 Shopify products with split inventory. The export has to be grouped by WPML's translation group first: the default-language post becomes the product, the others become its translations.
Language URLs
WPML offers three URL formats: languages in directories (example.com/es/), a different domain or subdomain per language (example.de, de.example.com), and the language as a parameter (example.com/?lang=fr). It can also place the default language in a directory.3 Shopify supports the first two: subfolders and language-specific domains or subdomains.1
| WPML format | Example | Shopify equivalent |
|---|---|---|
| Directories | example.com/fr/produit/chemise-en-lin/ | example.com/fr/products/chemise-en-lin |
| Domain per language | example.fr/produit/chemise-en-lin/ | example.fr/products/chemise-en-lin, domain assigned to the language or market |
| Subdomain per language | fr.example.com/… | fr.example.com/products/… |
| Parameter | example.com/product/linen-shirt/?lang=fr | No equivalent; move to subfolders |
| Default language in a directory | example.com/en/… | The primary language normally sits at the root; redirect /en/… to the root paths |
Note that WooCommerce usually translates the permalink base too, for example /produit/ or /produkt/. On Shopify the handle can be translated but the word products cannot.2
Redirects per language
Every language multiplies the redirect map. A store with 500 products, 30 categories and 40 pages in three languages has roughly 1,700 old URLs, and each translated URL should land on the same language on Shopify. Sending /fr/produit/chemise-en-lin/ to the English product page throws away the French ranking.
- Keep translated slugs as translated handles. If the French slug stays
chemise-en-lin, the redirect is a prefix change, exactly as in the redirects guide. - Count against the limit. Shopify allows 100,000 URL redirects per store, 20 million on Plus; multilingual catalogs reach that sooner.4
- Parameter URLs. Shopify documents that redirects for URLs containing query strings may not work as expected.4 For
?lang=sites, check in Search Console how many parameter URLs actually receive traffic; for a large set, handle the redirect at the DNS or CDN layer in front of Shopify. - Separate domains need the old domain pointed at Shopify and assigned to the language, so its paths resolve and redirect there.
Importing the translations you already have
Shopify's free Translate & Adapt app, or the language settings in the admin, export a CSV of every translatable field and import it back with the translated values filled in. Shopify is explicit that the import loads your content and does not generate translations.2 The app's automatic translation covers up to two languages,5 which is one more reason to bring your own. That is what you want: the human translations from WPML are an asset, and machine-translating the catalog again would replace them with something worse.
- Export from WordPress with the language relationship. For each translation group: the default-language ID, and per language the title, description, short description, slug, SEO title and meta description, and attribute and variation labels.
- Import products once, in the primary language.
- Export Shopify's translation CSV for each language. It lists every field with an identifier and the default content.
- Fill it by joining on the product handle and field, then import.
- Do the same for collections, pages, blog posts, navigation and theme strings. Theme and checkout text usually arrives pre-translated; the checkout has pre-translated content for 33 languages.1
What cannot be translated
- Tags. Product tags, article tags and blog tags cannot be translated by any method.1 If the WooCommerce store shows translated tags to shoppers as filters, move that information to metafields or product options, which can be translated.
- The path words.
products,collections,pagesandblogsstay in English in every language.2 - More than 20 languages on standard plans; 30 on Plus.1
- A theme that is not multilingual-ready. The active theme must be compatible with selling in multiple languages and needs a language selector.1
Currency and Markets
WPML stores usually pair languages with a multi-currency plugin, and the two are configured separately. On Shopify both belong to Markets: a market groups countries and sets their language, currency, domain or subfolder, and optionally its own prices and catalog. Before migrating, write down the actual combinations you sell in, for example Germany in German and euros, Switzerland in German and francs, and build markets from that list rather than from the list of WPML languages.
Step by step
- Inventory the languages: which are complete, which are partial, which get traffic. Partial languages with no traffic are candidates to drop.
- Record the URL format and the translated permalink bases.
- Group the export by translation group so each product is created once.
- Import the primary language, then translations by CSV.
- Set up markets, domains or subfolders to mirror the old structure as closely as Shopify allows.
- Build the redirect map per language and import it before launch.
- Verify hreflang and the sitemap on the live store, and submit the sitemap in Search Console for each domain property.
Multilingual stores are migrated as one catalog with translations, not as copies.
- Products grouped by WPML or Polylang translation group
- Existing human translations imported, not re-translated
- Translated handles kept for clean redirects
- Redirect map built per language
- Markets set up from how you actually sell
- Preview before you pay
Frequently asked questions
How many languages does Shopify support?
A store can publish up to 20 languages on the Basic, Grow and Advanced plans and up to 30 on Shopify Plus, according to Shopify's help centre.
Can I keep my WPML translations when moving to Shopify?
Yes. Shopify imports translations from a CSV file through the Translate & Adapt app or the language settings. The import loads the translations you supply, so the existing WPML or Polylang translations can be reused instead of translating the catalog again.
Does Shopify add hreflang tags automatically?
Yes. Shopify adds hreflang tags for language-specific URLs and includes all published languages in the sitemap, so no plugin or manual markup is needed.
Can product URLs be translated on Shopify?
The handle can: /en-ca/products/shoes can become /es-mx/productos/zapatos according to Shopify's documentation. The path word products itself cannot be translated.
Why does my WPML export contain every product several times?
Because WPML stores each language as a separate post. The export has to be grouped by translation group so that the default-language post becomes the Shopify product and the other posts become its translations. Importing them all as products splits inventory and triples the catalog.
What happens to ?lang= URLs?
Shopify has no language parameter format and documents that redirects for URLs with query strings may not work as expected. Move to subfolders, check which parameter URLs receive traffic, and handle large sets with redirects at the DNS or CDN layer.
Sources
- Shopify. Selling in multiple languages, Shopify Help Center: language limits, URL structure, hreflang, untranslatable content, checkout languages, theme requirements.
- Shopify. Translate & Adapt, Shopify Help Center: CSV import of translations and translated URL handles.
- WPML. Language URL options.
- Shopify. Creating and managing URL redirects, Shopify Help Center: limits and query strings.
- Shopify. Translate & Adapt, Shopify App Store listing: free, automatic translation for up to 2 languages.
Mufatech Studio migrates stores to Shopify. Figures are quoted from the linked documentation as of September 2026 and can change; check the source before acting on a limit or a price.