SEO and GEO
International SEO and hreflang for ecommerce

In short
Multilingual SEO means giving every language and market its own crawlable URL and connecting those versions with hreflang annotations. For most ecommerce brands, subdirectories (brand.com/de/) are the best balance. Every hreflang set must be self-referencing, reciprocal, use valid ISO language and region codes, and ideally include an x-default fallback.
Contents
- How do you do SEO for a multilingual ecommerce store?
- Which URL structure should a multilingual store use?
- What is hreflang and why does it matter for ecommerce?
- How do you implement hreflang?
- What are the hreflang rules Google enforces?
- What are the most common hreflang mistakes?
- Should you auto redirect visitors by IP or language?
- Is translation enough, or do you need localization?
- How do Shopify and other platforms handle hreflang?
- Key takeaways
How do you do SEO for a multilingual ecommerce store?
Multilingual ecommerce SEO comes down to three things: a separate, crawlable URL for every language and market, hreflang annotations that tie those versions together, and content that is genuinely localized rather than just translated. Get those right and Google can show German shoppers your German product page and Dutch shoppers your Dutch one.
This guide walks through the URL structure options, how hreflang really works, and the errors that quietly undermine international visibility. The examples follow a brand based in one country expanding into several European and Gulf markets.
Which URL structure should a multilingual store use?
Google's documentation covers four main ways to structure an international site. They differ in setup cost, how clearly they signal a target country, and how much ongoing maintenance they need.
| Structure | Example | Pros | Cons |
|---|---|---|---|
| Country code domain (ccTLD) | brand.de | Clearest geotargeting signal, strong local trust | Separate domains, separate authority, higher cost |
| Subdomain | de.brand.com | Easy to set up, can use different servers | Users cannot always infer the target country |
| Subdirectory | brand.com/de/ | One domain, shared authority, low maintenance | Single server location, relies on hreflang |
| URL parameter | brand.com?lang=de | Quick to implement | Not recommended by Google, hard to segment |
For most growing ecommerce brands, subdirectories win. The link equity your main domain has earned flows to every language version, you manage everything in one place, and platforms such as Shopify support the setup natively. A ccTLD starts to make sense when you need a strongly local brand in one specific country and have a dedicated team and budget for that market.
Whatever you choose, avoid serving different languages on the same URL based on cookies or browser settings. Google recommends distinct URLs for each language version. If one address shows different content depending on the visitor, Googlebot will most likely see only one version and the rest will never appear in search.
What is hreflang and why does it matter for ecommerce?
hreflang is an annotation that tells Google which other language or regional versions exist for a page. If the same product has English, German and Dutch pages, hreflang explains that they are alternates and which audience each one serves.
For online stores the payoff is concrete. First, the right shopper lands on the right page: someone searching from Vienna reaches your German page with euro pricing. Second, near identical pages written in the same language for different regions, such as separate German pages for Germany and Austria, stop competing with each other because Google understands them as regional alternates.
One detail many teams miss: Google does not use hreflang or the HTML lang attribute to work out which language a page is in. It detects language from the content itself. A page with a German menu but untranslated product descriptions will not be treated as a strong German page, regardless of what the tag says.
How do you implement hreflang?
Google supports three ways to supply hreflang information, and it treats them as equivalent. Pick the one that is easiest to maintain on your stack and stick to it consistently.
- HTML link elements: Add link elements to the head of each page listing every version. This is the most common choice for ecommerce sites.
- HTTP headers: Used for non HTML files such as PDFs, by adding a Link header to the server response.
- XML sitemap: List alternates for each URL with xhtml:link elements in your sitemap. Large catalogs often prefer this because it keeps thousands of product pages lighter.
Example: here is what the HTML method looks like for a product page with Turkish, German and English versions:
<link rel="alternate" hreflang="tr" href="https://www.brand.com/tr/urun/deri-canta" />
<link rel="alternate" hreflang="de" href="https://www.brand.com/de/produkt/ledertasche" />
<link rel="alternate" hreflang="en" href="https://www.brand.com/en/product/leather-bag" />
<link rel="alternate" hreflang="x-default" href="https://www.brand.com/en/product/leather-bag" />
The exact same block belongs on all three pages. The English page lists itself, and the Turkish and German pages carry the same four lines.
What are the hreflang rules Google enforces?
The rules in Google's documentation look like small print, but skipping one can cause the whole set to be ignored.
- Self reference: Every page must list itself alongside the other versions.
- Return links: If page A points to page B, page B must point back to page A. Annotations that are not reciprocal may be ignored.
- Language codes: Use ISO 639-1 format (en, de, tr, ar, nl).
- Region codes: Optional, in ISO 3166-1 Alpha 2 format, and always after the language (de-AT, en-GB, nl-BE). A region code cannot be used on its own.
- Fully qualified URLs: Include the protocol and full address in every href.
- x-default: Defines the fallback page for users whose language matches none of your versions, usually a language selector or your international English version.
What are the most common hreflang mistakes?
The same problems come up again and again in international SEO audits:
- Wrong country code: Writing "en-UK" for the United Kingdom. The correct code is "en-GB"; "uk" is actually the language code for Ukrainian.
- Conflicting canonicals: If the German page canonicalizes to the English page, you are sending contradictory signals. Each language version should canonicalize to itself.
- Missing return links: A new market gets launched, tags are added only to the new pages, and the older versions never get updated.
- Redirecting or broken URLs: Every URL in an hreflang set should return a 200 status and be indexable.
- Pointing at noindex pages: Listing a page you have excluded from the index as an alternate is a contradiction.
- Half translated pages: A translated template with untranslated product copy misleads shoppers and search engines alike.
Since the old International Targeting report in Search Console has been retired, you need to catch these issues with a crawler and spot check key pages with the URL Inspection tool.
Should you auto redirect visitors by IP or language?
Google advises against automatically redirecting users to another version based on their detected language or location. Forced redirects can stop people from reaching the version they actually want, and they make it harder for Googlebot to discover every version. A better pattern is a dismissible banner that suggests the likely version, combined with a visible language and country switcher on every page.
The same logic applies to pricing. Showing euro prices on the German page and local currency plus shipping details on the Arabic page for Gulf shoppers helps conversion, but that content should be tied to the URL, not swapped in by a cookie.
Is translation enough, or do you need localization?
Machine translated pages published without review risk being seen as low quality content. More importantly, shoppers in each market search with different words. What one market calls a "leather backpack" becomes "Lederrucksack" in Germany and "leren rugzak" in the Netherlands, and the most searched variant is not always the literal translation. Run separate keyword research for each market and write category names, titles and meta descriptions from that data. Units, size charts, return terms and payment methods are part of localization too. When you build category pages in each language, the principles from our category page SEO guide apply in full.
Example: a home textiles brand entering the Dutch market that renames its categories based on Dutch search data, instead of translating them word for word, ends up matching the terms local shoppers actually type.
How do Shopify and other platforms handle hreflang?
On Shopify, when you create language and regional versions through Markets using subfolders or domains, the platform adds hreflang tags automatically. If your theme still contains hreflang lines that were hard coded earlier, they can conflict, so check the page source before launch. On any other platform, confirm from its documentation and the rendered source which page types (product, collection, blog) actually receive hreflang tags.
Whatever platform you use, ask three questions. Does the language switcher lead to the equivalent page or just the homepage? Are untranslated products live in other languages with empty or source language content? Does your sitemap include every language version?
If you would like a second pair of eyes on your URL structure and hreflang setup before entering a new market, you can request a free growth analysis from the Performetic team via our contact page.
Key takeaways
- Give every language and market its own crawlable URL; subdirectories are the most balanced option for most brands.
- hreflang sets must be self referencing and reciprocal, or they may be ignored.
- Use ISO 639-1 language codes and ISO 3166-1 Alpha 2 region codes: "en-GB", never "en-UK".
- Add x-default as the fallback for users who match none of your versions.
- Replace forced IP redirects with a suggestion banner and a visible language switcher.
- Localize, do not just translate: every market needs its own keyword research.
Frequently asked questions
Does hreflang improve rankings?
hreflang is not a direct ranking factor. Its job is to help Google show the most appropriate version when the same content exists in several languages or regions. Done correctly, it prevents the wrong version from appearing, which indirectly improves click through rate and conversion for international shoppers.
Is x-default required?
It is not required, but it is recommended. x-default tells Google which page to show when a user's language or region matches none of your listed versions. Most stores point it at their international English version or a language selector page, so visitors from unlisted countries do not land on a random version.
Do I need separate pages for countries that share a language?
Separate pages make sense when price, currency, shipping or assortment differ by country, for example de-DE and de-AT versions for Germany and Austria. If the content is truly identical, a single German page tagged "de" is usually enough, and extra near duplicate versions only add maintenance work.
How do I find hreflang errors?
Search Console no longer offers a dedicated international targeting report, so crawl your site regularly with a tool that validates hreflang. Look for missing return links, invalid language or region codes, and URLs that redirect or return 404. Then confirm your most important pages individually with the URL Inspection tool.