SlideShare a Scribd company logo
hreflang across the globe
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
Today!
• What is hreflang?

• Design choices

• Common issues

• Useful tools
ISS Munich - #iss #hreflang - @jdevalk
What is hreflang?
ISS Munich - #iss #hreflang - @jdevalk
What is hreflang?
“Google uses the rel="alternate"
hreflang="x" attributes to serve the correct
language or regional URL in Search results.”
ISS Munich - #iss #hreflang - @jdevalk
What is hreflang?
In short: serve the right language version to the
user, based on their locale and location.
ISS Munich - #iss #hreflang - @jdevalk
What is it meant for?
ISS Munich - #iss #hreflang - @jdevalk
What is it meant for?
• Fully translated sites
ISS Munich - #iss #hreflang - @jdevalk
What is it meant for?
• Fully translated sites
• Sites with regional variation
ISS Munich - #iss #hreflang - @jdevalk
What is it meant for?
• Fully translated sites
• Sites with regional variation
• Only the template gets translated, main
content is the same (but don’t do this!!)
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
English site Dutch siteGerman site
hreflang=“de” href=“http://example.com/de/”
hreflang=“en” href=“http://example.com/en/”
hreflang=“nl” href=“http://example.com/nl/”
What would happen?
• Someone searching in Dutch would get the Dutch site. 

• Someone searching in German would get the German site. 

• Someone searching in English would get the English site.
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
German site
for Germany
German site
for Switzerland
German site
for Austria
href="http://www.example.com/de-de/" hreflang="de-de"
href="http://www.example.com/de-at/" hreflang="de-at"
href="http://www.example.com/de-ch/" hreflang="de-ch"
What would happen?
• Someone searching in German in Germany would get
the /de-de/ site. 

• Someone searching in German in Austria would get
the /de-at/ site. 

• Someone searching in German in Switzerland would
get the /de-ch/ site.
ISS Munich - #iss #hreflang - @jdevalk
But beware!
ISS Munich - #iss #hreflang - @jdevalk
But beware!
• In the previous example, which page would German
speaking / seeking people in Belgium get?

ISS Munich - #iss #hreflang - @jdevalk
But beware!
• In the previous example, which page would German
speaking / seeking people in Belgium get?

• A better solution:
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
German site
for Germany
& rest of world
German site
for Switzerland
German site
for Austria
href="http://www.example.com/de-de/" hreflang="de"
href="http://www.example.com/de-at/" hreflang="de-at"
href="http://www.example.com/de-ch/" hreflang="de-ch"
x-default
“The new x-default hreflang attribute value
signals to our algorithms that this page doesn’t
target any specific language or locale and is the
default page when no other page is better
suited.”

https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html
ISS Munich - #iss #hreflang - @jdevalk
x-default
“The x-default hreflang value signals
to our algorithms that such a page
doesn’t target a specific language or
locale.”

https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html
ISS Munich - #iss #hreflang - @jdevalk
x-default
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
English site Dutch siteGerman site
hreflang=“de” href=“http://example.com/de/”
hreflang=“en” href=“http://example.com/en/”
hreflang=“nl” href=“http://example.com/nl/”
hreflang=“x-default” href=“http://example.com/”
Country
selector page
What would happen?
ISS Munich - #iss #hreflang - @jdevalk
What would happen?
• Someone searching in Dutch would get the Dutch site.
ISS Munich - #iss #hreflang - @jdevalk
What would happen?
• Someone searching in Dutch would get the Dutch site.
• Someone searching in German would get the German
site.
ISS Munich - #iss #hreflang - @jdevalk
What would happen?
• Someone searching in Dutch would get the Dutch site.
• Someone searching in German would get the German
site.
• Someone searching in English would get the English
site.
ISS Munich - #iss #hreflang - @jdevalk
What would happen?
• Someone searching in Dutch would get the Dutch site.
• Someone searching in German would get the German
site.
• Someone searching in English would get the English
site.
• Someone searching in Spanish would get the country /
language selector.
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
German site
for Germany
& rest of world
German site
for Switzerland
German site
for Austria
href="http://www.example.com/de-de/" hreflang="de"
href="http://www.example.com/de-at/" hreflang="de-at"
href="http://www.example.com/de-ch/" hreflang=“de-ch"
href="http://www.example.com/de-de/" hreflang=“x-default"
hreflang design choices
ISS Munich - #iss #hreflang - @jdevalk
hreflang implementation options
• HTML meta tags

• HTTP headers

• XML sitemap
ISS Munich - #iss #hreflang - @jdevalk
HTML meta tags
Easiest when you’re not in full control of everything:

<link rel="alternate" href="http://example.com/en-gb" hreflang="en-gb" />
<link rel="alternate" href="http://example.com/en-us" hreflang="en-us" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
ISS Munich - #iss #hreflang - @jdevalk
HTTP headers
Very useful for non HTML content:

Link: <http://es.example.com/document.pdf>; rel="alternate"; hreflang="es",
<http://en.example.com/document.pdf>; rel="alternate"; hreflang="en",
<http://de.example.com/document.pdf>; rel="alternate"; hreflang=“de"
Not always as easy to maintain for other stuff.

ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">




<url>
<loc>http://www.example.com/english/</loc>
<xhtml:link rel=“alternate" hreflang="de"
href="http://www.example.com/deutsch/"/>
<xhtml:link rel=“alternate" hreflang="de-ch"
href="http://www.example.com/schweiz-deutsch/"/>
<xhtml:link rel=“alternate" hreflang="en"
href="http://www.example.com/english/"/>
</url>
ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
[…]
<url>
<loc>http://www.example.com/deutsch/</loc>
<xhtml:link rel=“alternate" hreflang="en"
href="http://www.example.com/english/"/>
<xhtml:link rel=“alternate" hreflang="de-ch"
href="http://www.example.com/schweiz-deutsch/"/>
<xhtml:link rel=“alternate” hreflang="de"
href="http://www.example.com/deutsch/"/>
</url>
ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
• horribly ugly
ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
• horribly ugly
• but easiest to maintain
ISS Munich - #iss #hreflang - @jdevalk
XML Sitemap
• horribly ugly
• but easiest to maintain
• doesn’t add kilobytes to each page load
ISS Munich - #iss #hreflang - @jdevalk
hreflang breaks - often
ISS Munich - #iss #hreflang - @jdevalk
Common issues
Yes. Common.

This very scientifically 

correct pie chart from 

David Sottimano is sadly 

close to the truth:

ISS Munich - #iss #hreflang - @jdevalk
Hreflang implementation
5%
95%
Screwed up
Got it right
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
• broken URLs
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
• broken URLs
• URLs that are redirected
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
• broken URLs
• URLs that are redirected
• relative URLs
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
• broken URLs
• URLs that are redirected
• relative URLs
1. Broken links / relative URLs
ISS Munich - #iss #hreflang - @jdevalk
If your hreflang href links to:
• broken URLs
• URLs that are redirected
• relative URLs
It won’t work.
2. Missing return link
ISS Munich - #iss #hreflang - @jdevalk
2. Missing return link
ISS Munich - #iss #hreflang - @jdevalk
If page A says A is English and B is German.
2. Missing return link
ISS Munich - #iss #hreflang - @jdevalk
If page A says A is English and B is German.
Page B needs to say B is German and A is English.
2. Missing return link
ISS Munich - #iss #hreflang - @jdevalk
If page A says A is English and B is German.
Page B needs to say B is German and A is English.
It can not lack the return link.
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
Language and Country / Region codes follow strict ISO
specs.
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
Language and Country / Region codes follow strict ISO
specs.
The first bit is the language, two letters, in ISO 639-1
format.
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
Language and Country / Region codes follow strict ISO
specs.
The first bit is the language, two letters, in ISO 639-1
format.
The second (optional) bit is the region. In ISO 3166-1
Alpha 2 format.
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
So Ferrari got it slightly wrong:

<link rel="alternate" hreflang="en-en" href="http://www.ferrari.com/en_en/" />
<link rel="alternate" hreflang="fr-fr" href="http://www.ferrari.com/fr_fr/" />
<link rel="alternate" hreflang="de-de" href="http://www.ferrari.com/de_de/" />
<link rel="alternate" hreflang="es-es" href="http://www.ferrari.com/es_es/" />
<link rel="alternate" hreflang="it-it" href="http://www.ferrari.com/it_it/" />
<link rel="alternate" hreflang="en-us" href="http://www.ferrari.com/en_us/" />
<link rel="alternate" hreflang="ja-jp" href="http://www.ferrari.com/ja_jp/" />
<link rel="alternate" hreflang="zh-cn" href="http://www.ferrari.com/zh_cn/" />
<link rel="alternate" hreflang="nl" href="http://www.ferrari.com/nl_nl/" />
This was on their nl page.
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
3. Wrong country / region code
ISS Munich - #iss #hreflang - @jdevalk
This is btw quite a common issue:

<link href="http://www.independent.co.uk/"
rel="alternate" hreflang="en-uk" />
This should be en-gb of course!
4. Canonical interference
ISS Munich - #iss #hreflang - @jdevalk
4. Canonical interference
ISS Munich - #iss #hreflang - @jdevalk
4. Canonical interference
ISS Munich - #iss #hreflang - @jdevalk
Each language should have a canonical that
points to itself.
4. Canonical interference
ISS Munich - #iss #hreflang - @jdevalk
Each language should have a canonical that
points to itself.
If it doesn’t follow that simple rule, it’ll
prevent hreflang from working.
4. Canonical interference
ISS Munich - #iss #hreflang - @jdevalk
Each language should have a canonical that
points to itself.
If it doesn’t follow that simple rule, it’ll
prevent hreflang from working.
So, in our earlier example:
ISS Munich - #iss #hreflang - @jdevalk
English site Dutch siteGerman site
<link rel=“alternate” hreflang=“de” href=“http://example.com/de/”>
<link rel=“alternate” hreflang=“en” href=“http://example.com/en/”>
<link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”>
<link rel=“canonical” href=“http://example.com/en/”>
Correct implementation:
ISS Munich - #iss #hreflang - @jdevalk
English site Dutch siteGerman site
Correct implementation:
<link rel=“alternate” hreflang=“de” href=“http://example.com/de/”>
<link rel=“alternate” hreflang=“en” href=“http://example.com/en/”>
<link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”>
<link rel=“canonical” href=“http://example.com/de/”>
ISS Munich - #iss #hreflang - @jdevalk
English site Dutch siteGerman site
Correct implementation:
<link rel=“alternate” hreflang=“de” href=“http://example.com/de/”>
<link rel=“alternate” hreflang=“en” href=“http://example.com/en/”>
<link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”>
<link rel=“canonical” href=“http://example.com/nl/”>
5. It looks fine but it says it’s broken!
ISS Munich - #iss #hreflang - @jdevalk
Maybe you have two implementations? If so…
Get rid of one!
Useful tools
hreflang tag generator
http://yoa.st/hreflanggenerator
ISS Munich - #iss #hreflang - @jdevalk
hreflang XML sitemap generator
http://www.themediaflow.com/tool_hreflang
ISS Munich - #iss #hreflang - @jdevalk
hreflang XML sitemap generator
http://www.themediaflow.com/tool_hreflang
ISS Munich - #iss #hreflang - @jdevalk
hreflang tag validator
http://flang.dejanseo.com.au/
ISS Munich - #iss #hreflang - @jdevalk
ISS Munich - #iss #hreflang - @jdevalk
http://yoa.st/hreflangchrome
hreflang tag recognition
ISS Munich - #iss #hreflang - @jdevalk
hreflang tag recognition
Keep auditing
It works now!
ISS Munich - #iss #hreflang - @jdevalk
It works now!
No. It works now.
ISS Munich - #iss #hreflang - @jdevalk
It works now!
No. It works now.
It will break.
ISS Munich - #iss #hreflang - @jdevalk
Common reasons for breakage
ISS Munich - #iss #hreflang - @jdevalk
Common reasons for breakage
Pages that are redirected, but the hreflang wasn’t
updated.
ISS Munich - #iss #hreflang - @jdevalk
Common reasons for breakage
Pages that are redirected, but the hreflang wasn’t
updated.
Pages that have been deleted in one language but
not in the other(s).
ISS Munich - #iss #hreflang - @jdevalk
Common reasons for breakage
Pages that are redirected, but the hreflang wasn’t
updated.
Pages that have been deleted in one language but
not in the other(s).
A developer thought “this can be done so much
simpler”, and breaks it all.
ISS Munich - #iss #hreflang - @jdevalk
Regular audits
ISS Munich - #iss #hreflang - @jdevalk
Regular audits
To prevent breakage, you need to audit
regularly.
ISS Munich - #iss #hreflang - @jdevalk
Regular audits
To prevent breakage, you need to audit
regularly.
If you have continuous integration, add
hreflang tests.
ISS Munich - #iss #hreflang - @jdevalk
Setup (regular) tests
Manually with Screaming Frog, or automated.
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
Make sure the code that generates hreflang:
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
Make sure the code that generates hreflang:
• has documentation that explains why;
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
Make sure the code that generates hreflang:
• has documentation that explains why;
• points to documentation on the how;
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
Make sure the code that generates hreflang:
• has documentation that explains why;
• points to documentation on the how;
• explains special cases like x-default;
ISS Munich - #iss #hreflang - @jdevalk
Audit source code
Make sure the code that generates hreflang:
• has documentation that explains why;
• points to documentation on the how;
• explains special cases like x-default;
• explains relationship to canonical.
ISS Munich - #iss #hreflang - @jdevalk
Regular audits
ISS Munich - #iss #hreflang - @jdevalk
Regular audits and smart code

documentation will keep your 

hreflang happy!
Questions?
Follow along:

• https://yoast.com/

• @jdevalk & @yoast on Twitter

• facebook.com/yoast
ISS Munich - #iss #hreflang - @jdevalk

More Related Content

What's hot

GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automation
GretaMunari1
 
How to go viral on a budget using Digital PR.pptx
How to go viral on a budget using Digital PR.pptxHow to go viral on a budget using Digital PR.pptx
How to go viral on a budget using Digital PR.pptx
AlexHickson3
 
Extreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture EditionExtreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture Edition
Kavi Kardos
 
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
Chloe Smith
 
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
Isa Lavs
 
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
Aleyda Solís
 
How to produce great multilingual content, even when you can't read it | Laur...
How to produce great multilingual content, even when you can't read it | Laur...How to produce great multilingual content, even when you can't read it | Laur...
How to produce great multilingual content, even when you can't read it | Laur...
Oban International
 
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
Sarah Presch
 
Why your tech optimisations are still sat in the backlog
Why your tech optimisations are still sat in the backlogWhy your tech optimisations are still sat in the backlog
Why your tech optimisations are still sat in the backlog
Vicky481083
 
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
Sophie Gibson
 
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
Aleyda Solís
 
BrightonSEO - Exploring Cognitive Load (1).pptx
BrightonSEO - Exploring Cognitive Load (1).pptxBrightonSEO - Exploring Cognitive Load (1).pptx
BrightonSEO - Exploring Cognitive Load (1).pptx
Emma Russell
 
Internal Linking - The Topic Clustering Way edited.pptx
Internal Linking - The Topic Clustering Way edited.pptxInternal Linking - The Topic Clustering Way edited.pptx
Internal Linking - The Topic Clustering Way edited.pptx
Dixon Jones
 
Winning SEO when Migrating International Websites #dguconf
Winning SEO when Migrating International Websites #dguconfWinning SEO when Migrating International Websites #dguconf
Winning SEO when Migrating International Websites #dguconf
Aleyda Solís
 
Veronika bSEO-Googles-MUM-Speaker-Slides.pptx
Veronika bSEO-Googles-MUM-Speaker-Slides.pptxVeronika bSEO-Googles-MUM-Speaker-Slides.pptx
Veronika bSEO-Googles-MUM-Speaker-Slides.pptx
Veronika Höller
 
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
Kristina Azarenko
 
How to take care of yourself when researching/writing about tough subjects
How to take care of yourself when researching/writing about tough subjectsHow to take care of yourself when researching/writing about tough subjects
How to take care of yourself when researching/writing about tough subjects
Kat Nicholls
 
Results Are Good - So Why Do Clients Really Leave?
Results Are Good - So Why Do Clients Really Leave?Results Are Good - So Why Do Clients Really Leave?
Results Are Good - So Why Do Clients Really Leave?
SophieBrannon
 
The Quickest Win in SEO – How to do Internal Linking the Right Way
The Quickest Win in SEO – How to do Internal Linking the Right WayThe Quickest Win in SEO – How to do Internal Linking the Right Way
The Quickest Win in SEO – How to do Internal Linking the Right Way
Martin Hayman
 
Hreflang tags: everything you need to know to start implementing them
Hreflang tags: everything you need to know to start implementing themHreflang tags: everything you need to know to start implementing them
Hreflang tags: everything you need to know to start implementing them
Sara Moccand-Sayegh
 

What's hot (20)

GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automation
 
How to go viral on a budget using Digital PR.pptx
How to go viral on a budget using Digital PR.pptxHow to go viral on a budget using Digital PR.pptx
How to go viral on a budget using Digital PR.pptx
 
Extreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture EditionExtreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture Edition
 
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
Content Design & its Role in SEO and Accessibility [BrightonSEO Spring 2023]
 
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
How to be the ultimate double agent- PR and Link Builder Isa Lavahun BTNSEO S...
 
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
Hreflang: 
Is it really still necessary and 
how to use it successfully in 2023
 
How to produce great multilingual content, even when you can't read it | Laur...
How to produce great multilingual content, even when you can't read it | Laur...How to produce great multilingual content, even when you can't read it | Laur...
How to produce great multilingual content, even when you can't read it | Laur...
 
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
 
Why your tech optimisations are still sat in the backlog
Why your tech optimisations are still sat in the backlogWhy your tech optimisations are still sat in the backlog
Why your tech optimisations are still sat in the backlog
 
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
Why the f*ck Doesn't This HREFLANG Work - BrightonSEO Autumn 2021
 
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
 
BrightonSEO - Exploring Cognitive Load (1).pptx
BrightonSEO - Exploring Cognitive Load (1).pptxBrightonSEO - Exploring Cognitive Load (1).pptx
BrightonSEO - Exploring Cognitive Load (1).pptx
 
Internal Linking - The Topic Clustering Way edited.pptx
Internal Linking - The Topic Clustering Way edited.pptxInternal Linking - The Topic Clustering Way edited.pptx
Internal Linking - The Topic Clustering Way edited.pptx
 
Winning SEO when Migrating International Websites #dguconf
Winning SEO when Migrating International Websites #dguconfWinning SEO when Migrating International Websites #dguconf
Winning SEO when Migrating International Websites #dguconf
 
Veronika bSEO-Googles-MUM-Speaker-Slides.pptx
Veronika bSEO-Googles-MUM-Speaker-Slides.pptxVeronika bSEO-Googles-MUM-Speaker-Slides.pptx
Veronika bSEO-Googles-MUM-Speaker-Slides.pptx
 
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
 
How to take care of yourself when researching/writing about tough subjects
How to take care of yourself when researching/writing about tough subjectsHow to take care of yourself when researching/writing about tough subjects
How to take care of yourself when researching/writing about tough subjects
 
Results Are Good - So Why Do Clients Really Leave?
Results Are Good - So Why Do Clients Really Leave?Results Are Good - So Why Do Clients Really Leave?
Results Are Good - So Why Do Clients Really Leave?
 
The Quickest Win in SEO – How to do Internal Linking the Right Way
The Quickest Win in SEO – How to do Internal Linking the Right WayThe Quickest Win in SEO – How to do Internal Linking the Right Way
The Quickest Win in SEO – How to do Internal Linking the Right Way
 
Hreflang tags: everything you need to know to start implementing them
Hreflang tags: everything you need to know to start implementing themHreflang tags: everything you need to know to start implementing them
Hreflang tags: everything you need to know to start implementing them
 

Viewers also liked

Knowledge Panels, Rich Snippets and Semantic Markup
Knowledge Panels, Rich Snippets and Semantic MarkupKnowledge Panels, Rich Snippets and Semantic Markup
Knowledge Panels, Rich Snippets and Semantic Markup
Bill Slawski
 
Feedback presentation
Feedback presentationFeedback presentation
Feedback presentation
Lauren-jade Champion
 
Scholarly Articles for Hypnotherapy and Smoking Study
Scholarly Articles for Hypnotherapy and Smoking StudyScholarly Articles for Hypnotherapy and Smoking Study
Scholarly Articles for Hypnotherapy and Smoking Study
Mindlife Hypnotherapy Singapore
 
Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014
Yle.fi
 
Boston as a preffered Investment Destination
Boston as a preffered Investment DestinationBoston as a preffered Investment Destination
Boston as a preffered Investment Destination
Ashish Tandon
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
Masakazu Muraoka
 
Salesforce Essentials Calgary Keynote
Salesforce Essentials Calgary KeynoteSalesforce Essentials Calgary Keynote
Salesforce Essentials Calgary Keynote
nwyne
 
The constitution of kenya
The constitution of kenyaThe constitution of kenya
The constitution of kenyaLeonardus Ouma
 
สงครามไทยรบพม่า เปรียบเทียบเสียกรุง
สงครามไทยรบพม่า เปรียบเทียบเสียกรุงสงครามไทยรบพม่า เปรียบเทียบเสียกรุง
สงครามไทยรบพม่า เปรียบเทียบเสียกรุง
kokoyadi
 
Planetary Health: A Special Edition of the Economist Magazine
Planetary Health: A Special Edition of the Economist MagazinePlanetary Health: A Special Edition of the Economist Magazine
Planetary Health: A Special Edition of the Economist Magazine
The Rockefeller Foundation
 
Alai alternativa agroecologica
Alai alternativa agroecologicaAlai alternativa agroecologica
Alai alternativa agroecologicaadriecologia
 
Government of India Gazette Notification - The Information Technology (Preser...
Government of India Gazette Notification - The Information Technology (Preser...Government of India Gazette Notification - The Information Technology (Preser...
Government of India Gazette Notification - The Information Technology (Preser...
Amit Ranjan
 
Extending Enterprise Search To Catalyse Innovation In A Global Organisation
Extending Enterprise Search To Catalyse Innovation In A Global OrganisationExtending Enterprise Search To Catalyse Innovation In A Global Organisation
Extending Enterprise Search To Catalyse Innovation In A Global Organisation
Nick Brown
 
Adobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introductionAdobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introduction
Ramses Cabello
 
Tech Incubation. Delivering an enterprise platform on AWS
Tech Incubation. Delivering an enterprise platform on AWSTech Incubation. Delivering an enterprise platform on AWS
Tech Incubation. Delivering an enterprise platform on AWS
Nick Brown
 
Perspectives 2013
Perspectives 2013Perspectives 2013
Content Marketing and Events: Setting Up the Model and Driving Revenue
Content Marketing and Events: Setting Up the Model and Driving RevenueContent Marketing and Events: Setting Up the Model and Driving Revenue
Content Marketing and Events: Setting Up the Model and Driving Revenue
Joe Pulizzi
 
Resep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesiaResep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesia
Bobokmarky
 

Viewers also liked (20)

Knowledge Panels, Rich Snippets and Semantic Markup
Knowledge Panels, Rich Snippets and Semantic MarkupKnowledge Panels, Rich Snippets and Semantic Markup
Knowledge Panels, Rich Snippets and Semantic Markup
 
Feedback presentation
Feedback presentationFeedback presentation
Feedback presentation
 
Understanding the big society pete alcock
Understanding the big society   pete alcockUnderstanding the big society   pete alcock
Understanding the big society pete alcock
 
Scholarly Articles for Hypnotherapy and Smoking Study
Scholarly Articles for Hypnotherapy and Smoking StudyScholarly Articles for Hypnotherapy and Smoking Study
Scholarly Articles for Hypnotherapy and Smoking Study
 
Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014
 
Boston as a preffered Investment Destination
Boston as a preffered Investment DestinationBoston as a preffered Investment Destination
Boston as a preffered Investment Destination
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
Salesforce Essentials Calgary Keynote
Salesforce Essentials Calgary KeynoteSalesforce Essentials Calgary Keynote
Salesforce Essentials Calgary Keynote
 
The constitution of kenya
The constitution of kenyaThe constitution of kenya
The constitution of kenya
 
2014 IS101 lec6
2014 IS101 lec62014 IS101 lec6
2014 IS101 lec6
 
สงครามไทยรบพม่า เปรียบเทียบเสียกรุง
สงครามไทยรบพม่า เปรียบเทียบเสียกรุงสงครามไทยรบพม่า เปรียบเทียบเสียกรุง
สงครามไทยรบพม่า เปรียบเทียบเสียกรุง
 
Planetary Health: A Special Edition of the Economist Magazine
Planetary Health: A Special Edition of the Economist MagazinePlanetary Health: A Special Edition of the Economist Magazine
Planetary Health: A Special Edition of the Economist Magazine
 
Alai alternativa agroecologica
Alai alternativa agroecologicaAlai alternativa agroecologica
Alai alternativa agroecologica
 
Government of India Gazette Notification - The Information Technology (Preser...
Government of India Gazette Notification - The Information Technology (Preser...Government of India Gazette Notification - The Information Technology (Preser...
Government of India Gazette Notification - The Information Technology (Preser...
 
Extending Enterprise Search To Catalyse Innovation In A Global Organisation
Extending Enterprise Search To Catalyse Innovation In A Global OrganisationExtending Enterprise Search To Catalyse Innovation In A Global Organisation
Extending Enterprise Search To Catalyse Innovation In A Global Organisation
 
Adobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introductionAdobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introduction
 
Tech Incubation. Delivering an enterprise platform on AWS
Tech Incubation. Delivering an enterprise platform on AWSTech Incubation. Delivering an enterprise platform on AWS
Tech Incubation. Delivering an enterprise platform on AWS
 
Perspectives 2013
Perspectives 2013Perspectives 2013
Perspectives 2013
 
Content Marketing and Events: Setting Up the Model and Driving Revenue
Content Marketing and Events: Setting Up the Model and Driving RevenueContent Marketing and Events: Setting Up the Model and Driving Revenue
Content Marketing and Events: Setting Up the Model and Driving Revenue
 
Resep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesiaResep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesia
 

Similar to hreflang across the globe

CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nl
Hans Kuijpers
 
Getting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital MarketingGetting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital Marketing
Zeph Snapp
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016
Mike Arnesen
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
Clarissa Peterson
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!
Rudy Rigot
 
Making HREFLANG Manageable: Search Marketing Summit (Sydney)
Making HREFLANG Manageable: Search Marketing Summit (Sydney)Making HREFLANG Manageable: Search Marketing Summit (Sydney)
Making HREFLANG Manageable: Search Marketing Summit (Sydney)
Erudite
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC Keynote
Boyd Hemphill
 
Christian Jakenfelds
Christian JakenfeldsChristian Jakenfelds
Christian Jakenfelds
Connected Data World
 
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
Codemotion
 

Similar to hreflang across the globe (9)

CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nl
 
Getting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital MarketingGetting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital Marketing
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!
 
Making HREFLANG Manageable: Search Marketing Summit (Sydney)
Making HREFLANG Manageable: Search Marketing Summit (Sydney)Making HREFLANG Manageable: Search Marketing Summit (Sydney)
Making HREFLANG Manageable: Search Marketing Summit (Sydney)
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC Keynote
 
Christian Jakenfelds
Christian JakenfeldsChristian Jakenfelds
Christian Jakenfelds
 
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
Does Your Web App Speak Schadenfreude? - Greg Rewis - Codemotion Rome 2017
 

More from Joost de Valk

Beyond SEO: copywriting for professionals
Beyond SEO: copywriting for professionalsBeyond SEO: copywriting for professionals
Beyond SEO: copywriting for professionals
Joost de Valk
 
Large Scale SEO - Method to the madness
Large Scale SEO - Method to the madnessLarge Scale SEO - Method to the madness
Large Scale SEO - Method to the madness
Joost de Valk
 
SEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook nietSEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook niet
Joost de Valk
 
Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015
Joost de Valk
 
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
Joost de Valk
 
Online zaken doen - Google eTown conferentie wijchen
Online zaken doen - Google eTown conferentie wijchenOnline zaken doen - Google eTown conferentie wijchen
Online zaken doen - Google eTown conferentie wijchenJoost de Valk
 
Victory of the commons
Victory of the commonsVictory of the commons
Victory of the commons
Joost de Valk
 
WordPress, Schema & more
WordPress, Schema & moreWordPress, Schema & more
WordPress, Schema & more
Joost de Valk
 
Victory of the Commons - Drupaljam 2013 Rotterdam
Victory of the Commons - Drupaljam 2013 RotterdamVictory of the Commons - Drupaljam 2013 Rotterdam
Victory of the Commons - Drupaljam 2013 Rotterdam
Joost de Valk
 
WordPress, Content Marketing & SEO at WordCamp Romania
WordPress, Content Marketing & SEO at WordCamp RomaniaWordPress, Content Marketing & SEO at WordCamp Romania
WordPress, Content Marketing & SEO at WordCamp RomaniaJoost de Valk
 
Conversion Optimization starts in the SERPs
Conversion Optimization starts in the SERPsConversion Optimization starts in the SERPs
Conversion Optimization starts in the SERPs
Joost de Valk
 
Joost de Valk - SES Amsterdam
Joost de Valk - SES AmsterdamJoost de Valk - SES Amsterdam
Joost de Valk - SES AmsterdamJoost de Valk
 

More from Joost de Valk (13)

Beyond SEO: copywriting for professionals
Beyond SEO: copywriting for professionalsBeyond SEO: copywriting for professionals
Beyond SEO: copywriting for professionals
 
Large Scale SEO - Method to the madness
Large Scale SEO - Method to the madnessLarge Scale SEO - Method to the madness
Large Scale SEO - Method to the madness
 
SEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook nietSEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook niet
 
Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015
 
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
SSL, SEO en Snelheid - WP Meetup Nijmegen 11 september 2014
 
Online zaken doen - Google eTown conferentie wijchen
Online zaken doen - Google eTown conferentie wijchenOnline zaken doen - Google eTown conferentie wijchen
Online zaken doen - Google eTown conferentie wijchen
 
Victory of the commons
Victory of the commonsVictory of the commons
Victory of the commons
 
WordPress, Schema & more
WordPress, Schema & moreWordPress, Schema & more
WordPress, Schema & more
 
Victory of the Commons - Drupaljam 2013 Rotterdam
Victory of the Commons - Drupaljam 2013 RotterdamVictory of the Commons - Drupaljam 2013 Rotterdam
Victory of the Commons - Drupaljam 2013 Rotterdam
 
Optimize for clicks
Optimize for clicksOptimize for clicks
Optimize for clicks
 
WordPress, Content Marketing & SEO at WordCamp Romania
WordPress, Content Marketing & SEO at WordCamp RomaniaWordPress, Content Marketing & SEO at WordCamp Romania
WordPress, Content Marketing & SEO at WordCamp Romania
 
Conversion Optimization starts in the SERPs
Conversion Optimization starts in the SERPsConversion Optimization starts in the SERPs
Conversion Optimization starts in the SERPs
 
Joost de Valk - SES Amsterdam
Joost de Valk - SES AmsterdamJoost de Valk - SES Amsterdam
Joost de Valk - SES Amsterdam
 

Recently uploaded

1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 

Recently uploaded (20)

1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 

hreflang across the globe

  • 1. hreflang across the globe ISS Munich - #iss #hreflang - @jdevalk
  • 2. ISS Munich - #iss #hreflang - @jdevalk
  • 3. Today! • What is hreflang? • Design choices • Common issues • Useful tools ISS Munich - #iss #hreflang - @jdevalk
  • 4. What is hreflang? ISS Munich - #iss #hreflang - @jdevalk
  • 5. What is hreflang? “Google uses the rel="alternate" hreflang="x" attributes to serve the correct language or regional URL in Search results.” ISS Munich - #iss #hreflang - @jdevalk
  • 6. What is hreflang? In short: serve the right language version to the user, based on their locale and location. ISS Munich - #iss #hreflang - @jdevalk
  • 7. What is it meant for? ISS Munich - #iss #hreflang - @jdevalk
  • 8. What is it meant for? • Fully translated sites ISS Munich - #iss #hreflang - @jdevalk
  • 9. What is it meant for? • Fully translated sites • Sites with regional variation ISS Munich - #iss #hreflang - @jdevalk
  • 10. What is it meant for? • Fully translated sites • Sites with regional variation • Only the template gets translated, main content is the same (but don’t do this!!) ISS Munich - #iss #hreflang - @jdevalk
  • 11. ISS Munich - #iss #hreflang - @jdevalk English site Dutch siteGerman site hreflang=“de” href=“http://example.com/de/” hreflang=“en” href=“http://example.com/en/” hreflang=“nl” href=“http://example.com/nl/”
  • 12. What would happen? • Someone searching in Dutch would get the Dutch site. • Someone searching in German would get the German site. • Someone searching in English would get the English site. ISS Munich - #iss #hreflang - @jdevalk
  • 13. ISS Munich - #iss #hreflang - @jdevalk German site for Germany German site for Switzerland German site for Austria href="http://www.example.com/de-de/" hreflang="de-de" href="http://www.example.com/de-at/" hreflang="de-at" href="http://www.example.com/de-ch/" hreflang="de-ch"
  • 14. What would happen? • Someone searching in German in Germany would get the /de-de/ site. • Someone searching in German in Austria would get the /de-at/ site. • Someone searching in German in Switzerland would get the /de-ch/ site. ISS Munich - #iss #hreflang - @jdevalk
  • 15. But beware! ISS Munich - #iss #hreflang - @jdevalk
  • 16. But beware! • In the previous example, which page would German speaking / seeking people in Belgium get?
 ISS Munich - #iss #hreflang - @jdevalk
  • 17. But beware! • In the previous example, which page would German speaking / seeking people in Belgium get?
 • A better solution: ISS Munich - #iss #hreflang - @jdevalk
  • 18. ISS Munich - #iss #hreflang - @jdevalk German site for Germany & rest of world German site for Switzerland German site for Austria href="http://www.example.com/de-de/" hreflang="de" href="http://www.example.com/de-at/" hreflang="de-at" href="http://www.example.com/de-ch/" hreflang="de-ch"
  • 19. x-default “The new x-default hreflang attribute value signals to our algorithms that this page doesn’t target any specific language or locale and is the default page when no other page is better suited.” https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html ISS Munich - #iss #hreflang - @jdevalk
  • 20. x-default “The x-default hreflang value signals to our algorithms that such a page doesn’t target a specific language or locale.” https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html ISS Munich - #iss #hreflang - @jdevalk
  • 21. x-default ISS Munich - #iss #hreflang - @jdevalk
  • 22. ISS Munich - #iss #hreflang - @jdevalk English site Dutch siteGerman site hreflang=“de” href=“http://example.com/de/” hreflang=“en” href=“http://example.com/en/” hreflang=“nl” href=“http://example.com/nl/” hreflang=“x-default” href=“http://example.com/” Country selector page
  • 23. What would happen? ISS Munich - #iss #hreflang - @jdevalk
  • 24. What would happen? • Someone searching in Dutch would get the Dutch site. ISS Munich - #iss #hreflang - @jdevalk
  • 25. What would happen? • Someone searching in Dutch would get the Dutch site. • Someone searching in German would get the German site. ISS Munich - #iss #hreflang - @jdevalk
  • 26. What would happen? • Someone searching in Dutch would get the Dutch site. • Someone searching in German would get the German site. • Someone searching in English would get the English site. ISS Munich - #iss #hreflang - @jdevalk
  • 27. What would happen? • Someone searching in Dutch would get the Dutch site. • Someone searching in German would get the German site. • Someone searching in English would get the English site. • Someone searching in Spanish would get the country / language selector. ISS Munich - #iss #hreflang - @jdevalk
  • 28. ISS Munich - #iss #hreflang - @jdevalk German site for Germany & rest of world German site for Switzerland German site for Austria href="http://www.example.com/de-de/" hreflang="de" href="http://www.example.com/de-at/" hreflang="de-at" href="http://www.example.com/de-ch/" hreflang=“de-ch" href="http://www.example.com/de-de/" hreflang=“x-default"
  • 29. hreflang design choices ISS Munich - #iss #hreflang - @jdevalk
  • 30. hreflang implementation options • HTML meta tags • HTTP headers • XML sitemap ISS Munich - #iss #hreflang - @jdevalk
  • 31. HTML meta tags Easiest when you’re not in full control of everything: <link rel="alternate" href="http://example.com/en-gb" hreflang="en-gb" /> <link rel="alternate" href="http://example.com/en-us" hreflang="en-us" /> <link rel="alternate" href="http://example.com/en-au" hreflang="en-au" /> ISS Munich - #iss #hreflang - @jdevalk
  • 32. HTTP headers Very useful for non HTML content: Link: <http://es.example.com/document.pdf>; rel="alternate"; hreflang="es", <http://en.example.com/document.pdf>; rel="alternate"; hreflang="en", <http://de.example.com/document.pdf>; rel="alternate"; hreflang=“de" Not always as easy to maintain for other stuff. ISS Munich - #iss #hreflang - @jdevalk
  • 33. XML Sitemap <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> 
 
 <url> <loc>http://www.example.com/english/</loc> <xhtml:link rel=“alternate" hreflang="de" href="http://www.example.com/deutsch/"/> <xhtml:link rel=“alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/"/> <xhtml:link rel=“alternate" hreflang="en" href="http://www.example.com/english/"/> </url> ISS Munich - #iss #hreflang - @jdevalk
  • 34. XML Sitemap […] <url> <loc>http://www.example.com/deutsch/</loc> <xhtml:link rel=“alternate" hreflang="en" href="http://www.example.com/english/"/> <xhtml:link rel=“alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/"/> <xhtml:link rel=“alternate” hreflang="de" href="http://www.example.com/deutsch/"/> </url> ISS Munich - #iss #hreflang - @jdevalk
  • 35. XML Sitemap ISS Munich - #iss #hreflang - @jdevalk
  • 36. XML Sitemap • horribly ugly ISS Munich - #iss #hreflang - @jdevalk
  • 37. XML Sitemap • horribly ugly • but easiest to maintain ISS Munich - #iss #hreflang - @jdevalk
  • 38. XML Sitemap • horribly ugly • but easiest to maintain • doesn’t add kilobytes to each page load ISS Munich - #iss #hreflang - @jdevalk
  • 39. hreflang breaks - often ISS Munich - #iss #hreflang - @jdevalk
  • 40. Common issues Yes. Common.
 This very scientifically 
 correct pie chart from 
 David Sottimano is sadly 
 close to the truth:
 ISS Munich - #iss #hreflang - @jdevalk Hreflang implementation 5% 95% Screwed up Got it right
  • 41. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk
  • 42. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to:
  • 43. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to: • broken URLs
  • 44. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to: • broken URLs • URLs that are redirected
  • 45. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to: • broken URLs • URLs that are redirected • relative URLs
  • 46. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to: • broken URLs • URLs that are redirected • relative URLs
  • 47. 1. Broken links / relative URLs ISS Munich - #iss #hreflang - @jdevalk If your hreflang href links to: • broken URLs • URLs that are redirected • relative URLs It won’t work.
  • 48. 2. Missing return link ISS Munich - #iss #hreflang - @jdevalk
  • 49. 2. Missing return link ISS Munich - #iss #hreflang - @jdevalk If page A says A is English and B is German.
  • 50. 2. Missing return link ISS Munich - #iss #hreflang - @jdevalk If page A says A is English and B is German. Page B needs to say B is German and A is English.
  • 51. 2. Missing return link ISS Munich - #iss #hreflang - @jdevalk If page A says A is English and B is German. Page B needs to say B is German and A is English. It can not lack the return link.
  • 52. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk
  • 53. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk Language and Country / Region codes follow strict ISO specs.
  • 54. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk Language and Country / Region codes follow strict ISO specs. The first bit is the language, two letters, in ISO 639-1 format.
  • 55. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk Language and Country / Region codes follow strict ISO specs. The first bit is the language, two letters, in ISO 639-1 format. The second (optional) bit is the region. In ISO 3166-1 Alpha 2 format.
  • 56. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk So Ferrari got it slightly wrong: <link rel="alternate" hreflang="en-en" href="http://www.ferrari.com/en_en/" /> <link rel="alternate" hreflang="fr-fr" href="http://www.ferrari.com/fr_fr/" /> <link rel="alternate" hreflang="de-de" href="http://www.ferrari.com/de_de/" /> <link rel="alternate" hreflang="es-es" href="http://www.ferrari.com/es_es/" /> <link rel="alternate" hreflang="it-it" href="http://www.ferrari.com/it_it/" /> <link rel="alternate" hreflang="en-us" href="http://www.ferrari.com/en_us/" /> <link rel="alternate" hreflang="ja-jp" href="http://www.ferrari.com/ja_jp/" /> <link rel="alternate" hreflang="zh-cn" href="http://www.ferrari.com/zh_cn/" /> <link rel="alternate" hreflang="nl" href="http://www.ferrari.com/nl_nl/" /> This was on their nl page.
  • 57. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk
  • 58. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk
  • 59. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk
  • 60. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk
  • 61. 3. Wrong country / region code ISS Munich - #iss #hreflang - @jdevalk This is btw quite a common issue: <link href="http://www.independent.co.uk/" rel="alternate" hreflang="en-uk" /> This should be en-gb of course!
  • 62. 4. Canonical interference ISS Munich - #iss #hreflang - @jdevalk
  • 63. 4. Canonical interference ISS Munich - #iss #hreflang - @jdevalk
  • 64. 4. Canonical interference ISS Munich - #iss #hreflang - @jdevalk Each language should have a canonical that points to itself.
  • 65. 4. Canonical interference ISS Munich - #iss #hreflang - @jdevalk Each language should have a canonical that points to itself. If it doesn’t follow that simple rule, it’ll prevent hreflang from working.
  • 66. 4. Canonical interference ISS Munich - #iss #hreflang - @jdevalk Each language should have a canonical that points to itself. If it doesn’t follow that simple rule, it’ll prevent hreflang from working. So, in our earlier example:
  • 67. ISS Munich - #iss #hreflang - @jdevalk English site Dutch siteGerman site <link rel=“alternate” hreflang=“de” href=“http://example.com/de/”> <link rel=“alternate” hreflang=“en” href=“http://example.com/en/”> <link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”> <link rel=“canonical” href=“http://example.com/en/”> Correct implementation:
  • 68. ISS Munich - #iss #hreflang - @jdevalk English site Dutch siteGerman site Correct implementation: <link rel=“alternate” hreflang=“de” href=“http://example.com/de/”> <link rel=“alternate” hreflang=“en” href=“http://example.com/en/”> <link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”> <link rel=“canonical” href=“http://example.com/de/”>
  • 69. ISS Munich - #iss #hreflang - @jdevalk English site Dutch siteGerman site Correct implementation: <link rel=“alternate” hreflang=“de” href=“http://example.com/de/”> <link rel=“alternate” hreflang=“en” href=“http://example.com/en/”> <link rel=“alternate” hreflang=“nl” href=“http://example.com/nl/”> <link rel=“canonical” href=“http://example.com/nl/”>
  • 70. 5. It looks fine but it says it’s broken! ISS Munich - #iss #hreflang - @jdevalk Maybe you have two implementations? If so… Get rid of one!
  • 73. hreflang XML sitemap generator http://www.themediaflow.com/tool_hreflang ISS Munich - #iss #hreflang - @jdevalk
  • 74. hreflang XML sitemap generator http://www.themediaflow.com/tool_hreflang ISS Munich - #iss #hreflang - @jdevalk
  • 75. hreflang tag validator http://flang.dejanseo.com.au/ ISS Munich - #iss #hreflang - @jdevalk
  • 76. ISS Munich - #iss #hreflang - @jdevalk http://yoa.st/hreflangchrome hreflang tag recognition
  • 77. ISS Munich - #iss #hreflang - @jdevalk hreflang tag recognition
  • 79. It works now! ISS Munich - #iss #hreflang - @jdevalk
  • 80. It works now! No. It works now. ISS Munich - #iss #hreflang - @jdevalk
  • 81. It works now! No. It works now. It will break. ISS Munich - #iss #hreflang - @jdevalk
  • 82. Common reasons for breakage ISS Munich - #iss #hreflang - @jdevalk
  • 83. Common reasons for breakage Pages that are redirected, but the hreflang wasn’t updated. ISS Munich - #iss #hreflang - @jdevalk
  • 84. Common reasons for breakage Pages that are redirected, but the hreflang wasn’t updated. Pages that have been deleted in one language but not in the other(s). ISS Munich - #iss #hreflang - @jdevalk
  • 85. Common reasons for breakage Pages that are redirected, but the hreflang wasn’t updated. Pages that have been deleted in one language but not in the other(s). A developer thought “this can be done so much simpler”, and breaks it all. ISS Munich - #iss #hreflang - @jdevalk
  • 86. Regular audits ISS Munich - #iss #hreflang - @jdevalk
  • 87. Regular audits To prevent breakage, you need to audit regularly. ISS Munich - #iss #hreflang - @jdevalk
  • 88. Regular audits To prevent breakage, you need to audit regularly. If you have continuous integration, add hreflang tests. ISS Munich - #iss #hreflang - @jdevalk
  • 89. Setup (regular) tests Manually with Screaming Frog, or automated. ISS Munich - #iss #hreflang - @jdevalk
  • 90. Audit source code ISS Munich - #iss #hreflang - @jdevalk
  • 91. Audit source code Make sure the code that generates hreflang: ISS Munich - #iss #hreflang - @jdevalk
  • 92. Audit source code Make sure the code that generates hreflang: • has documentation that explains why; ISS Munich - #iss #hreflang - @jdevalk
  • 93. Audit source code Make sure the code that generates hreflang: • has documentation that explains why; • points to documentation on the how; ISS Munich - #iss #hreflang - @jdevalk
  • 94. Audit source code Make sure the code that generates hreflang: • has documentation that explains why; • points to documentation on the how; • explains special cases like x-default; ISS Munich - #iss #hreflang - @jdevalk
  • 95. Audit source code Make sure the code that generates hreflang: • has documentation that explains why; • points to documentation on the how; • explains special cases like x-default; • explains relationship to canonical. ISS Munich - #iss #hreflang - @jdevalk
  • 96. Regular audits ISS Munich - #iss #hreflang - @jdevalk Regular audits and smart code documentation will keep your hreflang happy!
  • 97. Questions? Follow along: • https://yoast.com/ • @jdevalk & @yoast on Twitter • facebook.com/yoast ISS Munich - #iss #hreflang - @jdevalk