International SEO Ultimate Guide

International SEO is the process of optimizing your site for different regions and/or different languages to get more international organic traffic. This involves creating and optimizing different language/region website versions. As a result, Google understands which countries/languages you target and can choose and rank the most suitable website version according to the audience’s location.

In this guide, we’ll take a look at how to implement international SEO correctly. But first…

Check if you need international SEO

International SEO is complicated and does take time and effort. So before you actually start investing resources there, you need to analyze your business to see if you really need to go international. 

This analysis is based on bare facts and logic. All you have to do is look at your business, paying attention to:

  • It’s scale
  • The location of your target audience
  • Your ability to deliver products and services worldwide

If your business is small and only operates within the country you’re based in, international SEO will hardly help you get more revenue. Say, what’s the use of having a page in Chinese if you don’t deliver products to China?

But if your business is an international corporation that serves customers worldwide, then international SEO will greatly help boost your sales and outperform local competitors in search.

If you’re only thinking about entering international markets, allocate your effort wisely: sure thing, international SEO will help you rank better and grow brand awareness, but it may also be a waste of time if you hit the wrong region/language. To avoid this, do the marketing research first to identify where most of your potential customers are located and what language(s) they speak.

Pro Tip: To make sure you do need international SEO, consult Think with Google. Check your site’s current traffic coming from other countries. You need to see if traffic volume is potentially sufficient to create a local site version for this or that region. Plus you will get the list of regions and languages to start with.

Once you're done with the analysis and you're certain that you need a multilingual website, it's time to build your international SEO strategy.

1. Decide on the international targeting method

The way you target your international audiences will greatly define most of your further international SEO routine, so it’s wise to start off with this aspect.

International audience targeting may be of two types:

  • Language targeting — you target audiences based on the language of their queries, no matter where they come from;
  • Country targeting — you target audiences based on their location, no matter what the query language is.

Language targeting suits companies whose business goals and web presence don’t depend much on user location. For example, you deliver goods worldwide from a single warehouse or offer some non-physical products. In this case, the only thing you care about is that users could get information in the language they speak.

Country targeting will be good for those businesses that are greatly influenced by their location. For example, when your clients may need to visit your brick-and-mortar store for any reason. Or when a country’s laws make you introduce changes to the way you operate in that country (as it was with Apple in France when the French law made them put EarPods in iPhone boxes).

You can also combine language and country targeting if it is reasonable for your business (for instance, you operate in multilingual countries such as Canada, the USA, etc.)

2. Choose a URL structure for your international site

There are several options to choose from when it comes to the URL structure of an international website:

  • Country code top-level domains (ccTLDs). Example: seopowersuite.de, riminiturismo.it

  • Subdomains. Example: en.wikipedia.org.

  • Subdirectories. Example: apple.com/fr/, nike.com/id/.

  • General top-level domains (gTLDs) with language parameters. Example: site.com/?lang=en-us.

Note: Pay attention that some country codes, despite initially indicating specific countries (.ly for Lybia, .me for Montenegro, .tv for Tuvalu, etc.), are now used for different purposes. Google treats them as generic domains such as .com.

A standard international SEO approach suggests choosing a structure option based on the type of international targeting you have decided on. This way, if you proceed with country targeting, then ccTLDs will be your best option, as they clearly indicate location. If you choose language targeting, then consider subdirectories, as they let you target multiple locations united by a single language.

Still, it doesn’t mean that all other options are bad. I recommend exploring the pros and cons of each method. The chart below will help choose what suits you best depending on your business needs and available resources.

You can also combine several methods if your targeting is mixed. Say, you’re targeting French-speaking users in Canada. In this case, you have the following options:

  • ccTLDs + subdirectory: mysite.ca/fr/

  • region-language subdirectory: mysite.com/ca-fr/

  • several subdirectories: mysite.com/ca/fr/

  • ccTLDs + language parameters: mysite.ca/?lang=fr

  • gTLDs + language-region parameters: mysite.com/?lang=fr-ca

  • subdomain + subdirectory: ca.mysite.com/fr/

  • subdomain + language parameters: ca.mysite.com/?lang=fr

No matter what structure you choose, make sure that the hierarchy of each version of your site is simple, intuitive, and easy to crawl and index.

3. Implement hreflang tags

Hreflang tags are the most important part of the international SEO implementation process.

Hreflang (or hreflang annotations) is an HTML attribute that tells search engines what languages your content is available in and at what URLs it can be found. These annotations also indicate country targeting, thus letting Google understand where to show your pages.

There are several ways you can implement hreflang tags on your site: in the HTML head, sitemap, and HTTP header. You can choose any method you prefer, still, each of them has its peculiarities.

  • ​​Placing hreflang annotations in the HTML head is the best option for relatively small sites that have a small number of language/region versions. Example:
    <head>
    <title>My Title Is the Best</title>
    <link rel="alternate" hreflang="en-gb"
    href="https://example.com/en-gb/" />
    <link rel="alternate" hreflang="en-us"
     href="https://example.com/en-us/" />
    <link rel="alternate" hreflang="en"
    href="https://example.com/en/" />
    <link rel="alternate" hreflang="de"
    href="https://example.com/de/" />
    </head>
  • Placing hreflang tags in XML sitemaps best suits big websites with lots of language alternates (as adding too many code lines in HTML may slow your site down). Example:
    <?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>https://www.example.com/english/page.html</loc>
        <xhtml:link
                   rel="alternate"
                   hreflang="de"
                   href="https://www.example.de/deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="de-ch"
                   href="https://www.example.de/schweiz-deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="en"
                   href="https://www.example.com/english/page.html"/>
      </url>
      <url>
        <loc>https://www.example.de/deutsch/page.html</loc>
        <xhtml:link
                   rel="alternate"
                   hreflang="de"
                   href="https://www.example.de/deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="de-ch"
                   href="https://www.example.de/schweiz-deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="en"
                   href="https://www.example.com/english/page.html"/>
      </url>
      <url>
        <loc>https://www.example.de/schweiz-deutsch/page.html</loc>
        <xhtml:link
                   rel="alternate"
                   hreflang="de"
                   href="https://www.example.de/deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="de-ch"
                   href="https://www.example.com/schweiz-deutsch/page.html"/>
        <xhtml:link
                   rel="alternate"
                   hreflang="en"
                   href="https://www.example.com/english/page.html"/>
      </url>
    </urlset>
  • Adding hreflang in the HTTP header works best for non-HTML files like .pdf, .doc. etc. Here’s the return link example:
    <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
    <https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
    <https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

Hreflang implementation best practices

Once you decide which method of hreflang implementation to choose, you have to properly add the hreflang tags to avoid issues.

First of all, don’t forget to specify the URL that points back to your original site version from all the language/region alternates you have.

Say, you have a page https://mysite.com, which is in English, and alternative versions in German (https://mysite.de) and French (https://mysite.fr). The code of the English (original) page will point to the German and French pages:

<link rel="alternate" hreflang="de-DE"
href="https://mysite.de" />
<link rel="alternate" hreflang="fr-FR"
 href="https://mysite.fr" />

Likewise, the code of the German page should point to the English and French pages:

<link rel="alternate" hreflang="en-GB"
href="https://mysite.com" />
<link rel="alternate" hreflang="fr-FR"
 href="https://mysite.fr" />

And the French page should point to the English and German ones:

<link rel="alternate" hreflang="en-GB"
href="https://mysite.com" />
<link rel="alternate" hreflang="de-DE"
 href="https://mysite.de" />

Add the x-default value for unmatched languages

If there’s no language version of your website that matches the users’ browser settings, it’s nice to specify what page they will see as a default one. This can be a region selector page:

<link rel="alternate" href="https://mysite.com/country-selector" hreflang="x-default" />

Or you can direct your users to the homepage of your original site version:

<link rel="alternate" href="https://mysite.com" hreflang="x-default" />

Self-canonicalize local pages

Though optional, international SEO experts recommend implementing self-canonicals on local pages. This breaks the popular myth that there’s only one main version of your site, and all the language alternates are secondary. All of your site’s language/region versions are unique pages tailored for certain needs, and they should be properly crawled, indexed, and appear on the SERP whenever they match the query.

This is how you implement self-canonical tags for localized pages:

For https://mysite.com:

<link rel="canonical" href="https://mysite.com" />
<link rel="alternate" hreflang="de-DE"
href="https://mysite.de" />

For https://mysite.de:

<link rel="canonical" href="https://mysite.de" />
<link rel="alternate" hreflang="en-GB"
href="https://mysite.com" />

Use supported language/region codes

The hreflang value consists of the language and (optionally) country specifications. Languages (the first value) are specified in ISO 639-1 format, and regions (the second value) in ISO 3166-1 Alpha 2 format. No other formats are accepted, so be attentive here. For example:

  • de: German language content, any region
  • en-GB: English language content, for users in Great Britain
  • de-GB: German language content, for users in Great Britain

Note that some languages have script variations (e.g. Chinese). In this case, the proper script is derived from the country code. For example, when using the zh-TW code for users in Taiwan, the language script is automatically derived (in this case it’s Chinese-Traditional).

If you’re not sure if Google manages to guess the language, or there’s no specific region for your site, you can explicitly specify the script using ISO 15924, like this:

  • zh-Hant: Chinese (Traditional)
  • zh-Hans: Chinese (Simplified)

  • ar-Arab: Arabic

  • ar-Aran: Arabic (Nastaliq variant)

Note: If you specify the country code only, Google will not understand you and consider it a language code. Which may cost you some trouble. E.g.:

  • be: Belarusian language, Belgium in region specification.
  • ar: Arabic language, Argentina in region specification.
  • et: Estonian language, Ethiopia in region specification.

Use hreflang generators

If you doubt that you’re capable of creating a flawless piece of hreflang, you can always turn to hreflang generators. They will help you quickly generate the tags for the whole list of your URLs, saving you hours of manual work. Or you can just check if your own tags are ok.

Here’s how the hreflang generator tool in WebSite Auditor works:

1. Go to Site Structure > Pages, click the Website Tools icon, and choose Localization:

2. Choose a URL you want to generate hreflang for, click Add Localization, and select the language and region you need.

3. Once finished, you can export the document and paste the code to your site’s HTML.

You can also use the hreflang tag generator by Aleyda Solis. This tool lets you upload the list of your URLs (or enter them manually), state the language and location for each one, and choose the implementation option (HTML head or sitemap). And here you are:

Feel free to copy the code and add it where it has to be.

4. Create localized content

This step requires Rank Tracker. You can download it now for free.
Download Rank Tracker

It’s clear that each language/region version of your site needs to feature high-quality localized content. Remember that localization goes far beyond simply translating your copy into any other language. Localization also means adjusting currencies and measurements, and adapting for even cultural peculiarities so that your audience would perceive the information naturally.

If your site versions differ by region but share the same language, consider changing visual aids to those appealing to the local audience. This is what Nike did to their localizations for the USA and Indonesia (both in English). Here are the visuals on the US website:

And here are the visuals for Indonesia:

As it appears from the screenshot, Indonesian visuals feature local people. Sure thing, currencies are localized, too.

As for the keywords for the local versions of your site, you do not have much freedom to change them, as the products you sell actually remain the same. Still, what you can do is find some top queries in your niche in the language you need, and adjust your content accordingly.

Note: SEOs say that the key idea of your translated text should remain the same as in the original one so that Google treats it as a translation. Moreover, pay attention to the translations of your titles — they should be written in the same language as the local version, otherwise, Google may provide the machine-translated title.

To find popular queries for local versions of your website, go to Rank Tracker's Keyword Research tool. I suggest starting with the Related Searches module. Enter some of your seed keywords translated into the target language (Google Translate works well in most cases) and change the region to the one you need.

The tool will collect you a list of popular queries in the language you specify, so you will have a set of new keywords to optimize your local sites for.

Another helpful keyword research method available in Rank Tracker is Keyword Planner. It lets you specify both language and region, so you can collect keywords in all the languages you’re planning to target in one region.

Pro Tip. Keyword Planner can also let you check keywords your local competitors’ pages rank for. To do this, you should first identify your SERP competitors with the help of the SERP Analysis module of Rank Tracker. Go to the module, type in the keyword you’re working with, and specify the search engine location:

 

Then copy a competitor’s URL and go back to Keyword Planner. Switch to the by Target Page mode and paste the URL.

 

Also, try Autocomplete Tools. Select the language, enter a couple of seed keywords, and enjoy the list of autocomplete suggestions.

5. Host on local servers

Google has explicitly stated that having your server in the country your target audience lives in increases the chance of better rankings. The location of your servers actually affects your positions, so this factor needs to be considered when doing international SEO.

In general, the closer the server is to a user, the faster it will respond to this user's requests. As you know, PageSpeed is a ranking factor, and neither users nor Google will be happy with a website loading too slow.

Note: Local hosting is an option for ccTLDs (mysite.de) or subdomains (de.mysite.com). All other variants only allow single-server hosting. So first think of your target audience’s location and the scale of your site. If you target audiences in Europe, then you can do well with a single server. If your audience’s geography includes way too distant countries, say, the USA, Japan, India, Denmark, etc., then having several local servers is preferable.

This step requires SEO SpyGlass. You can download it now for free.
Download SEO SpyGlass

Backlinks are one of the most important SEO ranking factors, and international SEO is not an exception. The only thing that differs here is that you need to focus on getting local backlinks for every version of your website. The fact is, backlinks derived from local providers establish more trust around your website and directly influence your SERP positions.

First of all, you should discover your local SERP competitors — this will let you check who links to them. Try to get backlinks from those referring sites as well.

You can go to Google and check SERPs for your top keywords in the region of interest:

1. In your Chrome browser, open a new Incognito window and press Ctrl+Shift+J (Cmd+Option+J for MacOS). Then click the three-vertical-dots icon at the upper right corner of the screen and choose More tools > Sensors.

2. On the Sensors panel, choose Other in the Location drop-down menu (well, if the suggested locations don’t suit you) and enter the geo-coordinates of the location you need.

3. In the same Incognito window, type in any of your local keywords. Then make sure the location tracking tumbler is on:

the location tracking tumbler is on

4. Refresh the SERP (hit Update Location button).

update location

5. Now look at your local SERP:

Save a couple of top-ranking domains for further research.

Alternatively, you can do bulk competitor research in Rank Tracker:

1. Go to Competitor Research > Topic Competitors, choose the region, and type in the keywords you need.

You can sort the discovered domains by the level of intersection. Still, I recommend that you also check the top domains manually to see if they’re relevant.

2. Now you can check the backlinks of your competitors with SEO SpyGlass. Go to Domain Comparison and add the competitors you’ve just found.

 

3. Go to Link Intersection and select Prospective Domains in the drop-down menu to spot the sites that link to your competitors but not yet to you. Pay attention to the Domain IP column — although all high-quality prospects may be useful in your link-building campaign, you should now focus on the domains of the country you’re targeting.

 

Now that you know your best linking prospects, feel free to start your outreach campaign.

Forum notes

A user of BlackHatWorld asked what was the best way to build high-quality backlinks in countries other than the US and, consequently, for non-English content. According to the answers, not-that-high quality was actually pretty fine when it came to non-English backlink building:

“...It depends on what country you talking about and what keywords you trying to target. Non-English, or German, French, Spanish will normally let you off with more spammy link-building approaches compared to most Western countries.”

Probably the reason for this is that Google still focuses on the English-speaking segment more, thus controlling it better, too. I’m not a supporter of tiered link building and other “spammy approaches”, but many people say it works…In any case, you have to start your link building with the cheapest methods available. So, here is a guide to the safest link-building methods that won't cost you a fortune.

Linking to local websites lets you build closer ties with the community, thus helping your website rank higher in a certain region. This takes us to the entity-building approach when you have to make search engines associate your site (i.e. entity) with the local ecosystem. 

If a business is big enough to proceed with international SEO, it’s logical to assume that this business already has some connections in the target locations. These connections are your first linking opportunities. Also, link to credible local sites, news outlets, and other relevant businesses in the area you need.

International SEO don'ts

Ok, done with international SEO best practices. Now let’s take a look at the mistakes you should avoid. You may be surprised, but the failures from the list below happen far way too often.

1. Implement hreflang annotations without validation

This step requires WebSite Auditor. You can download it now for free.
Download WebSite Auditor

All the hreflang annotations you apply should be first validated before you launch them live.

First, you can crawl your site’s locale with WebSite Auditor to spot any possible technical issues. Go to Site Structure > Site Audit, and scroll down to the Localization section:

Pay attention to the issues marked as Error or Warning and check the recommendations and examples under each type of issue.

Once your site goes live, use Google Search Console’s International Targeting report (find it under the Legacy tools and reports drop-down menu) to monitor hreflang usage and errors on your site.

2. Automatically redirect users to a site version based on their IP

Although you may want to save users’ time and make them see the site version you think they need, it’s better to give them an option to choose the language on their own. 

Some sites only allow this option when they fail to read a user’s location based on IP. For example, once you get on Nike’s website for the first time, and they cannot detect your location immediately, they let you select the region and the language you need:

If you cannot redirect users to a language/region selector for any reason, then at least let users easily change location in case they need to. Here is an example of Apple’s implementation:

Click United States to change the location and language
Click United States to change the location and language

3. Target different regions with one ccTLD

CcTLDs are meant to identify the region they are aimed to target. If you have a website like mysite.it and use a subcategory option mysite.it/fr/ to target France, your hreflang implementation may not work correctly.

This option will work if you target French speakers in Italy. If you need to target different regions, consider different ccTLDs or a gTLD (.com, .net, etc.) with a subdomain or subcategory option.

4. Use ccTLDs like .eu, .asia for region targeting

Say, your target countries are all located within a single geographical region of the planet, let it be Europe. In this case, you may decide to create a single website under the .eu domain  instead of making several local versions for different countries. This is a big mistake, as Google treats domains like .eu and .asia as generic (in the same way as it treats .com). As a result, you’ll have to create local versions anyway if you want to target different countries.

5. Pointing hreflangs to the wrong destination

The hreflang should always point to the same alternative of your page in another language. Say, a category page in English has to point to the same category page in German.

For example, if a page https://www.mysite.com/en/my-category/ is referring to https://www.mysite.com/de/, then the hreflang is not implemented correctly. The correct implementation is as follows: https://www.mysite.com/en/my-category/ referring to https://www.mysite.com/de/meine-kategorie/.

Note: We have a special post dedicated to hreflang implementation mistakes. Check it out to be even more aware of the pitfalls to avoid.

Before you go: check if your localized pages rank correctly

Always keep track of your localized alternates’ performance to make sure they rank exactly the way they are meant to. You can use this Google Data Studio Dashboard created by Aleyda Solis for this type of work. This dashboard lets you easily check what countries a localized page ranks in, and where it gets the most traffic from. 

To check what SERP positions your pages occupy in different countries, go to Rank Tracker. Set up the locations you need in Preferences > Preferred Search Engines, and track your positions in Target Keywords > Rank Tracking:

Regular checks will help you timely see if your international SEO efforts don’t work for any reason.

Conclusion

International SEO is not as hard as it may seem if you have detailed instructions (just as this guide) and know what you do and why. By the way, are you going worldwide with your site? Share your international SEO experience in our Facebook community.

Article stats:
Linking websites N/A
Backlinks N/A
InLink Rank N/A
Data from Seo SpyGlass: try free backlink checker.
Got questions or comments?
Join our community on Facebook!