SlideShare a Scribd company logo
1 of 97
Download to read offline
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

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 WayMartin Hayman
 
Martin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry
 
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdf
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdfHow to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdf
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdfAS Marketing
 
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.pptxAlexHickson3
 
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxBrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxJosephineHaagen
 
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
 
The Hidden Gems of Low search volume
The Hidden Gems of Low search volumeThe Hidden Gems of Low search volume
The Hidden Gems of Low search volumeLiraz Postan
 
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegonGoogle Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegonAleyda Solís
 
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdfBrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf🇺🇲 🇬🇧 Kara Thurkettle
 
Stoicism in Digital - brightonSEO April 2022.pdf
Stoicism in Digital  - brightonSEO April 2022.pdfStoicism in Digital  - brightonSEO April 2022.pdf
Stoicism in Digital - brightonSEO April 2022.pdfAlex Wright
 
Managing Expectations with Impossible Keywords - Jess Maloney - BrightonSEO ...
Managing Expectations with Impossible Keywords - Jess Maloney  - BrightonSEO ...Managing Expectations with Impossible Keywords - Jess Maloney  - BrightonSEO ...
Managing Expectations with Impossible Keywords - Jess Maloney - BrightonSEO ...JessMaloney
 
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympus
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympusThe Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympus
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympusAleyda Solís
 
How to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverHow to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverFelipe Bazon
 
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...Ian Helms
 
Kleecks - AI-Martech as a game changer-DEF.pdf
Kleecks - AI-Martech as a game changer-DEF.pdfKleecks - AI-Martech as a game changer-DEF.pdf
Kleecks - AI-Martech as a game changer-DEF.pdfKleecks
 
SEO at Scale - BrightonSEO April 2022
SEO at Scale - BrightonSEO April 2022SEO at Scale - BrightonSEO April 2022
SEO at Scale - BrightonSEO April 2022Nitin Manchanda
 
Using Search Intent in our Link Building Efforts
Using Search Intent in our Link Building EffortsUsing Search Intent in our Link Building Efforts
Using Search Intent in our Link Building EffortsChris Czermak
 
The Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesThe Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesMordy Oberstein
 
BrightonSEO Slides April 2023
BrightonSEO Slides April 2023BrightonSEO Slides April 2023
BrightonSEO Slides April 2023Cheryl Luzet
 

What's hot (20)

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 McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth Southgate
 
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdf
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdfHow to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdf
How to Combat SERP Volatility - Adriana Stein - BrightonSEO Slides 2023pdf
 
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
 
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxBrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
 
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...
 
Don't be a cannibal
Don't be a cannibalDon't be a cannibal
Don't be a cannibal
 
The Hidden Gems of Low search volume
The Hidden Gems of Low search volumeThe Hidden Gems of Low search volume
The Hidden Gems of Low search volume
 
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegonGoogle Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
Google Sheets + SEO = 15 tips en 15 minutos #VamosTalegon
 
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdfBrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf
BrightonSEO April 2022 - Kara Thurkettle - Search in the Metaverse.pdf
 
Stoicism in Digital - brightonSEO April 2022.pdf
Stoicism in Digital  - brightonSEO April 2022.pdfStoicism in Digital  - brightonSEO April 2022.pdf
Stoicism in Digital - brightonSEO April 2022.pdf
 
Managing Expectations with Impossible Keywords - Jess Maloney - BrightonSEO ...
Managing Expectations with Impossible Keywords - Jess Maloney  - BrightonSEO ...Managing Expectations with Impossible Keywords - Jess Maloney  - BrightonSEO ...
Managing Expectations with Impossible Keywords - Jess Maloney - BrightonSEO ...
 
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympus
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympusThe Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympus
The Ultimate SEO Guide for Successful Web Migrations at #DigitalOlympus
 
How to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverHow to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google Discover
 
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...
Not Just Pride Month: Crafting LGBTQ+-Inclusive Campaigns Year Round - bright...
 
Kleecks - AI-Martech as a game changer-DEF.pdf
Kleecks - AI-Martech as a game changer-DEF.pdfKleecks - AI-Martech as a game changer-DEF.pdf
Kleecks - AI-Martech as a game changer-DEF.pdf
 
SEO at Scale - BrightonSEO April 2022
SEO at Scale - BrightonSEO April 2022SEO at Scale - BrightonSEO April 2022
SEO at Scale - BrightonSEO April 2022
 
Using Search Intent in our Link Building Efforts
Using Search Intent in our Link Building EffortsUsing Search Intent in our Link Building Efforts
Using Search Intent in our Link Building Efforts
 
The Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesThe Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title Rewrites
 
BrightonSEO Slides April 2023
BrightonSEO Slides April 2023BrightonSEO Slides April 2023
BrightonSEO Slides April 2023
 

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 MarkupBill Slawski
 
Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014Yleisradion toimintaymparistokatsaus 1-2014
Yleisradion toimintaymparistokatsaus 1-2014Yle.fi
 
Boston as a preffered Investment Destination
Boston as a preffered Investment DestinationBoston as a preffered Investment Destination
Boston as a preffered Investment DestinationAshish Tandon
 
Salesforce Essentials Calgary Keynote
Salesforce Essentials Calgary KeynoteSalesforce Essentials Calgary Keynote
Salesforce Essentials Calgary Keynotenwyne
 
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 MagazineThe 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 OrganisationNick Brown
 
Adobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introductionAdobe Illustrator – Minimal introduction
Adobe Illustrator – Minimal introductionRamses 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 AWSNick Brown
 
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 RevenueJoe Pulizzi
 
Resep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesiaResep masakan dan minuman populer indonesia
Resep masakan dan minuman populer indonesiaBobokmarky
 

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

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 themSara Moccand-Sayegh
 
CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nlHans Kuijpers
 
Getting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital MarketingGetting Tactical with LATAM Digital Marketing
Getting Tactical with LATAM Digital MarketingZeph Snapp
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Mike Arnesen
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web DesignClarissa 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 KeynoteBoyd Hemphill
 
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 2017Codemotion
 

Similar to hreflang across the globe (10)

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
 
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 professionalsJoost 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 madnessJoost de Valk
 
SEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook nietSEO - Stabiel, en toch ook niet
SEO - Stabiel, en toch ook nietJoost de Valk
 
Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015Holistic SEO - WordCamp NL 2015
Holistic SEO - WordCamp NL 2015Joost 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 2014Joost 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 commonsJoost de Valk
 
WordPress, Schema & more
WordPress, Schema & moreWordPress, Schema & more
WordPress, Schema & moreJoost 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 RotterdamJoost 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 SERPsJoost 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

定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 

Recently uploaded (20)

young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 

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