Indexation Commercial BOFU

How to audit hreflang tags for international SEO

Surface missing return tags, invalid language codes, and self-referential mistakes across your localized site.

World map with hreflang return-tag connections and one broken red international SEO link
Hreflang audit visual showing bidirectional locale links and a missing return-tag issue.

Hreflang is the SEO feature with the highest shipped-wrong rate. Google itself has called it "one of the most complex aspects of SEO". One missing return tag breaks the entire cluster. One wrong language code — en-uk instead of en-gb — silently disables localization for an entire market.

Step 1. Crawl extracting every hreflang signal

The 2-UA parser captures every <link rel="alternate" hreflang> tag, including those in HTTP headers and sitemap entries. All three sources are normalized into one cluster view per URL.

Step 2. Six hreflang errors to filter

  1. Missing self-reference — every page must include its own language in the cluster.
  2. Missing return tag — if A points to B with hreflang="fr", B must point back to A with hreflang="en".
  3. Invalid language code — ISO 639-1 + ISO 3166-1 only (en-gb, not en-uk).
  4. Conflicting canonicalhreflang="es" pointing to a URL whose canonical points elsewhere.
  5. Mixing hreflang sources — same cluster declared partially in HTML, partially in the sitemap.
  6. Pointing to non-200 URLs — broken hreflang targets break the entire cluster's trust.

Step 3. Build a return-tag matrix

Export hreflang relationships to XLSX. Use a pivot table to confirm every language pair is bidirectional. A 6-language site needs 30 directional return tags; missing one breaks the cluster Google computes.

Step 4. Add x-default

For your homepage and language-pickers, include hreflang="x-default" pointing to your language-selector page or default-locale homepage. Without x-default, users in unmapped locales see a poorly-matched localized URL in search results.

Patterns to avoid in 2026

  • Region without languagehreflang="us" is invalid; it must be en-us.
  • Localizing on subdomain vs subdirectory mid-flight — pick one structure and stick to it.
  • CDN serving the wrong cluster per geo — verify via VPN or curl with locale headers.
  • Mixing HTML and sitemap hreflang within one cluster — Google may pick either; consistency wins.

Sitemap vs HTML hreflang

For small sites with under 500 localized URLs, declare hreflang inline in HTML. For larger sites, manage hreflang in sitemap files — they are easier to update programmatically and easier to audit. Do not mix sources within one cluster; pick one declaration style per language family.

Use the free SEO page audit for a single localized URL's hreflang check, or run a project crawl to validate your entire international tree.