Hreflang checker
Make sure search engines show each visitor the right language version — and aren’t silently ignoring your hreflang tags.
- No sign-up to start
- 138 checks
- 500 pages free
Hreflang checker: what’s checked
hreflang tells search engines which page to show for each language and region. It is easy to add and easy to get subtly wrong, and Google doesn’t report a broken set of tags — it simply stops using them.
This checker validates the hreflang annotations on every crawled page: language and region codes (en-UK is a classic mistake; the country code is GB), links with no usable URL, two different pages claimed for the same locale, and pages that don’t link back to the pages that name them.
3 Language & localization A site serving more than one language has to say so in a way search engines can follow. These checks cover the declared language and hreflang wiring.
-
Missing <html lang> attribute
The <html lang> attribute tells browsers and screen readers the page language. Add e.g. <html lang="en">.
-
Multilingual site missing hreflang
hreflang tells search engines which language/region version to show. Add hreflang tags linking your localized pages.
-
hreflang tags that are not valid
A broken hreflang cluster is ignored in silence — Google does not warn you, it just stops using it, so the tags look present and do nothing. Every code must be a real language (en-GB, not en-UK), every tag needs a URL, and each page you name must name you back.
14 Crawling & indexing Pages have to be crawled and indexed before they can rank at all. These checks cover the files, canonicals and directives that tell search engines what they may fetch and keep.
-
Broken canonical tag
A canonical tag pointing to a broken or wrong URL can deindex the page. Point it at the correct, reachable preferred URL.
-
Canonical tags chained through another page
Google does not follow canonical tags from one page to the next -- a chained canonical is treated as a weak hint and it picks its own winner instead, so the consolidation you set up is forfeited. Point every canonical straight at the final URL.
-
Missing canonical tag
A canonical tag tells search engines which URL is the “real” one when several are similar. Add <link rel="canonical"> to avoid duplicate-content dilution.
-
Missing robots.txt
robots.txt tells crawlers what they may access. Add one (even an allow-all) and point it at your sitemap.
-
Page blocked by robots.txt
Googlebot won’t crawl this page, so its content can’t rank — and a noindex on it is never seen. If the page should be found, remove or narrow the Disallow rule shown; if it’s meant to be private, stop linking to it and keep it out of the sitemap. Test the rule in Search Console’s robots.txt report.
-
Page set to noindex
This page tells search engines not to index it, so it can’t rank. If that’s unintended, remove the noindex directive.
-
Pages buried too deep
Pages many clicks from the homepage get crawled and ranked less. Flatten your structure and link to deep pages.
-
SEO-unfriendly URLs
Long, parameter-heavy URLs are harder for users and search engines to parse. Use short, readable, keyword-relevant paths.
-
Scripts or CSS blocked by robots.txt
Google renders pages with their CSS and JavaScript. Blocked files can make a page look broken or empty to it. Remove the Disallow rules that cover theme, plugin or asset folders; there’s no SEO reason to hide scripts and stylesheets.
-
Sitemap URLs blocked by robots.txt
The sitemap asks Google to crawl URLs that robots.txt forbids, which Search Console reports as “Submitted URL blocked by robots.txt”. Either take those URLs out of the sitemap or stop blocking them.
-
Soft 404 (server returns 200 for missing URLs)
Returning HTTP 200 for missing pages makes search engines index empty pages. Serve a real 404 status for URLs that don’t exist.
-
robots.txt doesn’t name a sitemap
Add a line like “Sitemap: https://example.com/sitemap.xml” to robots.txt. Every crawler reads robots.txt first, so this is how Bing and others find your sitemap without a manual submission.
-
robots.txt malformed
A malformed robots.txt can accidentally block your whole site. Validate it and confirm it isn’t disallowing important paths.
-
www / apex not canonicalized
Serving both www and non-www without redirecting splits your ranking signals. Pick one and 301-redirect the other.
How it works
-
1
Enter your URL
Paste your homepage. No account, no install, no verification.
-
2
We crawl your site
The crawler follows your internal links and runs every check against each page it reaches.
-
3
Get your results
See your score and issue counts at once. A free account shows every finding, page by page, with how to fix it.
Frequently asked questions
What is a return tag?
If page A lists page B as its French version, page B must list page A too. Annotations that aren’t reciprocated are ignored. The check compares pages the crawl reached, so a page it never fetched isn’t counted as failing.
Do I need x-default?
It is optional. x-default names the page to show visitors whose language you don’t target, such as a language picker or your main version. The checker accepts it as a valid value.
Does a single-language site need hreflang?
No. The checker only looks for hreflang on sites that appear to have several language versions, but every site should still set <html lang>.
Related free tools
Ready to check your site?
It takes a couple of minutes and costs nothing.