Let's say, your website offers content, products, or services for people from different regions or countries who speak different languages. Search engines will probably count this as duplicate content, leading to low rankings.
![international SEO](https://habrastorage.org/r/w1560/webt/vs/vk/na/vsvknan-zxfqjsyugscjsj0hj_8.png)
While I'm focused on international SEO in the last 8 years, with this article, I'll help you with basics to manage localized versions of your international site for better SEO.
![international SEO checklist](https://habrastorage.org/r/w1560/webt/fp/z6/x1/fpz6x17xyplz8w7ahwzdq__pu3q.png)
To let Google recognize the local versions of your content and point users to the most appropriate version of your content, use the <link rel=«alternate» hreflang="language code-country code"… >.
This way, you tell Google that there are specific URLs available for users who speak a particular language and come from a specific location. Google will use this information to show alternate URLs to those users in search results.
Google recommends to use the hreflang:
When adding the hreflang tag, use the bidirectional connection for every language (as in, alternate pages should point to each other). That's the only way (if you don't have a sitemap or the ability to specify HTTP response headers for your site) Google can understand the site's structure correctly. If the hreflang tag is unidirectional, it will be ignored.
The syntax of HTML hreflang link elements is:
Let's look at it in more detail:
Example
The site offers content targeted at:
This is how they should be linked (same code must appear on all 3 pages within the section ):
All content points to similar content in other languages (bidirectional links).
Note, hreflang accepts the ISO 639-1 format for languages and the ISO 3166-1 Alpha 2 format for countries.
1. Adding hreflang to an XML sitemap
This is an appropriate solution for large multilingual sites that share similar content between multiple domains. As your site grows, adding the hreflang tag to the section of every page can become very tedious.
You can add xhtml:link link element to the XML sitemap:
2. HTTP Headers
You can add the hreflang attribute to HTTP Headers of non-HTML files. Say, if you have PDFs in different languages and with different URLs, you can get your site to return HTTP headers with the hreflang annotation:
What's x-default?
Let's say, you're using the x-default value of the hreflang attribute instead of language- and region-identifying ISO formats. That way, you show Google, that you want to display this page when no other language/region matches the user's settings.
In other words, the hreflang=«x-default» attribute creates a fallback page for unmatched languages/regions.
Example
site.com/en-uk — the page for English-speaking users from the United Kingdom;
site.com/it-uk — the page for Italian-speaking users from the United Kingdom;
site.com/ — the default page for users worldwide.
So here is the syntax of the hreflang tag:
Consider adding a fallback page for unmatched languages, especially on language/country selectors or auto-redirecting homepages.
While an essential part of the targeting strategy, the hreflang tag is not a magic bullet.
Google judges the language and location of a webpage by:
![international SEO guide](https://habrastorage.org/r/w1560/webt/q8/yc/ik/q8ycik4ogwnzdncfkgjzpsuqgr0.png)
Country code top-level domains are strong signal Google uses to determine the location of a web page. With ccTLDs (.it, .cz, .ca, etc.) you're telling search engines that your site targets one particular country. This strategy also helps to remain a simple and elegant URL structure.
![international SEO strategy](https://habrastorage.org/r/w1560/webt/jl/pj/pm/jlpjpmab_pccyqz1n5xddbsnhwu.png)
Google uses its own algorithms and determines the language of the visible content on the page. Therefore, avoid using multiple languages on one page, or Google may associate your page with the wrong language/region. Still, it doesn't mean you can't use some words from other languages and expressions, such as brand names or product descriptions.
Search engines do NOT use lang attributes to determine the language on your page.
![international SEO 2019](https://habrastorage.org/r/w1560/webt/ml/_j/ov/ml_jovqfwabgzu0kk4fcehvrw_4.png)
Local currency, address, and phone number are all considered to be strong indicators of your location by Google. Add a physical address for every local version of a website — for Google, this is a strong signal.
If possible, create a Google My Business listing for every physical location of your company and link them to country-specific versions of your site so they will rank higher in the local search.
No matter how good Google Support or other sources describe managing multilingual sites, there is always a room for less obvious questions. I want to address two of them:
1. Are the ISO codes case-sensitive?
— No, both upper- and lowercase ISO codes are valid to Google, although it's best to follow the standards and use lowercase letters for the language codes and uppercase letters for the optional country codes.
2. Should I use a separate IP address for each locale-specific site?
— As said by the Google employee himself: "Would be wonderful, but it's not necessary". More on the subject in this short video.
I will try to answer other unexpected questions in the comments down below.
If you don't want Google to consider your localized pages to be duplicates, mark them properly. How to do that:
![international SEO](https://habrastorage.org/webt/vs/vk/na/vsvknan-zxfqjsyugscjsj0hj_8.png)
While I'm focused on international SEO in the last 8 years, with this article, I'll help you with basics to manage localized versions of your international site for better SEO.
International SEO ranking factor #1: Hreflang
![international SEO checklist](https://habrastorage.org/webt/fp/z6/x1/fpz6x17xyplz8w7ahwzdq__pu3q.png)
How To Set Up Language-specific Pages?
To let Google recognize the local versions of your content and point users to the most appropriate version of your content, use the <link rel=«alternate» hreflang="language code-country code"… >.
This way, you tell Google that there are specific URLs available for users who speak a particular language and come from a specific location. Google will use this information to show alternate URLs to those users in search results.
When To Use hreflang Tag?
Google recommends to use the hreflang:
- If you keep the main content in a single language and translate only the template (e.g. navigation and footer).
- When the content is nearly identical. It often happens for multi-regional sites in a single language. For example, content in German that targets users from Germany, Austria, and Switzerland.
- If your site content is fully translated into multiple languages. For example, you have both English and German versions of each page.
How To Set Up the hreflang Tag?
When adding the hreflang tag, use the bidirectional connection for every language (as in, alternate pages should point to each other). That's the only way (if you don't have a sitemap or the ability to specify HTTP response headers for your site) Google can understand the site's structure correctly. If the hreflang tag is unidirectional, it will be ignored.
The syntax of HTML hreflang link elements is:
<link rel = "alternate" hreflang = "xx-XX" href = "URL" />
Let's look at it in more detail:
- rel = «alternate» — indicates that there are alternate pages;
- hreflang = «xx-XX» — determines the language (хх), and, optionally, region (ХХ) of the page;
- href = «URL» — URL for the version of this page for the specified language/region.
Example
The site offers content targeted at:
- English-speaking users regardless of their location (en);
- English-speaking users from Australia (en-au);
- some content is also translated into German (de).
This is how they should be linked (same code must appear on all 3 pages within the section ):
<link rel="alternate" hreflang="en" href="http://en.example.com/page.html" />
<link rel="alternate" hreflang="en-au" href="http://en-au.example.com/page.html" />
<link rel="alternate" hreflang="de" href="http://de.example.com/page.html" />
All content points to similar content in other languages (bidirectional links).
Note, hreflang accepts the ISO 639-1 format for languages and the ISO 3166-1 Alpha 2 format for countries.
Other methods for indicating your alternate pages:
- Sitemap;
- HTTP Headers.
1. Adding hreflang to an XML sitemap
This is an appropriate solution for large multilingual sites that share similar content between multiple domains. As your site grows, adding the hreflang tag to the section of every page can become very tedious.
You can add xhtml:link link element to the XML sitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://www.example.com/english/</loc>
<xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutschland/" />
<xhtml:link rel="alternate" hreflang="en-au" href="http://www.example.com/english-australia/" />
<xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/" />
</url>
<url>
<loc>http://www.example.com/deutschland/</loc>
<xhtml:link rel="alternate" hreflang="en-au" href="http://www.example.com/english-australia/" />
<xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/" />
<xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutschland/" />
</url>
<loc>http://www.example.com/english-australia/</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/" />
<xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutschland/" />
<xhtml:link rel="alternate" hreflang="en-au" href="http://www.example.com/english-australia/" />
</url>
</urlset>
2. HTTP Headers
You can add the hreflang attribute to HTTP Headers of non-HTML files. Say, if you have PDFs in different languages and with different URLs, you can get your site to return HTTP headers with the hreflang annotation:
Link: <https://www.example.com/downloads/english.pdf/>; rel="alternate"; hreflang="en">
Link: <https://www.example.de/downloads/german.pdf/>; rel="alternate"; hreflang="de">
Link: <https://www.example.it/downloads/italian.pdf/>; rel="alternate"; hreflang="it">
What's x-default?
Let's say, you're using the x-default value of the hreflang attribute instead of language- and region-identifying ISO formats. That way, you show Google, that you want to display this page when no other language/region matches the user's settings.
In other words, the hreflang=«x-default» attribute creates a fallback page for unmatched languages/regions.
Example
site.com/en-uk — the page for English-speaking users from the United Kingdom;
site.com/it-uk — the page for Italian-speaking users from the United Kingdom;
site.com/ — the default page for users worldwide.
So here is the syntax of the hreflang tag:
<link rel="alternate" href="https://site.com/en-uk" hreflang="en-uk" />
<link rel="alternate" href="https://site.com/it-uk" hreflang="it-uk" />
<link rel="alternate" href="https://site.com/" hreflang="x-default" />
Consider adding a fallback page for unmatched languages, especially on language/country selectors or auto-redirecting homepages.
While an essential part of the targeting strategy, the hreflang tag is not a magic bullet.
Google judges the language and location of a webpage by:
- ccTLDs;
- the language of the content;
- currency and physical locations listed.
International SEO ranking factor #2: Domain extension
![international SEO guide](https://habrastorage.org/webt/q8/yc/ik/q8ycik4ogwnzdncfkgjzpsuqgr0.png)
ccTLD Extensions
Country code top-level domains are strong signal Google uses to determine the location of a web page. With ccTLDs (.it, .cz, .ca, etc.) you're telling search engines that your site targets one particular country. This strategy also helps to remain a simple and elegant URL structure.
International SEO ranking factor #3: Content language
![international SEO strategy](https://habrastorage.org/webt/jl/pj/pm/jlpjpmab_pccyqz1n5xddbsnhwu.png)
The Page Language
Google uses its own algorithms and determines the language of the visible content on the page. Therefore, avoid using multiple languages on one page, or Google may associate your page with the wrong language/region. Still, it doesn't mean you can't use some words from other languages and expressions, such as brand names or product descriptions.
Search engines do NOT use lang attributes to determine the language on your page.
International SEO ranking factor #4: Currency and address
![international SEO 2019](https://habrastorage.org/webt/ml/_j/ov/ml_jovqfwabgzu0kk4fcehvrw_4.png)
Currency and Address
Local currency, address, and phone number are all considered to be strong indicators of your location by Google. Add a physical address for every local version of a website — for Google, this is a strong signal.
If possible, create a Google My Business listing for every physical location of your company and link them to country-specific versions of your site so they will rank higher in the local search.
International SEO Potential Pitfalls
No matter how good Google Support or other sources describe managing multilingual sites, there is always a room for less obvious questions. I want to address two of them:
1. Are the ISO codes case-sensitive?
— No, both upper- and lowercase ISO codes are valid to Google, although it's best to follow the standards and use lowercase letters for the language codes and uppercase letters for the optional country codes.
2. Should I use a separate IP address for each locale-specific site?
— As said by the Google employee himself: "Would be wonderful, but it's not necessary". More on the subject in this short video.
I will try to answer other unexpected questions in the comments down below.
The Takeout
If you don't want Google to consider your localized pages to be duplicates, mark them properly. How to do that:
- Add
<link rel = "alternate" hreflang = "xx-XX" href = "URL" />
tag into HEAD section. Each separate variant of the page requires this tag. - The language and location are specified with ISO 639-1 and ISO 3166-1 Alpha 2 codes, respectively.
- Don't forget to use bidirectional links for hreflang.
- Use the x-default tag for unmatched languages and countries.
- Remember, that you can use HTML tags, the XML sitemap, or HTTP Headers.