Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hreflang: 
Is it really still necessary and 
ho...

Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023

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.

Aleyda Solis

February 15, 2023
Tweet

More Decks by Aleyda Solis

Other Decks in Marketing & SEO

Transcript

  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/
  41. #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
  42. #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
  43. #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" />
  44. #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" />
  45. #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" />
  46. #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
  47. #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
  48. #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/
  49. #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
  50. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI 6. Export the sheet as

    a CSV and generate the 
 XML sitemap with the technicalseo.com generator
  51. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI 7. Validate if the XML

    sitemap is correctly generated by using an SEO crawler supporting hreflang validation Screaming Frog
  52. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI 8. Troubleshoot any remaining errors

    and once ready, upload via the Google Search Console
  53. #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
  54. #HREFLANGSUCCESS BY @ALEYDA FROM #ORAINTI 10. Profit! You should see

    the increase in traffic and conversions in those markets from relevant audience GSC & GA
  55. #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
  56. #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
  57. #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