Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

@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

Slide 3

Slide 3 text

@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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

@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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

@patrickstox #brightonseo X-default Is Not Required

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

@patrickstox #brightonseo Hreflang Tags Work In Pairs

Slide 14

Slide 14 text

@patrickstox #brightonseo They Form An Hreflang Cluster

Slide 15

Slide 15 text

@patrickstox #brightonseo X Block Pages With Robots.txt

Slide 16

Slide 16 text

@patrickstox #brightonseo Hreflang + Duplicate Pages – Signals Consolidate

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

@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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

@patrickstox #brightonseo Branded - English

Slide 23

Slide 23 text

@patrickstox #brightonseo Branded - Spanish

Slide 24

Slide 24 text

@patrickstox #brightonseo Branded - French

Slide 25

Slide 25 text

@patrickstox #brightonseo Same Word - English

Slide 26

Slide 26 text

@patrickstox #brightonseo Same Word - Spanish

Slide 27

Slide 27 text

@patrickstox #brightonseo Same Word - French

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

@patrickstox #brightonseo X Typos js instead of ja

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

@patrickstox #brightonseo The Report Is Gone Now

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

@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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

@patrickstox #brightonseo What Else You Can Get Away With

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

@patrickstox #brightonseo Other Things To Check

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

@patrickstox #brightonseo Use It This Way Instead

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

@patrickstox #brightonseo X Break

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

@patrickstox #brightonseo Traditional Site Audit Scheduled crawls

Slide 58

Slide 58 text

@patrickstox #brightonseo Constant Crawl + Alerts Finds issues faster

Slide 59

Slide 59 text

@patrickstox #brightonseo Regression Tests Tests code changes

Slide 60

Slide 60 text

@patrickstox #brightonseo First Of It’s Kind

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

@patrickstox #brightonseo