Arabic and localization
Hreflang for Arabic and English websites: stop Google guessing
Ilyes Massoudi7 min readThe short answer
Hreflang is a tag that tells Google a page has an equivalent version in another language, so each searcher is shown the right version instead of a guess. The requirement most sites fail is reciprocity: every Arabic page points to the English one and to itself, every English page points to the Arabic one and to itself, and an x-default names what to show when neither language matches. A one-way reference is ignored entirely. Use plain ar and en without a country code if you serve the whole Gulf, and add a country code only when you genuinely have different versions per country.
What hreflang actually solves
A site with an Arabic and an English version puts a question in front of Google on every search: which version do I show? Without hreflang it answers by guessing, and the usual guess is the English version, because it is older or has more links, while the Arabic is treated as a duplicate worth hiding.
The familiar result on Gulf sites: an Arabic searcher lands on an English page and leaves, and the Arabic version you paid to write is seen by nobody. Hreflang answers the question on Google’s behalf: this page is for Arabic, that one for English, and this is what to show when neither matches.
The correct markup, line by line
In the head of each of the two pages, exactly three lines:
<link rel="alternate" hreflang="ar" href="https://example.com/ar/services/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/ar/services/" />
Three points where most implementations fail:
- The same three lines on both pages. The Arabic page carries all three, and the English page carries the same three. Each page points to itself and to the other. That is reciprocity, and without it Google ignores the tag entirely.
- Full URLs that match the canonical. With protocol and domain, and with or without the trailing slash exactly as in the canonical. An hreflang URL that redirects or differs from the canonical voids the tag.
- An x-default that points to a version that exists. Most sites make it the primary language or a language-selection page. In the Gulf, if your audience is Arabic first, make it Arabic.
ar, ar-SA or ar-AE
The language code alone is enough for most Gulf sites: ar and en. A country code adds one piece of information: that this version targets this country specifically. It is useful when you genuinely have different Arabic versions per country, with different prices, addresses and offers. It is harmful when you put it on a single version that serves the whole Gulf, because you are telling Google the page is for Saudi Arabia only, then wondering why it does not show in Qatar.
The rule: one Arabic version means ar. Several Arabic versions with genuinely different content mean ar-SA, ar-AE and ar-QA, with ar or x-default for anyone who matches none of them.
The domain: .com, .sa, .ae or .qa
A country domain tells Google the geographic target without any setup, reads as a trust signal to local users, and confines your site to that country. A .com works across the Gulf and needs clear content that names the markets.
The practical choice: if you sell in one country, its domain makes sense. If you sell across the Gulf, a .com with a folder per language and pages naming each market. Never buy three domains and put the same site on all of them; that duplication hurts all three.
Structure: folder, subdomain or separate domain
| Structure | Example | When |
|---|---|---|
| Folder per language | example.com/ar/ | Best for most businesses; keeps domain strength in one place |
| Subdomain | ar.example.com | Acceptable, but splits signals and complicates tracking |
| Separate domain | example.sa | Only when the legal entity differs in that country |
The common regional mistake: Arabic on a subdomain or separate domain with no commercial reason, starting from zero while the main domain holds all the trust.
Hreflang errors I see in almost every audit
- A one-way reference. Arabic points to English, English does not point back. Google ignores the tag.
- Hreflang pointing to a page that does not exist, redirects, or is blocked from indexing.
- A wrong language code. “arabic”, or ar_SA with an underscore instead of ar-SA with a hyphen.
- An Arabic page with no English equivalent pointing at the English homepage. The tag links equivalent pages only.
- Automatic redirection by IP or browser language. It stops Google from seeing one of the versions. Show a clear language switcher and let the visitor choose.
- The same title and description on both versions, so they look like one duplicated page despite the tag.
The pre-launch checklist
- Every Arabic page has an equivalent English page, and vice versa.
- The same three lines in the head of both pages, with full URLs matching the canonical.
- x-default points to a version that exists and is indexed.
- No automatic redirection by language.
- A genuinely different title and description on each version.
- Check one page in the URL Inspection tool in Search Console and look at “Google-selected canonical”: it must be the page itself, not its counterpart.
- After some weeks, filter the Performance report by language and confirm the Arabic version receives impressions from Arabic searchers.
What it looks like when done right
This site is itself a sample: view the source of any page and you will find the three tags reciprocal between Arabic and English, with x-default pointing to Arabic. In the Digital Presence Audit, checking the language versions is a fixed item in the technical diagnosis, because on bilingual Gulf sites it is one of the cheapest fixes with the fastest effect.
