Hreflang Checker
This hreflang checker reads the hreflang annotations on a single URL you enter, checks the language and region codes are valid, and confirms a self-referencing tag and x-default are present. It then fetches each alternate URL the page names and checks it lists a tag pointing back, because hreflang only works when every version in a cluster reciprocates.
Result for
No hreflang tags found in this page's <head>.
Result for
Conflicting annotation: is declared for more than one URL.
Declared tags
Return-tag check
Checked of alternates. Capped at 20 for this free check.
Note
<link rel="alternate" hreflang="..."> tags in its <head>, then fetch up to 20 of the alternates it names to confirm each one links back. Hreflang is only honoured when it's reciprocal: a one-directional tag is disregarded by search engines even when the target page genuinely exists.
Email me this result
Want a copy for your records or a client? Leave your email and we'll send you this result. It is written by a real person at Crawl Cove, not an automated blast, so it may take a little while to arrive. We'll only use your address to send it, unless you also tick the box below. Privacy policy.
Got it. We'll email your result to you. Nothing else lands in your inbox unless you ticked the tips box.
What this hreflang checker shows you
Paste a URL and it is fetched server-side. The tool reads every <link rel="alternate" hreflang="..."> tag in its <head>, checks each language or language-region code is validly formed, and reports whether the page carries a self-referencing tag (a hreflang entry pointing at itself) and an x-default fallback. It then fetches up to 20 of the alternate URLs named and checks each one carries a tag pointing back to the page you started from.
Why a one-way hreflang tag does nothing
Hreflang is only honoured when it is reciprocal. If your English page names a French page as its fr alternate, the French page must name the English page back as its own alternate; search engines treat this as a two-way confirmation, and a link in only one direction is disregarded entirely. This is what makes hreflang fragile: a cluster of five regional pages needs the return link correct on all five, and moving one page's URL without updating the others breaks reciprocity for the whole cluster, not just the page that changed.
Why "uk" is not a valid code, and other common mistakes
A hreflang value pairs an ISO 639-1 language code with an optional ISO 3166-1 region code, separated by a hyphen, such as en-gb or fr-ca. The single most common typo is using uk for the United Kingdom: it looks right but isn't a recognised code in either list, and the correct region code is gb. Other frequent errors this checker flags: a code that doesn't match the language or language-region pattern at all, the same code declared twice for two different URLs (a conflicting annotation), and a missing self-referencing tag, which Google's own guidelines call for on every page in a cluster.
What a missing x-default costs you
x-default names the fallback page for a visitor who doesn't match any of your named language or region pairs, typically a language-selector page or your primary market's version. Without it, search engines are left to guess which version to show a visitor outside your explicit targeting, which can mean the wrong regional page from someone else's market. It costs one extra tag to declare and this checker tells you if it is missing.
The limit worth stating plainly
This checks the URL you enter against the alternates it names, up to 20 of them. It cannot discover a page that should be in the cluster but isn't linked from anywhere, and it only sees a cluster as wide as this one page's own tags describe. Finding every hreflang relationship on a site, including pages other pages fail to reference, needs a crawl of the whole thing rather than one page read in isolation.
One page here, every page in your cluster there
Checking a single URL is a fast way to confirm one relationship is working, but the failure that actually costs traffic is usually somewhere else in the cluster: a page nobody thought to check that never got the return tag added when a new region launched. Crawl Cove maps hreflang across every page it crawls at once, so a broken reciprocal link surfaces regardless of which page in the cluster you would have thought to test.
audit hreflang across your whole site · See Crawl Cove pricing
Frequently asked questions
- What is a hreflang tag?
- An HTML link tag that tells search engines which language and region a page targets, and names the alternate version to show a visitor searching from elsewhere. It pairs a language code with an optional region code, such as en-gb or fr-ca.
- Why does my hreflang tag not work even though it looks correct?
- The most common cause is a missing reciprocal tag: hreflang is only honoured when the alternate page links back to the original. A one-directional relationship is disregarded, so check the page your tag points at also names yours back.
- Is "uk" a valid hreflang code?
- No. There is no ISO region code "uk". The correct region code for the United Kingdom is "gb", used as en-gb. "uk" is one of the most common hreflang typos and this checker flags it specifically.
- What is x-default for?
- It names the fallback page shown to a visitor who doesn't match any of your explicit language or region pairs, typically a language-selector page or your main market's version. Leaving it out means search engines have to guess for anyone outside your named targeting.
- Do I need a self-referencing hreflang tag?
- Yes. Every page in a cluster, including the one you are looking at, should list itself among its own hreflang alternates. This checker reports whether that tag is present.
- How many alternate URLs does this check?
- Up to 20 named on the page you enter. Each is fetched to confirm it carries a tag pointing back to the original URL; a redirected or unreachable alternate is reported as such rather than checked for reciprocity.
- Is this hreflang checker free?
- Yes. It is completely free and needs no sign-up.
- Can I check hreflang on a site I do not own?
- Yes, the same as any browser could reach the URL and its alternates directly. It is a read-only check, nothing is submitted to the target, and results are not stored anywhere you or anyone else can browse back to.
From one page to your whole site
This checks one URL against its own declared alternates. Crawl Cove builds the whole hreflang cluster as it crawls a site, cross-referencing every page against every other page rather than one page's own claims, so a page missing FROM someone else's tags is caught too. See audit hreflang across your whole site or compare the plans.
More free tools
-
SERP Snippet Preview
Open tool → -
Meta Tag Generator
Open tool → -
Robots.txt Tester & Generator
Open tool →