Let’s talk about hreflang attributes. If you haven’t already navigated away from this page then you’ve already completed the most important step of this journey: starting it.
Optimizing your SEO efforts for international clients requires a lot more technical granularity and entirely different strategy from trying to rank your local HVAC firm.
Everything – from link building to URL structures – needs to be optimized for both regional intent and language differences.
Fortunately, to get us started, we’ve compiled a few common ranking factors that most search engines take into account when ranking international webpages:
- URLs optimized for language and region.
- Content optimized for language and region.
- Contact info (NAP) on international directories and GMB pages.
- Local links from country-specific domains (ccTLDs).
In order to give you a greater overview of what it requires to rank, we’ll need to explore the technical structure of optimizing for an international website.
Implementing hreflang and choosing the right domain structure becomes crucial. Here’s a brief definition of hreflang tags from Wikipedia:
Hreflang specifies the language and optional geographic restrictions for a document. Hreflang is interpreted by search engines and can be used by webmasters to clarify the lingual and geographical targeting of a website.
The primary issue that SEO analysts run into is improper alternate hreflang tag implementation.
These are not easy fixes either. As complex and long as implementing hreflangs on all of your URLs are, one mistake will completely comprise your entire efforts.
The fallout from this will include keyword and content cannibalization among geo-specific webpages that search engines view as duplicated. This obviously harms region-specific user experiences.
This brief primer will help you understand the best practices of optimizing for international SEO.
Organizing Site Structure for Language/Region Specific Webpages
To be or not to be, that is the sub-directory question.
There are three primary considerations. You can:
- Optimize your website around ccTLDS.
- Organize regional/linguistic content by subdirectories.
- Organize regional/linguistic content by subdomains.
Here’s a visual example of each URL structure:
- ccTLD: example.com.fr
- Sub-domain: fr.example.com
- Sub-directory: example.com/fr/
Country-coded top-level-domains were traditionally the best choice for international companies only marketing to people in one specific language. Unfortunately, ccTLDs are expensive and confusing.
Implementing hreflang attributes helps to clear up language and regional differences for search engines, but can still result in duplicate content issues regardless.
This is why many people have shifted toward subdomains and subdirectories. While subdomains offer the granularity desired to target users by language and region, it’s still treated as a new domain and would require building SEO signals from scratch.
That leaves us with subdirectories as the preferred choice in the industry right now. These are the easiest to roll out from a technical perspective and international targeting can be set up in Google Search Console to get you started.
No matter which archetype you choose, you still run the risk of cannibalizing content and having the wrong content being displayed for users in different regions.
Why Localize Content By User
If you’re an international brand then it only makes sense to localize content by region and language, especially if you have the resources.
Now, with proper hreflang implementation and NAP information displayed on your landing page, you could seemingly duplicate content without cannibalizing your search results.
This is why many people recommend localizing keyword research and content by intent, strictly from a user perspective. Best practices also dictate that this should be conducted for headers, meta tags, image descriptions, and all other onsite elements of a landing page.
As a side note, automatic translational content is not really that reliable so don’t rely on this for different languages.
Also, different regions and cultures respond to different aesthetics (e.g. color scheme, images, etc.) that strengthens the case for personalizing content by regional intent.
This all sounds pretty simple and straightforward, right? Well, we’ve only just gotten started.
The Problem With Your Hreflang Use
After optimizing a page for region and language, how do we make sure that Google displays the right version of our webpage for that specific user? That’s where the hreflang tag comes in. It is an alternate tag that’s designed to display the correct version of a page for its intended region and language.
Essentially, if you have a high ranking Australian webpage for an English search, theoretically a U.S. searcher would be displayed the “en-us” alternate of that page.
Hreflangs are commonly used for organizing content by different languages, multiple regions with the same language, or one region with different languages.
Here’s the problem. I’d guess that anywhere around 75 percent of international domains have implemented inconsistent tagging.
If you’re optimizing a site for more than 20 languages, you may end up inserting hundreds of different alternate and canonical tags based on the number of regions you’re targeting. Unfortunately, one mistake can comprise the entire structure, leading to duplicate content errors and poor user experience.
The most common hreflang mistakes include:
- Failing to include a self-referential link in the alternate tag.
- Directing an alternate URL to the wrong canonical.
- Using the wrong ISO value.
- Forgetting to insert return links on all alternative URLs.
Where to Place Hreflang Attributes
There are three areas where the hreflang tag can be implemented:
- Head
- HTTP
- XML Sitemap
Now, I won’t go too in-depth on this as each has their advantages. The <head> of your HTML is usually the easiest strategy to implement hreflang tags, although it can vastly add to the amount of data users need to download. The same goes for HTTP.
XML works great, but it requires a lot more markup then your HTML markup. Regardless, their implementation and principles remain the same no matter which part of your site you decide to implement hreflang tags.
Hreflang Best Practices
When creating the hreflang tag, you always start with the language first and then the region. In many cases, the region is not actually required. That’s why you can’t define a region without a language.
Within the hreflang tag, you’ll need to incorporate a two-letter language value that specifies the language of the piece. This can be found in the ISO 639-1 format. Targeting region is optional and will require pulling the ISO value from the ISO 3166-1 Alpha 2 format.
Here are the most important rules of hreflang attributes that you need to get right:
- All alternate hreflang attributes need to be self-referential.
- All alternate attributes need to point back to their canonical.
- All alternate attributes need to be bidirectional.
- Always insert a default backup page.
1. Self-Referential Hreflang Attributes
It’s absolutely important to make sure all hreflang attributes are self-referential. Essentially, for each alternate attribute you place on a URL for a specific region and language, there should be a canonical tag for that page.
For example <link rel=”alternate” hreflang=”en-ca” href=”https://www.example.com/ca/” /> would obviously have alternates for different regions, such as:
<link rel=”alternate” hreflang=”en-us” href=”https://www.example.com/us/” />
<link rel=”alternate” hreflang=”en-gb” href=”https://www.example.com/uk/” />
On this URL you would implement a canonical pointing to itself (e.g. the Canadian page):
<link rel=”Canonical” href=”http://www.example.com/ca/” /> .
You will also have to make sure that each alternate URL also includes the two alternates from the previous grouping. This means that your U.S. link would require alternate links for its Canadian and British pages.
But on this URL, the canonical would be inserted on the <link rel=”alternate” hreflang=”en-us” href=”https://www.example.com/us/” /> page to make it self-referential.
It would look something like this:
<link rel=”canonical” href=”http://www.example.com/us/” />
<link rel=”alternate” hreflang=”en-us” href=”https://www.example.com/us/” /><link rel=”alternate” hreflang=”en-gb” href=”https://www.example.com/uk/” />
<link rel=”alternate” hreflang=”en-ca” href=”https://www.example.com/ca/” />
On the Canadian page it would look like this:
<link rel=”canonical” href=”https://www.example.com/ca/” />
<link rel=”alternate” hreflang=”en-us” href=”https://www.example.com/us/” /><link rel=”alternate” hreflang=”en-gb” href=”https://www.example.com/uk/” />
<link rel=”alternate” hreflang=”en-ca” href=”https://www.example.com/ca/” />
2. Properly Using Canonicals
Looking at our previous example, our Canadian link should not be canonicalized as https://www.example.com.
Improper canonical use breaks the consistency of the alternative attributes and pretty much erases away all of that hard work.
Another common mistake is to pick one language and canonicalize multiple languages into that URL. Href alternate tags basically say “I am the alternate version of” and a canonical tag says “I am the version of the URL I would like you to rank.”
For hreflang alternates, the landing page used in the alternate tag needs to be the canonicalized version on an individual language basis.
Subsequently, you will not reference non-canonical URLs in an hreflang attribution.
For example, if you have a canonical tag set for http://www.example.com and alternate tag set up for http://www.example.com/homepage, then you would place alternate tags for each language variant like: <link rel=”alternate” hreflang=”en-ca” href=”http://www.example.com/ca/” />, and so on.
But you would not reference http://www.example.com/homepage as an hreflang attribution.
3. Ensuring Links Are Bidirectional
Along the same lines, you need to ensure that all language-specific alternate pages reference back to their alternates to ensure that your coding is consistent. These will most likely come up as a “Return Tag Error” in Google Search Console.
Essentially, if Page A lists Page B as an alternate of that page, then page B should also list page A as an alternate.
To reiterate, Page A should also specify itself as a canonical and list all alternatives it’s cited in, and Page B will do the same.
4. Inserting a Default Page When All Else Fails
Now, you may notice that the URL <link rel=”alternate” hreflang=”x-default” href=”https://www.example.com/” /> thrown in at the end of a lot of hreflang attributes.
The “x-default” variant is used when you have not set up a specific alternate for a specific region.
For example, if an English speaking Bangladesh user so happens to search and find your webpage, and there is no region-specific alternative in place, then “x-default” would display them a standard “en” English version.
5. Invest in Tools
Plenty of tools will provide you with an hreflang audit and help you with implementation.
Python is popular among SEO professionals, although there are hundreds of tools.
Do your research and always do a manual check to see if your rel-alternate tags are properly implemented.
You’re On Your Way
After optimizing content for regional intent and properly implementing your hreflang attributes, the rest of SEO best practices apply.
Just remember that searchers in other countries use different search engines and platforms to find your content. That’s why it’s key to always be on top of research and your analytics to see whether you’re best serving your international users.
More International Search Resources: