Skip to content

hreflang

Wygard records the hreflang annotations on a page — every (href, hreflang) pair — and alerts you when a language or region link changes, disappears, or stops mirroring its counterparts.

Scope Tier Default Alert
Per URL Advanced On when hreflang is found on any URL 🟠 Heads-up

Why it matters

hreflang tells Google which language and region version of a page to serve to which searcher. It only works when the annotations are complete and reciprocal — every version has to point at every other version, including itself. A single broken or missing link and search engines fall back to guessing, serving the wrong-language page or splitting ranking signals across mutations that no longer reference each other.

Because the annotations live in the <head> and never render, a template change or a translation deploy can quietly break the reciprocity with no visible symptom. The default severity is Heads-up — worth a review, rarely an instant traffic cliff. This is an Advanced-tier test.

What Wygard checks

On every run, the crawler:

  1. Fetches the monitored URL.
  2. Collects every <link rel="alternate" hreflang="…" href="…"> in the <head>.
  3. Stores each annotation as a (href, hreflang) pair.
  4. Compares the full set against the stored desired value.

When Wygard first finds hreflang on a URL, it also pulls in the sibling language mutations that URL references and enables the test across them as a mirrored set — so a break in reciprocity shows up from whichever side it happened. If no hreflang is found on a URL, the test stays disabled there.

Common alerts

  • hreflang link changed — an href or language code no longer matches the baseline.
  • hreflang annotation removed — a language or region version that used to be listed is gone.
  • Reciprocity broken — a mutation in the mirrored set stopped pointing back at this page.

Responding to an alert

  1. Open the alert and review which pair changed — Wygard shows the previous set of annotations versus what it found this run.
  2. Decide whether the change was intended (you retired a locale, moved a translated URL) or accidental (a template regression, a broken build on one language site).
  3. If intended, adopt the new set as the baseline from the alert card.
  4. If accidental, restore the missing or changed annotation — and make sure every mutation in the set references every other one, itself included.

Pair it with Canonical

hreflang and the Canonical test work together: canonical picks the authoritative URL within one language, hreflang connects the authoritative URLs across languages. A canonical that points at the wrong locale quietly cancels the hreflang signal.