If your website and your content are intended to be distributed in several geographical areas, for different nationalities or in different languages, a very specific procedure must be followed to ensure that search engines deliver the right page to the right users, and especially in the right language.
Eg. - what is more annoying than getting a product page with a price displayed in dollars for an English person?
It is essential to present translated but most importantly localized content in the different languages / regions your visitors might be coming from.
Always favour dedicated TLD to deliver your content to the right geographical area. Apart from the language used on the page, this element is an indicator for search engines to guide the distribution of your content.
https://www.cdkeys.fr for FRANCE
https://www.cdkeys.de for GERMANY
https://www.cdkeys.com for the USA
https://www.cdkeys.co.uk for ENGLAND
etc
We recommend using domain extensions (ccTLDs) over other management systems, which are generally less optimized on an SEO point of view. The other options are:
We recommend the use of sub-directories if you don't want to opt for ccTLDs:
https://www.cdkeys.com/fr/ for France
https://www.cdkeys.com/it/ for Italy
If the user does not consult the site in the correct language, suggest a javascript pop-in suggesting the better version (by detecting the user's browser's language for example)
Outsource this JavaScript directive and block it by robots.txt to make sure Googlebot does not try to access it.
As a result of that, Googlebot will not be subjected to this alert and will be able to explore the requested page without being redirected to another version of the page in another language.
Then, place a cookie based on the choice of the user so he can systematic be redirected to the good version of the language when he comes back to your site. Googlebot does not take cookies into consideration so the search engine spiders will continue to explore the page.
WARNING
First of all, make sure it stands out. Ask a friend to locate the language switcher on your site. If it takes her/him more than a few seconds, you might reconsider its location.
It is essential to let the user the possibility to change the language on ALL of your pages via the language switcher. This is an effective way to make your different pages accessible to search engines.
To avoid losing the user along his journey on your website, you have to make sure that changing the language will redirect him to the corresponding page in the other language he selects and does not redirect him to the Homepage!
WARNING
In order to reinforce internal linking between the different versions available, the language switcher must suggest the other versions of languages via a hypertext <a href> link, accessible to crawlers/search engines.
-----------
For example, if I have a page in French that can also be translated into German or English, I am going to specify Google that equivalent URLs are available in other languages:
<link rel="alternate" href="https://www.cdkeys.com/fr/ma-page-x" hreflang="fr-FR" /><link rel="alternate" href="https://www.cdkeys.com/de/meine-seite-x" hreflang="de-DE" /><link rel="alternate" href="https://www..cdkeys.com/uk/my-page-x" hreflang="en-UK" />etc...-----------
BUILDING HREF LANG ATTRIBUTES
You need to add this attribute in the source code of all the pages of the website, for all available languages. The content of the HREFLANG attribute is built in this order:
Common mistakes with hreflang usage:
https://example.com/foo, not //example.com/foo or /foo
The reserved value hreflang="x-default" is used when no other language/region matches the user's browser setting. This value is optional, but recommended, as a way for you to control the page when no languages match. A good use is to target your site's homepage where there is a clickable map that enables the user to select their country.
(Please prefer the implementation of HREFLANG tags in your Html source code directly)
You can also use a Sitemap to tell Google all of the language and region variants for each URL. To do so, add a <loc>
element specifying a single URL, with child <xhtml:link> entries listing every language/locale variant of the page including itself. Therefore if you have 3 versions of a page, your sitemap will have 3 entries, each with 3 identical child entries.
Sitemap rules:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
<url>
element for each URL.<url>
element must include a <loc>
child indicating the page URL.<url>
element must have a child element <xhtml:link rel="alternate" hreflang="supported_language-code">
that lists every alternate version of the page, including itself. The order of these child <xhtml:link>
elements doesn't matter, though you might want to keep them in the same order to make them easier for you to check for mistakes.Example
Here is an English language page targeted at English speakers worldwide, with equivalent versions of this page targeted at German speakers worldwide and German speakers located in Switzerland. Here are all the URLs present on your site:
Here is the sitemap for those three pages:
<?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/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.example.com/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="http://www.example.com/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.example.com/english/page.html"/>
</url>
<url>
<loc>http://www.example.com/deutsch/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.example.com/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="http://www.example.com/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.example.com/english/page.html"/>
</url>
<url>
<loc>http://www.example.com/schweiz-deutsch/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.example.com/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="http://www.example.com/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.example.com/english/page.html"/>
</url>
</urlset>
Prefer a web hosting in a geographical zone that will be close to where most of your traffic is. So, if Saudi Arabia is where most of your traffic is coming from, host your site on a Saudi server.
The benefit of doing so is to deliver elements to your users more quickly and speed up your load times.
If a good portion of your traffic is coming from other countries quite regularly, use a CDN to provide an equally smooth browsing experience for these users too. The use of CDN (Content Delivery Network) allows web users to load the static content of your pages (images, JavaScript and hidden CSS files) from a server that is located as close as possible to their location. Using a CDN will allow your content to be delivered from a maximum number of servers around the planet, always as close as possible to the user's location.
Amazon Cloudfront or CloudFlare are good CDNs, which can cache your site's pages and deliver them from their many servers around the globe. They also protect your site by filtering incoming traffic preventing your site to be hit by DDoS attacks, they allow you to switch to HTTP2, keep your site online even when your hosting has fallen, and much more ... CDNs also provide protection from large surges in traffic.
Google Search Console geo-targeting allows Google to identify what the target audience of your website is, and build its index accordingly. When targeting a country, Google will push your website to the users located in the geographical area targeted for relevancy and UX reasons. But in return, your rankings won't be as good for the regions you are not targeting, even if the language used is identical.
As a reminder, for a query made in a specific language, 2 users located in 2 different countries will not have the same results. Google knows that it is probably not relevant to suggest the website of a restaurant located in Montreal to a user located in Paris and who is looking for restaurant options.
When you have a dedicated websites per country, GSC can help you implement some relevant geographical targeting. It becomes even more useful when your local websites do not have an extension that helps Google understand which country you are targeting (eg: with a '.com' or 'brand' or 'net') or even when you use sub-directories (.com/fr-fr, .com/fr-be, .com/es-es etc).
Setting a country target
You can specify a target country in the International Targeting report.
WARNING