48 Hours to Launch: A Broken hreflang Rollout
Objective: Given the actual hreflang blocks from a rushed regional launch, spot the reciprocity break, the invalid language code, and the partial-rollout gap before they cost the site 20-30% of potential international traffic.
Grab's Indonesia and Thailand city-guide pages just went live under a rushed rollout ahead of a regional promo. You're handed the actual hreflang blocks from both pages, plus the homepage, to sign off before the promo goes live in 48 hours.
Two specimens: the hreflang blocks across three pages, then a site-crawl summary showing how far the rollout actually reached. Find what breaks before the deadline, not after.
Does this hreflang rollout actually meet Google's reciprocity and consistency requirements before the 48-hour launch deadline?
Before you start
What you'll need
- —Basic familiarity with reading an hreflang <link rel="alternate"> block
- —Understanding that hreflang requires every version to reciprocally reference every other version
- Reciprocity
- the requirement that if Page A's hreflang block references Page B, Page B's hreflang block must also reference Page A, including a self-referencing tag; a one-way reference is treated as invalid by Google.
- x-default
- a special hreflang value marking which page version to show visitors whose language or country doesn't match any of the tagged alternates.
Free path (everything below is enough to finish)
Free for up to 500 URLs, the fastest way to confirm rollout coverage instead of spot-checking a handful of pages by hand.
Free, and surfaces reciprocity and invalid-code errors Google itself has flagged, a useful second opinion on the crawl findings.
Paid upgrades (optional, faster/deeper)
This teardown is fully completable free.
The free path is complete for confirming these specific defects; Ahrefs only earns its cost on a site far larger than 500 URLs.
The process
Specimens to review
The hreflang blocks for Grab's homepage, Indonesia page, and Thailand page are below. Check them for reciprocity and valid codes.
=== HOMEPAGE (grab.com/) hreflang block === <link rel="alternate" hreflang="id-ID" href="https://grab.com/id/" /> <link rel="alternate" hreflang="th-TH" href="https://grab.com/th/" /> <link rel="alternate" hreflang="en" href="https://grab.com/" /> <link rel="alternate" hreflang="x-default" href="https://grab.com/" /> === INDONESIA PAGE (grab.com/id/) hreflang block === <link rel="alternate" hreflang="th-TH" href="https://grab.com/th/" /> <link rel="alternate" hreflang="en" href="https://grab.com/" /> === THAILAND PAGE (grab.com/th/) hreflang block === <link rel="alternate" hreflang="in-TH" href="https://grab.com/id/" /> <link rel="alternate" hreflang="en" href="https://grab.com/" /> <link rel="alternate" hreflang="th-TH" href="https://grab.com/th/" />
Specimen: synthetic, realistic
A category page going live for the promo, and a site-crawl summary of how far the hreflang rollout actually reached, are below.
=== HOMEPAGE (grab.com/) — has the full hreflang block shown above === === CATEGORY PAGE (grab.com/id/food-delivery/) <head> excerpt === <title>GrabFood Indonesia — Food Delivery</title> <meta name="description" content="Order food delivery across Indonesia with GrabFood." /> <link rel="canonical" href="https://grab.com/id/food-delivery/" /> <!-- no hreflang tags present --> === SITE CRAWL SUMMARY (Screaming Frog SEO Spider) === Pages with hreflang tags: 1 (homepage only) Pages without hreflang tags: 2,847 (all category, city-guide, and promo pages)
Specimen: synthetic, realistic
Analyze your findings
What to look for
- Self-reference
- Does every tagged page include a tag pointing back to itself, not just to its alternates?
- Valid codes
- Is each language code a real ISO 639-1 code, not a plausible-looking but invalid one?
- Reciprocity
- If Page A references Page B, does Page B reference Page A back?
- Rollout coverage
- Is hreflang present site-wide, or only on a small sample of pages while the rest are untagged?
Make the call
With 48 hours to launch, the homepage and both regional pages have hreflang issues, but a site crawl also shows only 1 of 2,848 total pages carries any hreflang tags at all. What's the single highest-priority fix before the go/no-go call?
Recommendation · Priority: High
“Recommend holding the 48-hour launch, or narrowing it to only the pages with correct hreflang, until the rollout gap closes. Fix the Indonesia page's missing self-reference and the Thailand page's invalid 'in-TH' code as immediate two-page corrections, but treat the 2,847-page missing-hreflang gap as the primary go/no-go blocker, since a partial rollout risks the estimated 20-30% international traffic loss the lesson describes, worse than shipping with no hreflang at all.”
Common mistakes
What trips people up
Fixing the two visible page-level defects and declaring the audit done — the 2,847-page rollout gap is the larger risk by far and is easy to miss if the review stops at the pages already reviewed by hand.
Treating an invalid language code as a minor typo — an invalid ISO code isn't corrected automatically by Google, it's typically ignored entirely, silently dropping that page from the cluster.
Flagging cosmetic differences like tag order as defects — the order tags appear in the block has no effect on how Google parses hreflang; time spent flagging it is time not spent on the reciprocity and coverage issues that actually matter.
Final deliverable
An annotated defect list with severity and fix owner (dev vs. marketing) for the 48-hour promo go/no-go call: the missing self-reference, the invalid language code, and the 2,847-page rollout gap.
See a reference example
The same three-page check applied to a different Southeast Asian superapp's rollout (illustrative, GoTo/Gojek): the homepage and two of three regional pages reciprocated correctly, but the third used 'jv-ID' (a real but wrong code for a Javanese-language page meant to target Indonesian more broadly) instead of 'id-ID', caught only by checking the code against the ISO 639-1 list directly.
Success criteria
You're done when you can:
- Identifies the missing self-referencing tag on the Indonesia page as critical, not cosmetic
- Catches 'in-TH' as an invalid ISO 639-1 code, not just 'a typo'
- Flags the 2,847-page rollout gap as the single biggest risk in the whole review, bigger than either single-page defect
- Does not flag the homepage's tag order or the canonical tag as defects
Key takeaway
hreflang defects come in two very different sizes: a missing self-reference or invalid code breaks one page's cluster, but a partial site-wide rollout risks the whole migration's international traffic. Checking rollout scope, not just tag correctness on the pages already in front of you, is what catches the bigger risk before a launch deadline.