Hreflang Matrix Checker
Enter the alternate declarations for each language page to compute a source-by-target matrix. This local tool never crawls a site. It separates a completely missing pair from a one-way link, so an incomplete full matrix is not automatically called a total failure.
Key features
- Editable rows for 2–12 localized pages and up to 18 alternate declarations per page
- Normalized URL matrix for self-links, correct target URLs and duplicate language declarations
- Separate return-link failures on a valid one-way link from a mutually absent pair
- Optional x-default target and coverage consistency checks
- JSON/CSV export and explicit invalid code/URL or ambiguous-page input errors
How to use
- Open a complete, missing-return or x-default example, or enter each page’s language and absolute URL.
- Enter every alternate language code and complete URL declared by each page, including self.
- Run analysis and read source-page rows against target-language columns.
- Review self-link, wrong-target, return-link and optional x-default findings.
- Download JSON or CSV for review if needed.
Use cases
- Preflight ko/en reciprocal declarations before launch
- Compare region URL targets for a wrong alternate
- Check a separate language selector as x-default fallback
- Spot mixed old and new URLs during a multilingual migration
- Review a proposed hreflang table without fetching the site
Frequently asked questions
Does it fetch my website?
No. It compares only the pages and declarations you enter. HTTP status, live HTML tags, canonicals, indexability and translated content are outside this local check.
Does any missing cell invalidate every page?
A missing cell marks an incomplete matrix. Google says mutually linked pairs may still be processed, so this tool distinguishes a mutually absent pair from a declared link with no return.
Is x-default mandatory?
No. It is an optional fallback. Absence is not an error. If supplied, the checker shows whether the entered pages agree on one fallback URL. It may point to a separate language-selector page.
Which language codes are accepted?
This bounded profile checks two-letter language codes with optional four-letter script and two-letter region (for example ko, en-US, zh-Hant-TW). It rejects es-419 and Google-ignored UK/EU/UN regions. It does not validate every code against complete ISO registries.
Why is an unlisted locale a warning?
An alternate may point to a valid site page omitted from your local input. Add it as an entered page to cross-check; until then the tool flags scope uncertainty, not a live-site error.
Privacy
Inputs and calculations stay in your browser. No entered URL is fetched or crawled. JSON/CSV exports contain your URLs; review them before sharing.
Comments & questions