Building Your Learning Module...
Getting things ready for you!
Find videos you like?
Save to resource drawer for future reference!
Hreflang tags tell search engines which language and regional versions of a page to show users based on their location and language preferences. This prevents duplicate content issues and ensures users see the right version.
Serve different language versions of the same content
Target specific regions with localized content (pricing, shipping)
Automatically show users content in their preferred language
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CoderPod - Learn Web Development</title>
<!-- Hreflang for Multiple Languages -->
<link rel="alternate" hreflang="en" href="https://coderpod.com/">
<link rel="alternate" hreflang="es" href="https://coderpod.com/es/">
<link rel="alternate" hreflang="fr" href="https://coderpod.com/fr/">
<link rel="alternate" hreflang="de" href="https://coderpod.com/de/">
<link rel="alternate" hreflang="x-default" href="https://coderpod.com/">
</head>
<body>
<div class="container">
<h1>🌍 Multi-Language Website</h1>
<div class="info-banner">
<h3>💡 What is Hreflang?</h3>
<p>
Hreflang tags tell search engines which language version to show users based on their
location and language preferences. This ensures French users see the French version,
Spanish users see the Spanish version, etc.
</p>
</div>
<h2 style="color: #6366f1; margin: 30px 0 15px; font-size: 1.5rem;">
Available Languages:
</h2>
<div class="language-grid">
<div class="lang-card active">
<div class="flag">🇬🇧</div>
<div class="lang-name">English</div>
<div class="lang-code">hreflang="en"</div>
</div>
<div class="lang-card">
<div class="flag">🇪🇸</div>
<div class="lang-name">Español</div>
<div class="lang-code">hreflang="es"</div>
</div>
<div class="lang-card">
<div class="flag">🇫🇷</div>
<div class="lang-name">Français</div>
<div class="lang-code">hreflang="fr"</div>
</div>
<div class="lang-card">
<div class="flag">🇩🇪</div>
<div class="lang-name">Deutsch</div>
<div class="lang-code">hreflang="de"</div>
</div>
</div>
<h3 style="color: #6366f1; margin: 30px 0 15px;">Hreflang Tags:</h3>
<div class="tag-display">
<link rel="alternate" hreflang="en" href="https://coderpod.com/">
<link rel="alternate" hreflang="es" href="https://coderpod.com/es/">
<link rel="alternate" hreflang="fr" href="https://coderpod.com/fr/">
<link rel="alternate" hreflang="de" href="https://coderpod.com/de/">
<link rel="alternate" hreflang="x-default" href="https://coderpod.com/">
</div>
<p style="text-align: center; color: #6b7280; margin-top: 30px; line-height: 1.6;">
✅ x-default is the fallback for users whose language isn't specified<br>
View source to see all hreflang tags in the <head>!
</p>
</div>
</body>
</html>Loading preview...
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CoderPod - US Store</title>
<!-- Hreflang for Regional Targeting -->
<link rel="alternate" hreflang="en-US" href="https://coderpod.com/us/">
<link rel="alternate" hreflang="en-GB" href="https://coderpod.com/uk/">
<link rel="alternate" hreflang="en-CA" href="https://coderpod.com/ca/">
<link rel="alternate" hreflang="en-AU" href="https://coderpod.com/au/">
<link rel="alternate" hreflang="en" href="https://coderpod.com/">
</head>
<body>
<div class="container">
<h1>🗺️ Regional Targeting (Same Language)</h1>
<p style="text-align: center; color: #6b7280; font-size: 1.1rem; margin-bottom: 30px;">
Target different English-speaking regions with region-specific content
</p>
<div class="region-grid">
<div class="region-card active">
<div class="flag">🇺🇸</div>
<div class="region-name">United States</div>
<div class="region-code">hreflang="en-US"</div>
<div class="region-details">
$ USD • Shipping: 2-5 days<br>
coderpod.com/us/
</div>
</div>
<div class="region-card">
<div class="flag">🇬🇧</div>
<div class="region-name">United Kingdom</div>
<div class="region-code">hreflang="en-GB"</div>
<div class="region-details">
£ GBP • Shipping: 3-7 days<br>
coderpod.com/uk/
</div>
</div>
<div class="region-card">
<div class="flag">🇨🇦</div>
<div class="region-name">Canada</div>
<div class="region-code">hreflang="en-CA"</div>
<div class="region-details">
$ CAD • Shipping: 2-6 days<br>
coderpod.com/ca/
</div>
</div>
<div class="region-card">
<div class="flag">🇦🇺</div>
<div class="region-name">Australia</div>
<div class="region-code">hreflang="en-AU"</div>
<div class="region-details">
$ AUD • Shipping: 5-10 days<br>
coderpod.com/au/
</div>
</div>
</div>
<div class="format-box">
<h3>📋 Hreflang Format Guide</h3>
<div class="format-example">
<div class="format-label">Language Only:</div>
<code>hreflang="en"</code> → Any English speaker
</div>
<div class="format-example">
<div class="format-label">Language + Region:</div>
<code>hreflang="en-US"</code> → English speakers in United States
</div>
<div class="format-example">
<div class="format-label">Fallback (Always include):</div>
<code>hreflang="x-default"</code> → Default for unmatched users
</div>
<p style="color: #78350f; margin-top: 15px; line-height: 1.6;">
<strong>Format:</strong> language-REGION (ISO 639-1 + ISO 3166-1 Alpha 2)<br>
<strong>Examples:</strong> en-US, es-MX, fr-CA, de-CH, pt-BR
</p>
</div>
</div>
</body>
</html>Loading preview...
en - English (any region)es - Spanishfr - Frenchde - Germanzh - Chineseja - Japaneseen-US - English (United States)en-GB - English (United Kingdom)es-ES - Spanish (Spain)es-MX - Spanish (Mexico)fr-CA - French (Canada)pt-BR - Portuguese (Brazil)<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hreflang Best Practices | Guide</title>
</head>
<body>
<div class="container">
<h1>✅ Hreflang Best Practices</h1>
<div class="rules-grid">
<div class="rule-card">
<h3>
<span style="font-size: 1.5rem;">1️⃣</span>
Bidirectional Links
</h3>
<p>
Each language version must link to ALL other versions, including itself.
If page A links to page B, then page B must link back to page A.
</p>
<div class="code-example">
<!-- On English page -->
<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="es" href="https://example.com/es/">
<!-- On Spanish page -->
<link rel="alternate" hreflang="es" href="https://example.com/es/">
<link rel="alternate" hreflang="en" href="https://example.com/">
</div>
</div>
<div class="rule-card">
<h3>
<span style="font-size: 1.5rem;">2️⃣</span>
Self-Referencing Required
</h3>
<p>
Each page must include a hreflang tag pointing to itself.
</p>
<div class="code-example">
<!-- On English page, must include self-reference -->
<link rel="alternate" hreflang="en" href="https://example.com/">
</div>
</div>
<div class="rule-card">
<h3>
<span style="font-size: 1.5rem;">3️⃣</span>
Always Include x-default
</h3>
<p>
Add an x-default version for users whose language/region doesn't match any specified version.
</p>
<div class="code-example">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
</div>
</div>
<div class="rule-card">
<h3>
<span style="font-size: 1.5rem;">4️⃣</span>
Use Absolute URLs
</h3>
<p>
Always use full URLs with protocol and domain. Relative URLs won't work.
</p>
<div class="code-example">
<!-- Good -->
<link rel="alternate" hreflang="es" href="https://example.com/es/">
<!-- Bad - Don't use relative URLs -->
<link rel="alternate" hreflang="es" href="/es/">
</div>
</div>
<div class="rule-card">
<h3>
<span style="font-size: 1.5rem;">5️⃣</span>
Correct Language Codes
</h3>
<p>
Use ISO 639-1 for language and ISO 3166-1 Alpha 2 for region codes.
</p>
<div class="code-example">
<!-- Language only -->
hreflang="en" ✅ English (any region)
hreflang="es" ✅ Spanish (any region)
<!-- Language + Region -->
hreflang="en-US" ✅ English in United States
hreflang="en-GB" ✅ English in United Kingdom
hreflang="es-ES" ✅ Spanish in Spain
hreflang="es-MX" ✅ Spanish in Mexico
</div>
</div>
</div>
<h2 style="color: #8b5cf6; margin: 40px 0 20px; font-size: 2rem; text-align: center;">
✅ Do's and ❌ Don'ts
</h2>
<div class="do-dont-grid">
<div class="do-card">
<h4>✅ DO</h4>
<ul style="margin: 10px 0 10px 20px; line-height: 1.8;">
<li>Include self-reference</li>
<li>Link bidirectionally</li>
<li>Use absolute URLs</li>
<li>Add x-default</li>
<li>Match HTML lang attribute</li>
<li>Use canonical with hreflang</li>
</ul>
</div>
<div class="dont-card">
<h4>❌ DON'T</h4>
<ul style="margin: 10px 0 10px 20px; line-height: 1.8;">
<li>Use relative URLs</li>
<li>Forget bidirectional links</li>
<li>Skip self-reference</li>
<li>Omit x-default</li>
<li>Use wrong language codes</li>
<li>Link to 404 pages</li>
</ul>
</div>
</div>
</div>
</body>
</html>Loading preview...
Add link tags in the <head> section of each page
<link rel="alternate" hreflang="es" href="https://example.com/es/">Return hreflang in HTTP response headers (for PDFs, non-HTML files)
Link: <https://example.com/es/>; rel="alternate"; hreflang="es"Add hreflang annotations in your sitemap.xml file
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>International Targeting report shows hreflang errors
Settings → International TargetingFree online validator for hreflang implementation
https://www.aleydasolis.com/english/international-seo-tools/hreflang-tags-generator/