hreflang tells Google which language or regional version of a page to show which searcher, so your English, German and Arabic tour pages stop competing with each other. It is not a ranking boost — it is a map. Get the return tags reciprocal, self-reference every version, add x-default, and never auto-redirect or machine-translate thin pages.
The single most common technical mistake we find on Egyptian travel sites is not a missing page or a slow theme. It is language versions that quietly cannibalise each other. An operator selling Egypt into the UK, the US and Germany builds an English page and a German page, ships them, and cannot understand why neither ranks the way it should. The pages are not competing with Viator — they are competing with each other, and Google is picking a winner you did not choose.
When your own languages compete
Without hreflang, Google sees three near-identical tour pages and treats them as duplicates. It indexes one, usually the one with the strongest links, and buries the rest. So a traveller in Manchester searching in English gets served your US page with dollar pricing and the wrong seasonal notes, or your German page never surfaces at all because the English one absorbed its authority. You paid to build all three; you are ranking, badly, with one.
Your English and German pages aren’t competing with the OTAs — they’re competing with each other.
hreflang exists to end exactly this. It tells Google these pages are not duplicates — they are the same content deliberately served to different audiences — and which one belongs to whom.
What hreflang actually does
hreflang is a map, not a ranking factor. It does not push a page up; it makes sure the right version is the one shown to the right searcher, and it stops your variants diluting each other. Get that wrong and even excellent pages underperform for reasons no content audit will ever explain.
The mechanism rests on one rule people constantly break: return tags must be reciprocal, and every version must reference itself. If your English page points to the German one but the German one does not point back, Google discards the entire cluster and you are worse off than with no tags at all. Here is what one page in the cluster should carry:
| On the en-GB page <head> | What it declares |
|---|---|
| <link rel=“alternate” hreflang=“en-GB” href=”…/en-gb/nile-cruise”> | Self-reference |
| <link rel=“alternate” hreflang=“en-US” href=”…/en-us/nile-cruise”> | US sibling |
| <link rel=“alternate” hreflang=“de-DE” href=”…/de/nile-cruise”> | German sibling |
| <link rel=“alternate” hreflang=“x-default” href=”…/nile-cruise”> | Fallback for everyone else |
The x-default line is the safety net: it tells Google what to show a searcher who matches none of your declared markets — a traveller in Spain or Japan. Every version in the cluster carries the same complete set, self included.
Getting the tags right
Most broken implementations fail on the same handful of details. Work through them in order:
- Reciprocity. Every page lists every other page in the group. One missing return tag invalidates the cluster.
- Self-reference. Each page includes a tag pointing at itself. Google needs it to confirm the set is complete.
- Language vs country.
entargets all English speakers;en-GBanden-UStarget English speakers in specific countries. Only split by country when the content genuinely differs — pricing, spelling, seasonality. Otherwise you are manufacturing duplicates. - One method, absolute URLs. Put the tags in the
<head>or in the XML sitemap — not half in each. Always use full, canonical, absolute URLs, and make sure the canonical tag agrees with hreflang rather than fighting it.
Subfolder or subdomain
Before any of this you have to decide where the versions live. Three options: subfolders (example.com/de/), subdomains (de.example.com), or country domains (example.de). For almost every Egyptian DMC the answer is subfolders. They inherit the authority of your one domain, so every backlink and every ranking signal compounds on a single property instead of being split across three that each start from zero. Subdomains and separate ccTLDs make sense at real scale with local teams and budgets — not for an operator running lean out of Cairo who needs every link to count.
Mapping it to your markets
Now map the structure to who actually buys. English is not one market: an en-GB page priced in pounds, spelling ‘organised’, and pitching a March Nile cruise is a different sell from the en-US version in dollars with a different holiday calendar. Split them only when those differences are real. German gets its own de-DE, translated properly by someone who knows how Germans book Egypt — not run through a machine and shipped thin. For the Gulf and regional demand, ar-EG Arabic earns its place.
Two traps close the loop. Never auto-redirect by IP or browser language — it traps Googlebot on one version and forces a UK agent researching from Cairo onto the wrong page; detect the market, suggest with a dismissible banner, and let the visitor choose. And never point hreflang at machine-translated pages you would not stand behind: bad translations do not just fail to rank, they drag the cluster down with them. Translate what earns revenue, do it well, and let hreflang serve each traveller the version that was built for them.
Our free audit covers search visibility, AI-answer presence, booking flow and what your OTA channel is costing you. Written, and yours whether you hire us or not.