Lee Foot

Hreflang Checker

Extract and validate hreflang tags from any website.

Launch the app → View the source

#about

BeautifulSoup extraction of <link rel="alternate" hreflang> tags plus HTTP Link header parsing.

Four validation checks: missing self-referencing tags, absent x-default, duplicate language codes, invalid language format (en, en-US, x-default).

Configurable timeout and inter-request delays.

Streamlit app

Platform
Browser-based (no installation required)
Input
URLs: single entry, pasted list, or CSV uploadRequest timeout settingInter-request delay (avoid rate limiting)
Output
Excel with summary statistics, extracted hreflang tags (URL, language, destination, source), and validation issues per URL.

Use cases

  • International SEO audits
  • Hreflang implementation QA
  • Multi-language site validation
  • Competitor international targeting analysis
  • Pre-migration hreflang documentation

#features

  • HTML and HTTP header hreflang extraction
  • Missing self-reference tag detection
  • Missing x-default warning
  • Duplicate language code flagging
  • Language code format validation

#how-to-use

  1. Enter URLs (single, paste, or upload CSV)
  2. Configure timeout and delay settings
  3. Run hreflang extraction
  4. Review tags by source (HTML vs HTTP header)
  5. Check validation issues in dedicated tab
  6. Download 3-sheet report: summary, tags, issues

#faq

Does it validate return tags between language versions?
No. Every check is per URL; the tool never fetches the alternate URLs a page points to, so missing reciprocal (return) tags are not detected. To approximate that check, run all language versions of a page in the same batch and compare their tag sets in the export.
Why is a valid hreflang code flagged as potentially invalid?
The format check only accepts a two letter language with an optional two letter region (en, en-GB) or x-default. Legitimate codes outside that pattern, such as script subtags like zh-Hans, are flagged even though Google accepts them, so treat that check as a prompt to review rather than a definite error.
How do redirects affect the self referencing check?
Pages are fetched with redirects followed, and hreflang URLs are compared against the final URL (ignoring trailing slashes). If you check a URL that redirects, self reference is judged against the destination; the final_url column in the report shows what was actually evaluated.
When does the missing x-default warning fire?
Only when a page has more than one hreflang code and none of them is x-default. Pages with a single hreflang tag are not warned about x-default.
Will it find hreflang implemented in XML sitemaps?
No. It checks HTML link rel="alternate" tags and the HTTP Link response header only. A site that implements hreflang purely in its XML sitemaps will show zero tags here, which is not an error on the site's part.

/contact

Want me to run this for you? I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.