A slightly wrong hreflang setup breaks rankings because small errors void the whole cluster’s signal, leaving Google to ignore the annotations entirely and fall back to its own guesses. Hreflang works as a network of mutually confirming references between your language and region versions, so when one link in that network is broken or inconsistent, Google cannot trust the relationships and disregards them. The result is that the wrong-language page may surface for a searcher, or your versions may be treated as duplicates, even though each individual page looks fine on its own.
The most common break is missing return tags. Hreflang must be bidirectional: if page A points to page B as its alternate, page B must point back to A, and if that return reference is absent, Google treats the annotation as unconfirmed and may drop it. Because the tags rely on this mutual confirmation, a one-sided declaration is effectively no declaration, and a single missing return tag can quietly invalidate the pairing it was meant to establish.
Invalid or mismatched codes and inconsistent URLs cause the same silent failure. Language and region codes must follow the correct format, using valid ISO language codes and, where used, valid region codes, since an invented or malformed code like a made-up region is simply ignored. The URLs in your hreflang annotations also have to be the canonical, consistent versions, because pointing hreflang at a non-canonical URL, or mixing http and https or trailing-slash variants, sends conflicting signals that Google resolves by distrusting the setup. The dangerous part is that none of this throws an obvious error; the page still loads, so the breakage is invisible until you check.
Validate return tags and codes across the entire cluster, not page by page. Confirm every version references every other and that each reference is returned, verify all language and region codes are valid and correctly formatted, and ensure every hreflang URL is the canonical, consistently formatted version. Run the cluster through a hreflang validator so you catch the silent breaks before they cost you the rankings.