SlideShare une entreprise Scribd logo
1  sur  97
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Agile SEO: Prioritise SEO Activities with Cadence and Risk Radius
Agile SEO: Prioritise SEO Activities with Cadence and Risk RadiusAgile SEO: Prioritise SEO Activities with Cadence and Risk Radius
Agile SEO: Prioritise SEO Activities with Cadence and Risk RadiusParth Suba
 
How to categorise 100K search queries in 15 minutes - MeasureFest
How to categorise 100K search queries in 15 minutes - MeasureFestHow to categorise 100K search queries in 15 minutes - MeasureFest
How to categorise 100K search queries in 15 minutes - MeasureFestRichard Lawrence
 
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...CloudNine PR
 
Can you trust AI with your content?
Can you trust AI with your content?Can you trust AI with your content?
Can you trust AI with your content?Mat Bennett
 
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...Kristina Azarenko
 
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 2021Sophie Gibson
 
Actionable Tips to Increase Your Website Authority - Lily Ray
Actionable Tips to Increase Your Website Authority - Lily RayActionable Tips to Increase Your Website Authority - Lily Ray
Actionable Tips to Increase Your Website Authority - Lily RayLily Ray
 
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...Aleyda Solís
 
SEOWars: Rstudio aplicado a SEO #sob22
SEOWars: Rstudio aplicado a SEO #sob22SEOWars: Rstudio aplicado a SEO #sob22
SEOWars: Rstudio aplicado a SEO #sob22MJ Cachón Yáñez
 
Aleyda Solis: How to develop actionable and impactful SEO audits
Aleyda Solis: How to develop actionable and impactful SEO auditsAleyda Solis: How to develop actionable and impactful SEO audits
Aleyda Solis: How to develop actionable and impactful SEO auditsSearchNorwich
 
Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Rebecca Moss
 
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdf
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdfPaige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdf
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdfPaige Hobart
 
EAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It BackwardsEAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It BackwardsEdwardZiubrzynski1
 
Brighton SEO April 2022 - Automate the technical SEO stuff
Brighton SEO April 2022 - Automate the technical SEO stuffBrighton SEO April 2022 - Automate the technical SEO stuff
Brighton SEO April 2022 - Automate the technical SEO stuffMichael Van Den Reym
 
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...Lily Ray
 
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]Luis M Villanueva
 
What is in a link?
What is in a link?What is in a link?
What is in a link?Dixon Jones
 
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
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast Aleyda 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
 

Tendances (20)

Agile SEO: Prioritise SEO Activities with Cadence and Risk Radius
Agile SEO: Prioritise SEO Activities with Cadence and Risk RadiusAgile SEO: Prioritise SEO Activities with Cadence and Risk Radius
Agile SEO: Prioritise SEO Activities with Cadence and Risk Radius
 
How to categorise 100K search queries in 15 minutes - MeasureFest
How to categorise 100K search queries in 15 minutes - MeasureFestHow to categorise 100K search queries in 15 minutes - MeasureFest
How to categorise 100K search queries in 15 minutes - MeasureFest
 
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...
PR Newsjacking - the ups and downs. A talk about PR newsjacking from the Onli...
 
Can you trust AI with your content?
Can you trust AI with your content?Can you trust AI with your content?
Can you trust AI with your content?
 
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...
How Online Stores Can Quickly Build Sub-categories Targeting Long-tail Keywor...
 
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
 
Actionable Tips to Increase Your Website Authority - Lily Ray
Actionable Tips to Increase Your Website Authority - Lily RayActionable Tips to Increase Your Website Authority - Lily Ray
Actionable Tips to Increase Your Website Authority - Lily Ray
 
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...
Identifying Top Converting Queries at Every Stage of the Customer Journey #SM...
 
SEOWars: Rstudio aplicado a SEO #sob22
SEOWars: Rstudio aplicado a SEO #sob22SEOWars: Rstudio aplicado a SEO #sob22
SEOWars: Rstudio aplicado a SEO #sob22
 
Aleyda Solis: How to develop actionable and impactful SEO audits
Aleyda Solis: How to develop actionable and impactful SEO auditsAleyda Solis: How to develop actionable and impactful SEO audits
Aleyda Solis: How to develop actionable and impactful SEO audits
 
Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...
 
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdf
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdfPaige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdf
Paige Hobart - What is "Content"? |SEO Meetup London - 8th September.pdf
 
EAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It BackwardsEAT: Have We Been Looking At It Backwards
EAT: Have We Been Looking At It Backwards
 
Brighton SEO April 2022 - Automate the technical SEO stuff
Brighton SEO April 2022 - Automate the technical SEO stuffBrighton SEO April 2022 - Automate the technical SEO stuff
Brighton SEO April 2022 - Automate the technical SEO stuff
 
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...
MozCon 2022: Why Real Expertise is the Most Important Ranking Factor of Them ...
 
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]
Un Puzzle de 4 piezas llamado SEO [#ECONGRESS19]
 
What is in a link?
What is in a link?What is in a link?
What is in a link?
 
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
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast
 
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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
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
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
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
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
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
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
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
 
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
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 

Dernier (20)

定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
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
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
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
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
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
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
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)
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
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
 
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
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
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
 

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