Home Features About Support
SEO Analysis
SERP Preview Meta Tag Analyzer Schema Validator Heading Checker OG Preview
Technical SEO
Tech Stack Detector Security Headers PageSpeed Insights Redirect Checker Link Analyzer
Content & GEO
Word Counter Image SEO Checker Semantic HTML JS vs No-JS Robots.txt Analyzer llms.txt Generator hreflang Checker AI Content Optimizer
SERP & Keywords
SERP Checker Keyword Research SERP Overlap Get the Chrome Extension — Free
Free SEO Tool

hreflang Checker

Validate hreflang tags on any page. Check language/region annotations, verify reciprocal return links, and detect common implementation issues.

How it works

Enter a URL and this tool fetches the page HTML to find all <link rel="alternate" hreflang="..."> tags. It validates language codes, checks for self-referencing tags, x-default, and lets you verify that alternate pages link back correctly (return link validation).

Common issues detected

• Missing self-referencing tag (the page should reference itself)
• Missing x-default (should specify a fallback language)
• Non-standard language codes (e.g. "uk" instead of "en-GB")
• Missing return links (alternate pages don't link back)
• HTTP/HTTPS mismatches between hreflang URLs

More tools

What is hreflang?+
hreflang is an HTML attribute that tells search engines which language and region a page targets. It helps prevent duplicate content issues for multilingual sites and ensures users see the right language version in search results.
Do I need a self-referencing hreflang tag?+
Yes. Google requires every page that uses hreflang to include a self-referencing tag pointing to itself. Without it, Google may ignore all hreflang annotations on that page.
What is x-default?+
x-default specifies the fallback URL for users whose language/region doesn't match any hreflang tag. It's strongly recommended for all multilingual implementations.
hreflang validation on every page

Lumina checks hreflang tags automatically with return link verification.

Add Lumina to Chrome — Free
.hl-tbl{width:100%;border-collapse:collapse;font-size:13px}.hl-tbl th{text-align:left;padding:8px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);border-bottom:1px solid var(--border)}.hl-tbl td{padding:7px 6px;border-bottom:1px solid var(--border);vertical-align:middle}.hl-tbl tr:hover td{background:var(--accent-soft)}.badge.info{background:rgba(100,140,255,.08);color:#6e9eff;border-color:rgba(100,140,255,.2)}@keyframes spin{to{transform:rotate(360deg)}}