RanklyHub
Service / International Hreflang

One brand, every market.

Expanding into new regions usually splits your ranking authority across competing duplicates. We wire locale routing and reciprocal hreflang through the App Router so every market gets a stable, crawlable URL, and engines never see your own pages as rivals.

8
Region routing
x-default
Safe fallback
0
Duplicate dilution
1:1
Locale parity
01 / Routing

Locale architecture

Sub-path or sub-domain routing wired through the App Router so each market resolves to one stable, indexable URL.

02 / Signals

Reciprocal hreflang

Bidirectional language-region annotations with an x-default fallback. No market quietly competing against another.

03 / Parity

Content parity

Translated metadata, aligned canonicals, and localized currency and formats that keep domain authority consolidated.

Implementation
app/[locale]/page.tsxTSX
1import type { Metadata } from "next";
2
3// Every market addressable; x-default catches the rest.
4const LOCALES = ["en-US", "en-GB", "es-ES", "de-DE", "fr-FR"] as const;
5
6export async function generateMetadata(
7 { params }: { params: Promise<{ locale: string }> },
8): Promise<Metadata> {
9 const { locale } = await params;
10 const languages = Object.fromEntries(
11 LOCALES.map((l) => [l, `https://ranklyhub.com/${l}`]),
12 );
13 return {
14 alternates: {
15 canonical: `https://ranklyhub.com/${locale}`,
16 languages: { ...languages, "x-default": "https://ranklyhub.com" },
17 },
18 };
19}

Reciprocal hreflang with an x-default fallback, generated from a single source of truth. Every market reachable, zero self-competition.

Next step

Check your global setup. Free, in 60 seconds.

Live crawl · hreflang and canonical inspection · instant health score · the exact fix list. No login.