ELENA: Before anyone touches the tags, look at whether they return. The flower-delivery service runs US, UK, and Australia pages, added hreflang, and Google’s still serving the wrong country. Everyone’s first instinct is “the tags are broken.” The tags are probably fine. The handshake is broken.

HANNAH: Say what you mean by handshake, because the owner won’t know that’s the whole game.

ELENA: hreflang isn’t a broadcast, it’s mutual. The US page says “UK version is over there,” and the UK page has to say back “US version is over here.” Both directions. Miss the return reference on one side and Google distrusts the entire cluster and falls back to guessing, which is the wrong-country behavior they’re staring at.

HANNAH: Good, and let me kill an expectation before it does damage, because the owner half-thinks hreflang is a ranking lever. It isn’t. It doesn’t boost anything, it doesn’t force anything, it picks which version to show when the cluster is understood. Even flawless, it’s a strong hint, not a command.

MARCUS: Wait, back up, because we might be debugging a site that shouldn’t have these pages at all. Elena, are the three versions actually different, or did someone clone one English page three times with a currency swap to “target” each country?

ELENA: Fair question, I assumed they were genuinely regional.

MARCUS: Because if they’re near-duplicates, hreflang is a bandage on a duplication problem, and the right fix is fewer pages, not better tags. I’m not saying they are. I’m saying nobody’s checked, and we’re about to spend a day debugging annotations on pages that maybe shouldn’t exist.

HANNAH: That’s fair, and it’s testable in five minutes, do the three pages differ in more than currency.

SOFIA: Assume they do differ, because the symptom suggests real pages. Here’s why it bites, a London shopper hits the US page, sees dollars and shipping that doesn’t apply, and bounces. So there’s a fast diagnostic hiding in that, each regional page has to be correct and self-contained on its own, because hreflang only routes people well if the destination actually fits them once they land.

NOAH: And notice the shape of the complaint, “it used to work.” That’s the tell. hreflang decays. Every new page, every URL change, every locale launch has to update the reciprocal references across the whole cluster, and nobody does, so clusters that were clean at launch quietly break months later as the site grows.

ELENA: Which is the return-tag failure I opened with, arriving the slow way.

NOAH: Right, it’s the same wound, it just bleeds over months instead of at launch.

THEO: So debug it in order, and stop guessing. One, every page references every version including itself, and each reference points back. Two, the region and language codes are valid, because one invented code voids that entry, and there’s an x-default declared for users whose country isn’t in the set, which a US-UK-Australia cluster needs or unlisted-country visitors get routed by guesswork. Three, the referenced URLs are live and indexable, not redirecting, because hreflang pointing at a redirect breaks. Four, the annotations are delivered one consistent way, head or headers or sitemap, not three ways contradicting each other. And to find the break instead of eyeballing it, a crawler like Screaming Frog will list every hreflang reference and flag the ones missing a return tag in one pass, which is the fastest way to spot exactly which page broke the handshake. Run those four and the break surfaces in one of them.

AIKO: And then stop hand-maintaining it, Theo, because your four-step debug is a one-time rescue and this thing re-breaks on the next page launch.

THEO: No argument, the debug finds today’s break, it doesn’t prevent tomorrow’s.

AIKO: Generate the annotations from one source of truth, so adding a page or a locale updates every related reference automatically. Then a validation crawl that flags missing return tags before they cause wrong-country serving. The integrity gets enforced by the system, because Noah’s right, discipline is exactly what slips when the site’s busy.

ELENA: So the wrong country isn’t hreflang being too weak. It’s the references being incomplete, so the signal contradicts itself and Google throws it out.

DANA: Then here’s the sequence, and it starts with Marcus’s question, not the tags. First, confirm the three regional pages genuinely deserve to be separate and aren’t thin clones, because if they are, that’s the real fix and the hreflang is a distraction. If they’re real, then treat this as a broken handshake, not weak tags, every version references every other and itself, valid codes, live indexable destinations, one consistent delivery method. We generate it from a single source so it survives the site growing, and validate periodically to catch broken return tags early. Using hreflang for multi-region was the right instinct. Treating it as a fire-and-forget tag, instead of a handshake that has to stay mutual, is what quietly broke it.

HANNAH: That turns an invisible decay problem into a maintained structure, instead of a tag everyone assumes is still working.

DANA: A regional cluster only routes people right when every page agrees on where the others are. Keep that agreement current, and Google stops guessing.