Hreflang Checker
Point it at a live page to pull the HTML hreflang alternates, validate the locale codes, read x-default and the self-reference, and sample return links.
This hreflang checker points at one live page and reads the international SEO cluster the way a search engine roughly would. It pulls the HTML hreflang alternates, sanity-checks every language and region code, reads the x-default and the self-reference, and lines the canonicals up so you can see which URLs the set actually claims are equivalent. Then it goes further than a tag scan: it visits a handful of those alternates and checks whether they bother linking back, which is the quiet one-way break that creeps in after a locale plugin update or a content migration. You pick the audit intent and how many alternates to sample, and you get a scored summary, an alternate table, return-link results, cluster notes, a prioritized fix list and a copyable report. It reads HTML alternates only, so confirm any sitemap or header setup separately.
Queries run through the PeopleAreGeek lookup service. We log nothing.
International SEO cluster audit
Hreflang breaks quietly. That's why I trust it less than any other piece of international SEO. A locale plugin updates, somebody fumbles a migration, one template forgets to link back, and now Google's handing the wrong language to half your markets while nothing looks wrong. Point this at a live page. I'll pull its hreflang alternates, sanity-check the language and region codes, read the x-default and the self-reference, line the canonicals up, then actually go visit a few of those alternates to see whether they bother linking back. Honestly I'd rather catch the drift here than read about it in Search Console three weeks late.
For the return-link check I only fetch a handful of alternates. A big cluster would otherwise grind your browser to a crawl. One caveat worth saying out loud: hreflang can also live in your sitemap or your HTTP headers. I'm reading the HTML alternates the pages return, and only those.
What a serious hreflang check should settle
People treat hreflang like a translation badge you slap on a page. It isn't. It's a promise about which URLs are equivalent to each other. Your French article, your English one, a country selector page, every one of those can be perfectly fine on its own. The annotations only start doing anything when every URL in the set points back at the right alternates, and when the whole set survives your redirects and that locale plugin update and your last content migration. Nobody tells you about that last part. It's where I've watched the most damage happen.
So I start with the head tags on the URL you hand me. Then the language codes, the target URLs, the self-reference, whether x-default even shows up, the canonical. The return-link sample goes further than that. I open a few of the alternates and check whether they actually link back to where you started, which is the failure I keep running into. Somebody updates one template, ships it, and the other locales quietly carry on pointing at an older version of the cluster. No error. No warning. Just slow rot you won't notice for a month.
Codes, canonicals and return links have different jobs
These three get conflated constantly, so let me pull them apart. The language code says which language or language-region a URL serves. The canonical says which URL you actually want indexed for that page. A return link is just the proof that the other versions know this one exists. Technically they're allowed to disagree. When they do, though, you've usually got a problem on your hands. An hreflang target that canonicalizes off to some unrelated page, or redirects through a host you killed two years ago, or simply never points back: go fix the cluster before you start blaming your translator for the rankings.
- Self-reference keeps the page you checked inside its own alternate set, instead of leaving it the odd one out.
- x-default catches everyone you never explicitly targeted and points them at a neutral fallback, or a selector.
- Canonical alignment is the thing that stops an alternate from quietly collapsing into some other URL.
- Return links are how you spot the one-way relationships that creep in between language templates when nobody's looking.
- Code review flags the region-only labels and the malformed ones before any of them cost you.
A practical workflow for multilingual pages
- Don't audit every page. Grab one real URL per template family instead. An article, a product, a category, maybe a landing page. Template's clean, the rest usually follow.
- Ignore the score for a second and just read the alternate table. The only question that really matters: is each target genuinely the same page, or did a homepage sneak in.
- Run the return-link sample right after launches, after migrations, any time you so much as touch the locale plugin. That's when stuff breaks.
- Alternates look off? Pull up the canonical on the source and on the target. Mismatches there tend to explain most of it.
- Pick one implementation method and stick to it. Otherwise your HTML, your sitemap and your header annotations slowly drift apart and you won't notice until something's wrong.
Frequently asked questions
Is a missing hreflang tag always an SEO problem?
Nope. A page that only exists in one language doesn't need hreflang, and bolting it on just hands you one more thing to break. It starts mattering once the same content lives across several localized versions and you need search engines reading them as alternatives instead of duplicates.
Should x-default always exist?
Not always. It earns its spot when you've got a language-neutral fallback, or a country selector, or just somewhere sensible to send the people who fall outside the locales you target. Whatever you aim it at, though, make sure a real visitor landing there isn't left confused.
Can this checker prove every international signal is correct?
No, and honestly I wouldn't trust anything that swore it could. I read the HTML alternate cluster and I sample a few return links. That's the whole job. You still have to confirm the pages are genuinely equivalent, check any sitemap or header setup, keep half an eye on your internal links. And then go see what Search Console is actually telling you.
What is the most common hreflang mistake?
Missing return tags, by a mile. Every page in a cluster has to point at all the others, itself included, with matching hreflang values. Link one way, forget the way back, and search engines just ignore the whole annotation.