SEO Migration.

international migration hreflang seo

International and hreflang

Multi-language sites fail in a way single-language sites cannot: hreflang annotations that point at redirected or missing URLs break the entire cluster, not just the one page in it.

By Arsal Riaz, Technical SEO Consultant Published

Primary riskOne broken URL in an hreflang cluster invalidates the annotations for every language version in that cluster.

Definition
An international site migration — An international site migration moves a website that serves multiple languages or regions. Alongside standard migration work, every hreflang annotation must be updated to point at final destination URLs. Because hreflang requires reciprocal confirmation between all versions, a single broken URL invalidates annotations across the whole cluster.

Why international sites fail differently

Single-language migrations fail per page. If one URL is mishandled, that URL suffers and the rest of the site is unaffected.

hreflang does not work that way. It declares a reciprocal relationship between language versions of the same content: each version must reference every other version, and each of those must reference back. That mutual confirmation is what validates the cluster.

When one URL in a cluster redirects or 404s, the annotation pointing at it is discarded — and because the relationship is reciprocal, the confirmation it was providing to the others goes with it. A migration that mishandles 2% of URLs can degrade hreflang across a much larger share of the site.

Fix what is already broken first

Most large multi-language sites have hreflang errors before the migration starts. Missing return tags, wrong region codes, annotations pointing at pages retired two years ago.

Migrating a broken implementation carries the breakage forward, and after launch every existing error looks like something the migration caused. That makes diagnosis slower and the post-launch conversation worse.

Validate and fix the current implementation before the move. It is usually a few days of work and it makes the post-launch data interpretable.

Generate, do not edit

The most common way hreflang breaks in a migration is partial updating. The English site launches with new annotations. The German, French and Japanese versions still reference old URLs. Return tags no longer reciprocate and clusters fail.

This happens because annotations were maintained per locale, often by different teams on different schedules.

The fix is architectural: generate hreflang programmatically from the URL mapping, so every version updates in the same deploy. Whether the output goes in the head or in sitemaps matters less than the fact that one source produces all of it.

Never redirect by IP

This deserves stating plainly because it is still common and it is still wrong.

Automatically redirecting visitors to a regional version based on their IP address means Googlebot — crawling predominantly from US addresses — is redirected to the US version of every URL. The other versions are never crawled, and eventually stop being indexed.

Serve the URL that was requested. If you want to help a visitor find a better-matched version, show a dismissible banner or a selector. The user reaches the right page and the crawler still sees the page it asked for.

Regional consolidation is a content project

Merging example.de and example.at into a single example.com/de/ is not a technical simplification. It is a decision to serve two markets with one set of content.

Each country domain has its own accumulated authority and link profile, and each has content shaped by local regulation, pricing and product availability. Consolidating means deciding what survives — which is the same problem covered on the site consolidation page, with hreflang complexity layered on top.

Expect a longer recovery window than a single-locale move, and put the regional content decisions in front of whoever owns those markets before the technical work starts.

If country domains are being retired, domain name change covers the domain-level steps. The technical scope page covers where hreflang verification sits in the parity diff.

How this migration type goes wrong

Annotations updated on one language only

What you see The English pages reference new URLs while the German pages still reference old ones. Return tags no longer match and clusters break.

What fixes it Generate hreflang programmatically from a single source of truth so all versions update together, rather than editing each locale separately.

Country subfolders consolidated without a plan

What you see Regional variants merge into one, and users in the removed regions land on content targeted elsewhere. Regional rankings drop.

What fixes it Treat regional consolidation as a content decision: which variant survives, what happens to region-specific content, and what x-default points at.

Redirects applied by IP instead of by URL

What you see Googlebot, crawling predominantly from US IP addresses, is redirected to the US version of every page and never sees the others.

What fixes it Never auto-redirect by IP. Serve the requested URL and offer a language selector or a dismissible banner instead.

The x-default disappears in the move

What you see Users whose language and region match no version get an arbitrary variant, and the cluster has no declared fallback.

What fixes it Include an x-default annotation in every cluster, pointing at the global version or the language selector.

Common hreflang errors introduced by a migration, what each one does and how it is detected.
Error What happens How to detect it Fix
Annotation points at a redirected URL The annotation is ignored; the cluster loses that versionCrawl hreflang targets and check status codesUpdate annotations to the final destination URL
Missing return tag The pairing is not confirmed and is discardedSearch Console international targeting report, or a crawlEvery version must reference every other version, including itself
Annotation points at a 404 Cluster breaks for all membersCrawl hreflang targetsRemove the annotation or restore the URL
Wrong region or language code Annotation ignored, or the wrong audience is targetedValidate codes against ISO 639-1 and ISO 3166-1 Alpha 2Correct the code — note that "uk" is not the code for the United Kingdom
x-default missing after consolidation No fallback for unmatched usersCheck for an x-default entry in each clusterAdd x-default pointing at the global or selector page
Annotations in the sitemap and the head disagree Conflicting signals, unpredictable resolutionCompare sitemap hreflang against on-page annotationsPick one implementation method and remove the other
hreflang failure modes during a migration

When this page applies

  • The site serves more than one language or region.
  • hreflang annotations exist, in the head or in sitemaps.
  • Country-code domains or regional subfolders are being consolidated.

When it does not

  • The site serves a single language and region.
  • Translations exist but are not separately indexable.
  • You are adding a new language rather than migrating existing ones.

International migration sequence

hreflang updates happen with the migration, not after it. A gap between the two is a period with broken clusters.

  1. 01

    Export the current hreflang map

    Every cluster, every member, every annotation. This is the reference for verifying nothing was lost, and it is much harder to reconstruct afterwards.

    Output Current cluster map

  2. 02

    Validate the existing implementation first

    Migrating a broken hreflang setup carries the breakage forward and makes it look like the migration caused it. Fix what is already wrong before moving.

    Output Pre-migration validation report

  3. 03

    Map each locale independently

    Every language version needs its own complete redirect map. Locales diverge over time — one language often has pages the others never had.

    Output Per-locale redirect maps

  4. 04

    Regenerate annotations from one source

    Build hreflang from the URL mapping programmatically so every version updates simultaneously. Hand-editing per locale guarantees a mismatch.

    Output Regenerated annotation set

  5. 05

    Verify return tags across the cluster

    Every version must reference every other version, including a self-reference. Confirm reciprocity after launch, not only before.

    Output Return tag verification

  6. 06

    Confirm x-default in every cluster

    Pointing at the global version or the selector page. It is the fallback for users no version matches, and it is routinely lost in a move.

    Output x-default coverage check

Questions people ask before starting

Does hreflang need updating during a migration?

Yes, and simultaneously across every language version. Annotations pointing at redirected or missing URLs are ignored, which breaks the cluster. Because the relationship is reciprocal, one broken member affects the annotations of every other version in that cluster.

What happens if hreflang breaks?

Google loses the declared relationship between language versions and falls back to its own inference. The usual result is the wrong language version ranking in a market, or versions competing as duplicates. It rarely produces a total collapse, which is why it goes unnoticed.

Should we redirect users by IP address during a migration?

No, and not at any other time either. Googlebot crawls predominantly from US IP addresses, so IP-based redirection means it only ever sees the US version. Serve the requested URL and use a selector or a dismissible banner to suggest an alternative.

Can we consolidate country domains into subfolders during a migration?

You can, and it is a substantial project rather than a configuration change. Each country domain has its own authority and link profile. Combine it with regional content decisions and a full hreflang rebuild, and expect a longer recovery window than a single-locale move.

Planning this move?

Send the launch date and what is changing. We will tell you which parts of this page apply to your situation and which do not.

Reply
Typically within one business day.
Hours
Monday to Friday, 9am–6pm US Eastern.
First call
Scoping, not a pitch. No deck.