$30 off During Our Annual Pro Sale. View Details »

Hreflang Study and Interesting Issues - Brighton SEO 2023 Patrick Stox

Hreflang Study and Interesting Issues - Brighton SEO 2023 Patrick Stox

Hreflang Study and Interesting Issues - Brighton SEO 2023 Patrick Stox

Patrick Stox

September 14, 2023
Tweet

Other Decks in Marketing & SEO

Transcript

  1. @patrickstox #brightonseo
    The most common
    hreflang issues across
    374,756 domains
    Patrick Stox
    Ahrefs
    Speakerdeck.com/patrickstox
    @patrickstox

    View Slide

  2. @patrickstox #brightonseo
    Who Is Patrick Stox?
    Product Advisor & Technical SEO @ Ahrefs
    Writing
    Ahrefs SEO book
    Ahrefs blog
    SEO Chapter of the Web Almanac 2021
    Technical Review Editor of the Art of SEO 4th edition
    Community
    Founded a Technical SEO slack group
    /r/TechSEO moderator on Reddit
    Organize Raleigh SEO Meetup, Raleigh SEO Conference,
    Beer & SEO
    Defined the role of SEO for the US Department of Labor

    View Slide

  3. @patrickstox #brightonseo
    Hreflang Is Hard
    TBH hreflang is one of the most complex
    aspects of SEO (if not the most complex
    one). Feels as easy as a meta-tag, but it
    gets really hard quickly.
    John Mueller - Google

    View Slide

  4. @patrickstox #brightonseo
    67% Of Domains Have
    Hreflang Issues
    At least one hreflang issue

    View Slide

  5. @patrickstox #brightonseo
    Pages missing x-default
    Pages missing self-referencing hreflang tags
    Hreflang tags reference redirected or broken pages
    Pages missing reciprocal tags
    Hreflang tags pointing to non-canonical URLs
    Pages with incorrect hreflang values
    Pages with inconsistent hreflang values
    More than on page referenced for the same language
    The same page referenced for more than one language
    Top Hreflang Issues

    View Slide

  6. @patrickstox #brightonseo
    56.3% of Domains Have Pages
    Missing X-Default Annotations
    Missing x-default

    View Slide

  7. @patrickstox #brightonseo
    X-default Is Not Required

    View Slide

  8. @patrickstox #brightonseo
    It Works By Most Specific Match
    1. Language-country
    2. Language
    3. X-default

    View Slide

  9. @patrickstox #brightonseo
    18% Of Domains Have Pages Missing
    Self-Referencing Hreflang Tags
    Missing self-referencing
    hreflang tags

    View Slide

  10. @patrickstox #brightonseo
    Self-Referencing Hreflang Tags
    Are Not Required

    View Slide

  11. @patrickstox #brightonseo
    16.9% of Domains Have Hreflang Tags
    Referencing Redirected Or Broken Pages
    Hreflang tags reference
    redirected or broken
    pages

    View Slide

  12. @patrickstox #brightonseo
    15.3% Of Domains Have Pages
    Missing Reciprocal Hreflang Tags
    Missing reciprocal
    hreflang tags

    View Slide

  13. @patrickstox #brightonseo
    Hreflang Tags Work In Pairs

    View Slide

  14. @patrickstox #brightonseo
    They Form An Hreflang Cluster

    View Slide

  15. @patrickstox #brightonseo
    X Block Pages With Robots.txt

    View Slide

  16. @patrickstox #brightonseo
    Hreflang + Duplicate Pages –
    Signals Consolidate

    View Slide

  17. @patrickstox #brightonseo
    Ranking Is Based On The Indexed URL
    When someone searches:

    View Slide

  18. @patrickstox #brightonseo
    Versions Swap During Re-Ranking
    For an English speaker in the UK:
    Ranking based on en-us en-gb shown in SERPs

    View Slide

  19. @patrickstox #brightonseo
    Pages Don’t Swap When Tags Are Broken
    For an English speaker in the UK:
    Ranking based on en-us en-us shown in SERPs

    View Slide

  20. @patrickstox #brightonseo
    Non-Duplicate Pages Use Their
    Own Signals

    View Slide

  21. @patrickstox #brightonseo
    Some SEOs Say You Don’t Need Hreflang
    For Different Languages…

    View Slide

  22. @patrickstox #brightonseo
    Branded - English

    View Slide

  23. @patrickstox #brightonseo
    Branded - Spanish

    View Slide

  24. @patrickstox #brightonseo
    Branded - French

    View Slide

  25. @patrickstox #brightonseo
    Same Word - English

    View Slide

  26. @patrickstox #brightonseo
    Same Word - Spanish

    View Slide

  27. @patrickstox #brightonseo
    Same Word - French

    View Slide

  28. @patrickstox #brightonseo
    8% Of Domains Have Hreflang Tags
    Pointing To Non-Canonical URLs
    Hreflang tags pointing to
    non-canonical URLs

    View Slide

  29. @patrickstox #brightonseo
    Hreflang Is A Canonicalization Signal,
    1 of ~20
    Hreflang URLs
    Canonical link element
    Sitemap URLs
    Redirects
    & More https://ahrefs.com/blog/canonicalization/

    View Slide

  30. @patrickstox #brightonseo
    4.6% Of Domains Have Pages
    With Incorrect Hreflang Values
    Incorrect hreflang values

    View Slide

  31. @patrickstox #brightonseo
    2 Letter Codes
    Language (ISO 639-1)
    Country (ISO 3166-1)

    View Slide

  32. @patrickstox #brightonseo
    X Country Code Instead Of
    Language Code
    jp instead of ja

    View Slide

  33. @patrickstox #brightonseo
    X Typos
    js instead of ja

    View Slide

  34. @patrickstox #brightonseo
    X Region Codes
    la is Laos, not Latin America

    View Slide

  35. @patrickstox #brightonseo
    X Three Letter Codes
    gbr instead of gb

    View Slide

  36. @patrickstox #brightonseo
    ✓ en-uk Instead Of en-gb
    “uk” is specially reserved

    View Slide

  37. @patrickstox #brightonseo
    No Error For It When This
    Report Existed

    View Slide

  38. @patrickstox #brightonseo
    The Report Is Gone Now

    View Slide

  39. @patrickstox #brightonseo
    3.2% Of Domains Have Pages With
    Inconsistent Language Attributes
    Inconsistent language
    attributes

    View Slide

  40. @patrickstox #brightonseo
    2.5% Of Domains Have More Than One
    Page Referenced For The Same Language
    More than one page
    referenced for the same
    language

    View Slide

  41. @patrickstox #brightonseo
    X More Than One Page Referenced
    For The Same Language
    en > Page
    en > Page 2

    View Slide

  42. @patrickstox #brightonseo
    2.5% Of Domains Have The Same Page
    Referenced For More Than One Language
    Same page referenced for
    more than one language

    View Slide

  43. @patrickstox #brightonseo
    X The Same Page Referenced
    For More Than One Language
    en > Page 1
    de > Page 1

    View Slide

  44. @patrickstox #brightonseo
    What Else You Can Get Away With

    View Slide

  45. @patrickstox #brightonseo
    ✓ Underscore Instead Of Dash
    en_gb instead of en-gb

    View Slide

  46. @patrickstox #brightonseo
    ✓ Relative URLs Instead Of Absolute
    /page1 instead of
    https://domain.com/page1

    View Slide

  47. @patrickstox #brightonseo
    Other Things To Check

    View Slide

  48. @patrickstox #brightonseo
    X Multiple Language Versions
    On The Same Page
    URL1 – English Content
    URL1 – Spanish Content
    URL1 – German Content

    View Slide

  49. @patrickstox #brightonseo
    Automated Redirects Are
    Generally A Bad Idea
    Logic: Cookies, IP, Browser Language

    View Slide

  50. @patrickstox #brightonseo
    Use It This Way Instead

    View Slide

  51. @patrickstox #brightonseo
    X Don’t Make Those Too Big

    View Slide

  52. @patrickstox #brightonseo
    ✓ Encoded Characters %20
    UTF-8 is fine with Google

    View Slide

  53. @patrickstox #brightonseo
    X Encoded Characters %20
    Not all parts of your tech
    stack may support it

    View Slide

  54. @patrickstox #brightonseo
    X Break

    View Slide

  55. @patrickstox #brightonseo
    X Noindex
    The pages need to be indexed

    View Slide

  56. @patrickstox #brightonseo
    Troubleshooting
    This is gone, now what?

    View Slide

  57. @patrickstox #brightonseo
    Traditional Site Audit
    Scheduled crawls

    View Slide

  58. @patrickstox #brightonseo
    Constant Crawl + Alerts
    Finds issues faster

    View Slide

  59. @patrickstox #brightonseo
    Regression Tests
    Tests code changes

    View Slide

  60. @patrickstox #brightonseo
    First Of It’s Kind

    View Slide

  61. @patrickstox #brightonseo
    Wrong Pages Might Show Even If
    Your Setup Is Right

    View Slide

  62. @patrickstox #brightonseo
    What Would Patrick Do?
    (WWPD)

    View Slide

  63. @patrickstox #brightonseo
    I Prefer One Page Per
    Language
    1. Fewer, stronger pages
    2. Dynamic personalization

    View Slide

  64. @patrickstox #brightonseo

    View Slide