1. Selection of target countries and planning of the site architecture
  2. Structure of hreflang tags and target groups
  3. Other hreflang considerations
  4. Implementation of Hreflang for your multilingual website

SEMrush found in 2017 that 75% of websites have hreflang implementation errors and after four years this doesn't seem to have improved much.

In my own 2020 study of 1,926 Salesforce Commerce Cloud websites, I found that 63% of websites implemented with Hreflang had errors.

Localization and user issues like an Arabic website that doesn't read right to left are likely to add to these numbers as well.

In this column, you will learn about the different facets of a multilingual website that you need to plan, how to structure your hreflang tags, and how to successfully implement your hreflang strategy.

Selection of target countries and planning of the site architecture

When planning your international online expansion and deciding on target markets, you also need to consider how you will target them.

There are four main ways that URL structure can reflect internationalization:


Read on below

Use different ccTLDs

Use different ccTLD domains. This is seen as the best course of action to target Russia and China in particular. A practical example of this is Hartley Botanic.

International subdomains

Use a single domain, usually a gTLD, and use language-specific subdomains. A real-world example of this is CNN, which uses a subdomain to differentiate between the English websites in the US and the UK.

International subdirectories

When using a single domain, usually a gTLD, different language and content zones are addressed via a subdirectory. An example of this in practice is BeatsByDre.

Anecdotally, this is often a preferred approach by developers.

Append parameters

I don't recommend implementing this method, but I see it very often. Here is the domain with a? Lang = de parameter or similar appended.

It's also worth noting that some third-party tools flag parameters hreflang as errors because their own bots do the? -Don't recognize parameter strings.

Structure of hreflang tags and target groups

Hreflang always begins with the target language, but can then consist of other variables, such as


Read on below

  • Language: "En", "es", "zh" or a registered value.
  • Script: "Latn", "Cyrl" or other ISO 15924 codes.
  • Region: ISO 3166 codes or UN M.49 codes.
  • Variant: Like "Guoyu", "Latn", "Cyrl".
  • Extension: Single letter followed by additional day.

Regardless of how targeted your tags are, they must also be in the following format:

{Language} – {extlangtag} – {script} – {region} – {variant} – {extension}

Probably the most common interpretation of the above that the majority of us will be familiar with is {language} – {region}.

However, if you work a lot in Chinese-speaking countries, you are more likely to use {language} – {script} – {region}, e.g. B. zh-Hans-cn (Simplified Chinese for mainland China).

The specifications of the Internet Engineering Task Force (IEFT) can be found here.

Language day

The supported language code comes from the ISO 639-1 classification list. In some cases, however, the extended language tag {extlangtag} can be used alone.

Extended language tag

{extlangtag} tags are sub-tags that can be used to specify selected languages ​​that are closely identified with an existing subtag of the primary language. Examples for this are:

  • zh-yue: Cantonese Chinese.
  • ar-afb: Gulf Arabic.

The extended language tags come from the ISO339-3 classification list.

There is also code in this classification list for en-eng that is the extension code for English – and therefore en-eng works when implemented as English for England (but not as intended).


The script subtag was introduced in RFC-46464 and comes from the list of ISO 15924 classification lists. Only one script subtag can be used per hreflang tag.

Examples for this are:

  • uz-Cyrl: Uzbek in the Cyrillic script.
  • uz-Latn: Uzbek in Latin script.
  • zh-Hans: Chinese in the simplified script.
  • zh-Hant: Chinese in the traditional script.


Read on below


Region codes come from the ISO 3166-1 Alpha-2 list and together with the language tag.

Common mistakes include trying to target "RW" as the rest of the world when it is the country code for Rwanda and "LA" as Latin America when it is Laos.


The variant subtag can be used to specify dialects or script variants that are not covered by the language, the extended language or region tag.

Unless you work in niche and specialty areas, it is highly unlikely that you will encounter different underground days. Examples of these variants are:

  • sl-SI-nedis: The Nadiza dialect of Slovenia spoken in Slovenia.
  • de-DE-1901: The variant of the German spelling spoken in Germany from the reforms of 1901).


Extension subtags enable extensions of the language tag, e.g. E.g. the extension tag "u" registered by the Unicode Consortium to add information about language or locale behavior.

It is highly unlikely that you will ever need to use these.


Read on below

If implemented correctly it should look something like this:

Other hreflang considerations

Target language or countries

Some of the problems I see with Hreflang implementations are that they are not made entirely in conjunction with business goals and objectives for the markets they are targeting.

For example, launching a Spanish website with the code hreflang = "es" not only targets Spain, but also provides a localized version for a number of other Spanish-speaking countries in Latin America, the Caribbean, and the Spanish-speaking population of the United States.

Correct implementation of hreflang is important to ensure that users are provisioned:

  • Content in the correct localized language.
  • Website templates that provide a familiar user experience (i.e. in Baidu items that open in new tabs).
  • Products, services and offers that are relevant to their country (and legal in their country) as failure can lead to poor customer experience, customer loss and negative reviews.

Return tags

If side A refers to side B via hreflang, side B must refer back to side A. If not, your hreflang may not be reading correctly.

These errors are highlighted in the Google Search Console. It is therefore important that profiles are set up for each localized version of the website.


Read on below

Absolute urls

There is a lot of debate about absolute and relative URLs. I always refer to Ruth Burr Reedy's Moz Whiteboard Friday on the subject.

When it comes to hreflang annotations, however, there is no debate – these must be absolute URLs referenced in the href subtag.

It is also important to note that when working on international users:

  • Don't use IP redirects as it can break Google's indexes (also keep in mind that Google is mostly crawling from the US).
  • If you're using a .com and have implemented one of the above, don't redirect your root domain to your "main website". Google uses the hreflang to direct users to the correct website.
  • Use x-default only to refer to a language selection page / default page for users worldwide. A good example of this in practice is IKEA, which behaves like a language selection. However, X-default can also be used to specify a default fallback version of the website for global users.

Implementation of Hreflang for your multilingual website

When implementing hreflang, you need to consider which countries you are targeting and whether users in those countries support Google as the dominant search engine.

Do all search engines support Hreflang?

There haven't been many developments in hreflang support in the past few years. However, Yandex officially introduced XML sitemap support in August 2020.

Search engine Does it support Hreflang?
Google Yes, both via HTML and via XML sitemap
Yandex Yes, via HTML and XML sitemap
Baidu No, you have to use the HTML Meta Language Tag
Naver No, you have to use the HTML Meta Language Tag
Bing No, you have to use the HTML Meta Language Tag
Seznam Yes, through HTML

The status of other search engines remains the same.


Read on below

Because of Bing's market share (which is much discussed around the world), best practice means always including both Hreflang and the HTML Meta Language Tag as part of an international technical specification.

Sometimes Google ignores errors when it works

In April 2018, Patrick Stox wrote this great article about errors in Hreflang that Google can (sometimes) elaborate and display content as if the tag implementation is in line with best practices.

One of them is the use of incorrect targeting codes.

Google can sometimes make wrong hreflang markup "make sense" and still display things correctly.Google can sometimes make wrong hreflang markup "make sense" and still display things correctly.

Eoghan Henn sparked the conversation on Twitter following SEO pros who saw the hreflang target en-UK and {language} -EU even though they are wrong.


Read on below

If Google can interpret the implementation, there is a vested interest in showing users the correct content.

However, Google's John Mueller continues:

"I suspect it doesn't really work (it would be interesting to test though) … IMO you don't want to implement anything in the * hope * that search engines can guess what you mean; it should be accurate and consistent instead."

Learn how to properly use and structure hreflang tags for multilingual websites to improve visibility and better serve your users in each market.

Further international search resources:

Photo credit

Screenshot by the author, March 2021


Please enter your comment!
Please enter your name here