301→302301→302
A temporary redirect where a permanent one belongs.
Found by Redirect checker →
A temporary redirect where a permanent one belongs.
Found by Redirect checker →
redirect loopredirect loop
The URL redirects back to itself and never settles.
Found by Redirect checker →
The URL redirects back to itself and never settles.
Found by Redirect checker →
Audit
Hreflang checker
Validate hreflang on a single URL or across a crawl: language and region codes, return links, self references, x-default and alternates that redirect or are noindex.
Hreflang checker
Single URL
hreflang-check inspects one page and its declared alternates.
How it works
Three steps, one saved scan
Check one URL live
hreflang-check fetches the page, follows redirects and reads the alternate links in its HTML. It checks codes, self-reference, duplicates and x-default.
Check the set across a crawl
Return links, broken or redirecting targets and noindex targets need every page in the set. These run on the crawl graph, not on one page.
Fix the pairs and re-check
Each finding names the page and the alternate it concerns. Correct the annotation on the site, then run the check again.
What it checks
Checks in this feature
| Check | What it means | Severity | Evidence |
|---|---|---|---|
HREFLANG_MISSING_RETURN_LINK | Another page names this URL in its hreflang, but this page does not point back | Important | Source page and the alternate that lacks the reciprocal link (crawl) |
HREFLANG_BROKEN_TARGET | An alternate URL answers with a 3xx, 4xx or 5xx status | Important | Target URL and its status code (crawl) |
HREFLANG_NOINDEX_TARGET | An alternate URL carries a noindex directive | Important | Target URL and the noindex signal (crawl) |
HREFLANG_INVALID_CODE | A language or region value is not a valid ISO 639-1, ISO 15924 or ISO 3166-1 code, for example en-UK | Important | The raw hreflang value and the page it sits on (single URL: 'malformed hreflang code') |
HREFLANG_MISSING_SELF_REFERENCE | The page has alternates but none of them is its own URL | Important | The page URL and its alternate list (single URL: 'page does not self-reference') |
HREFLANG_MULTIPLE_ENTRIES | The same language and region value appears more than once on one page | Important | The repeated value and its hrefs (single URL: 'duplicate hreflang') |
HREFLANG_MISSING_XDEFAULT | The set has no x-default fallback for users whose language matches no alternate | Tip | The page and its alternate list (single URL: 'no x-default alternate') |
How to run it
One command
bash
seohead hreflang-check --url https://example.com/en/Install first: installation guide. Every command also runs as an MCP tool for AI agents.
Related checks
From the check registry
HREFLANG_ERRORHREFLANG_MISSING_RETURN_LINKHREFLANG_INVALID_CODEHREFLANG_MISSING_XDEFAULTHREFLANG_BROKEN_TARGETAudit
More in this group
Technical SEO audit with 182 checks
FeatureRedirect checker: chains, loops and 302s
FeatureBroken link checker with source and position
FeatureCanonical tag checker
FeatureStructured data and schema validator
FeatureTitle and meta description checker
FeatureHeading structure checker
FeatureDuplicate and thin content checker
FeatureImage SEO checker and optimizer
FeatureInternal linking and crawl depth audit
FeaturePage weight and speed checks
FeatureHTTPS and security headers check
FeatureAI search visibility (GEO/AEO)
FeatureFAQ
