Learn if hreflang annotations are still necessary in Intenational SEO projects in 2023, in which scenarios and how to effectively implement it while minimizing issues and maximizing success and impact.
Martal Group - B2B Lead Gen Agency - Onboarding Overview
Hreflang: Is it really still necessary and how to use it successfully in 2023
1. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
#HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
HREFLANG
Is it really still necessary and
how to use it successfully in 2023
2. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Since long ago hreflang has been considered that
“necessary headache” when doing international SEO
3. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
But Google
deprecated the
GSC International
Targeting Report,
used to show
hreflang status &
give geolocation
feature! Is it really
necessary
nowadays?
4. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Google says they still support hreflang while
dismissing the need for the geotargeting feature
5. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
This stance hasn’t changed since last year,
this tweet is from John just a few days ago
6. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Because of this, I
asked for the
“official” hreflang
status back: Why not
show hreflang status
if it’s used? I didn’t
get an answer.
7. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Also, do they really don’t need the geotargeting
feature anymore? What has changed? Let’s see…
8. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Google added a note about hreflang used to identify
alternate content variations but not to detect language
Oct 2021 Now
vs
9. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Google clarifies that to detect language,
they use their algorithms not hreflang
Oct 2021 Now
vs
10. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Oct 2021 Now
The International Targeting info to geolocate gTLDs to a
country was eliminated from many sections too
vs
11. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
So maybe there’s no need for that feature bc of hreflang
and a better language understanding of BERT & MUM?
12. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
I’ve checked and G has become better at understanding
& targeting language versions to relevant markets
vs
vs
asana.com/es/
atlassian.com/fr/
13. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
What about country-targeted versions,
especially those w/ the same language tho?
#HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
14. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
eBay.com: Steady rankings for relevant US market while
drastic decrease since July 21 in non-relevant countries
15. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Amazon.co.uk: Slight decrease for relevant UK market
while drastic decrease in non-relevant ones (US, CA)
16. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Pinterest.es: Ups & Downs in relevant Spain market but
drastic decrease since July 21 in non-relevant ones
17. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
These sites are geolocating with ccTLDs though!
Let’s see gTLDs with subdirectories/subdomains
18. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Samsung.com/es/: Steady rankings for Spain while
slight decreases in Argentina and a drastic drop in the US
19. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Nike.com/gb/: Increased rankings for UK market while
slight decreases in Canada and a drop in France
20. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
uk.gymshark.com: Increased rankings for UK market
while mild decreases in AU and a drastic drop in France
21. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Note how many of
the drastic decreases
in non-relevant
markets coincide
with Google Core
and Spam updates
22. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
So relevant
country targeting
has also improved
although not so
much for gTLDs as
for ccTLDs
#HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
23. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Also, is better for
different
language markets
than for same
language ones
#HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
24. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
So yes, Hreflang is
still valuable to avoid
ranking in
non-relevant markets
by specifying
alternate pages,
especially when the
language is the same
25. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
X
But should be
executed with care
to avoid time-losing
mistakes, especially
now without the GSC
International Report
26. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
The hreflang challenge is caused by having to specify
pages lang/country & their alternates, & the same in each
https://www.site.com/en/
https://www.site.com/en-us/
27. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Which can easily become chaotic for large Websites
with dozens of versions and a highly dynamic inventory
28. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
The reality is that most errors end up falling into
3 buckets that we should avoid at all costs
Featuring URLs in
hreflang that don’t
exist in certain
markets
Featuring
URLs that are not
indexable
(redirected,
noindexed,
canonicalized)
Generating
hreflang tags with
syntax or value
errors
29. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
1) Including as alternates pages that don’t exist in a market,
don’t make sense and would generate “no return” errors
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
Page A for US
Page A for UK
Page A for AU
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
Page A doesn’t exist in
Australia, shouldn’t be
tagged as alternate
X
https://domain.com/us/page-a
https://domain.com/gb/page-a
https://domain.com/au/page-a
30. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
Page A for US
Page A for UK
Page A for AU
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
In Australia, Page A is redirected
to another URL, so that’s the one
that should be included instead
2) Including as alternates pages that exist but are not
indexable (redirected, noindexed, canonicalized URLs)
-
https://domain.com/au/page-a-new
https://domain.com/us/page-a
https://domain.com/gb/page-a
https://domain.com/au/page-a
31. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
Page A for US
Page A for UK
Page A for AU
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang="en-au" />
<link rel="alternate" href="https://domain.com/us/page-a" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-a" hreflang="en-gb" />
<link rel="alternate" href="https://domain.com/au/page-a" hreflang=“en-au " />
There’s a space left after
the “en-au” value!
3) Including hreflang annotations with errors in syntax or
featured language or country values, careful with spaces!
https://domain.com/us/page-a
https://domain.com/gb/page-a
https://domain.com/au/page-a
32. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
This is why it’s fundamental to follow some do’s and dont’s
when implementing hreflang in your site pages
33. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Don’t include
hreflang on pages
that don’t actually
need it, only do it in
those suffering from
overlay issues with
indexable alternates
34. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
This is the reason why large & dynamic sites, like
eCommerce, will tag categories but not/few products
35. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
If you’re using popular CMS like WP this can be done with
plugins (like WPML) automatically, but what if you’re not?
Adding a self-referring hreflang is
unnecessary if you don’t have alternates,
but at least won’t generate errors either
36. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Semrush & Google Search Console
1. For your different
country Web versions:
Identify which pages
are getting traffic/
rankings from non-
relevant markets. Eg.
The pages from your
Spain version getting
traffic from Mexico
Which of these have a Mexican
indexable version that should be
getting this traffic instead?
37. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
2. Check which of
these pages getting
traffic from non-
relevant markets
have an indexable
alternate version in
the relevant ones
Check for alternate .co.uk URLS and check their
indexability and relevance, to verify they’re
really featuring the same content
.com URLs ranking in the UK
attracting the highest traffic
share
38. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
3. Select only those that are actual alternate pages in the
relevant market that are also indexable & create a sheet
39. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
4. Once you have all
of the pages with
international
misalignment issues
and indexable
alternates, identify
the relevant values
using Google
documentation
linking the ISO values
https://developers.google.com/search/docs/specialty/
international/localized-versions#language-codes
40. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
You can also get
them, as well as the
correct hreflang
tags patterns for
both HTML and
XML sitemap
implementation via
my free hreflang
tool
https://www.aleydasolis.com/english/international-seo-tools/hreflang-tags-generator/
42. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Careful when
trying to automate
hreflang
generation by
using GPTChat,
the values might
be incorrect
depending on the
prompt
Correct
Incorrect
43. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Wait! But, should you use x-default too? Only if you want to
refer non-targeted users to a specific “fallback” page
https://developers.google.com/search/docs/specialty/
international/localized-versions#language-codes
For main
branded terms
Terms in the
same language
44. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
It’s ok to assign as an x-default a page that already
has its own language/country value as target too
<link rel="alternate" href="https://domain.com/us/page-b" hreflang="en-us" />
<link rel="alternate" href=“https://domain.com/us/page-b" hreflang="x-default" />
<link rel="alternate" href="https://domain.com/gb/page-b" hreflang="en-gb" />
<link rel="alternate" href=“https://domain.com/au/page-b" hreflang="en-au" />
45. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
It’s also ok to assign different values to the same URL
in general, as long as they make sense for its targeting
<link rel="alternate" href="https://domain.com/us/page-b" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/us/page-b" hreflang="en" />
<link rel="alternate" href="https://domain.com/gb/page-b" hreflang="en-gb" />
<link rel="alternate" href=“https://domain.com/au/page-b" hreflang="en-au" />
46. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
What doesn’t make sense and you shouldn’t do is
assign the same value to different URLs!
<link rel="alternate" href="https://domain.com/us/page-b" hreflang="en-us" />
<link rel="alternate" href="https://domain.com/gb/page-b" hreflang=“en-us" />
<link rel="alternate" href=“https://domain.com/au/page-b" hreflang="en-au" />
47. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
5. Now it’s time to decide the method of hreflang
implementation, following this simple criteria
BETTER FOR SMALL
NUMBER OF VERSIONS
TO TAG AND WHEN
USING A PLATFORM
THAT ALLOWS TO EASILY
EDIT THE HTML HEAD
HTML Head
BETTER FOR BIGGER
SITES WITH A HIGH
NUMBER OF VERSIONS
(+3 VERSIONS OR +1K
PAGES) AND/OR WHEN
YOU CAN’T EDIT YOUR
HTML HEAD
XML Sitemap
WHEN SPECIFYING
HREFLANG FOR
NON-HTML
DOCUMENTS LIKE
PDFS, DOCS, ETC.
HTTP Header
48. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
BETTER FOR SMALL
NUMBER OF VERSIONS
TO TAG AND WHEN
USING A PLATFORM
THAT ALLOWS TO EASILY
EDIT THE HTML HEAD
HTML Head
BETTER FOR BIGGER
SITES WITH A HIGH
NUMBER OF VERSIONS
(+3 VERSIONS OR +1K
PAGES) AND/OR WHEN
YOU CAN’T EDIT YOUR
HTML HEAD
XML Sitemap
WHEN SPECIFYING
HREFLANG FOR
NON-HTML
DOCUMENTS LIKE
PDFS, DOCS, ETC.
HTTP Header
My preferred one, for flexibility, especially if there are no
dev resources, is the XML sitemap to tag static pages
49. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
For this, I like to use TechnicalSEO.com's XML sitemap
generator, that uses a CSV for which they give a template
https://technicalseo.com/tools/xml-sitemap/
50. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
You can replicate the template format by just adding the
loc for each URL included and lastmod in your own sheet
51. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
6. Export the sheet as a CSV and generate the
XML sitemap with the technicalseo.com generator
52. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
7. Validate if the XML sitemap is correctly generated by
using an SEO crawler supporting hreflang validation
Screaming Frog
53. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
8. Troubleshoot any remaining errors and once ready,
upload via the Google Search Console
54. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
9. Monitor that the tagged pages start ranking in their
relevant markets for their top targeted queries
Advanced Web Ranking
55. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
10. Profit! You should see the increase in traffic and
conversions in those markets from relevant audience
GSC & GA
56. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
● ccTLDs
● Country in metadata
● Country, Address and
Phone numbers in pages
copy
● Local language &
currency
● Backlinks from local sites
● Connected Business
Profile
● Hreflang specifying
alternates from stronger
same language country
version
Well aligned ccTLD Not Well aligned ccTLD
Finally, remember that good geolocation is a matter
of aligned signals not only hreflang, the more the better
57. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI
Well aligned gTLDs
This is also true for subdirectories and subdomains too
● Country in metadata
● Country, Address and
Phone numbers in pages
copy
● Local language &
currency
● Backlinks from local sites
● Connected Business
Profile
● Hreflang specifying
alternates from stronger
same language country
version
58. #SEOReporting by @aleyda from @orainti
orainti.com
I’m Aleyda Solis
* SEO Consultant & Founder at Orainti
* SEO Speaker at +100 Events in +20 countries
* Author “SEO. Las Claves Esenciales.”
* Crawling Mondays Video & Podcast Series Host
* #SEOFOMO Newsletter Wrangler
* Maker LearningSEO.io
* European Search Personality of the Year in 2018
* remoters.net Co-Founder
Thanks