hreflang tells search engines which language or region version of a page to show to which users, so that an Arabic searcher sees your Arabic page and a French searcher sees your French one, rather than the wrong version ranking or your translations competing with each other. Getting it right on an English, Arabic and French site comes down to a few strict rules: the annotations must be reciprocal, meaning every version links to every other version and each page also references itself; you must use correct language codes (en, ar, fr) with optional region codes such as en-QA or ar-QA when you genuinely target a country; you should include an x-default entry for users who match none of your languages; and every hreflang URL must point to the canonical, indexable version of each page, with canonicals that agree rather than fight the annotations. You can place hreflang in the HTML head, in HTTP headers, or in the XML sitemap, but pick one method and apply it consistently. Be warned that hreflang is genuinely fiddly and one of the more error-prone parts of technical SEO, and it does not boost rankings by itself; what it does is make sure the right language version reaches the right person, which improves experience and helps each page rank in its intended market.
If you run a site in English, Arabic and French, hreflang is the piece of technical SEO that decides whether your careful translations actually reach the right people, or quietly undermine each other in search. It is also one of the easiest things to get subtly wrong. Here is how it works and how to implement it cleanly.
What hreflang actually does
hreflang is an annotation that tells search engines your pages are the same content in different languages or regions, and which one to serve to whom. Without it, a search engine may show your English page to an Arabic-speaking searcher, or treat your three language versions as competing near-duplicates, splitting their signals. With it, the engine understands the relationship and serves your Arabic page to Arabic users, your French page to French users, and your English page to everyone else. It does not directly raise your rankings, and it is important to be honest about that; its job is correctness, making sure the right version appears, which improves the experience and helps each page perform in the market it was written for.

The rules that actually matter
Most hreflang failures come from breaking one of a small set of rules, so it is worth being strict about them.
| Rule | What it means | Common mistake |
|---|---|---|
| Reciprocal links | Every version links to all others | Missing return tags between versions |
| Self-referential | Each page lists itself too | Omitting the page’s own hreflang |
| Correct codes | Use en, ar, fr (plus region if real) | Wrong or invented language codes |
| Canonical agreement | hreflang points to canonical URLs | Canonicals that fight the annotations |
| x-default | Fallback for unmatched users | Leaving no default version |
What the tags look like
On an English, Arabic and French site, each page carries a matching set of annotations that reference all versions plus a default. In the HTML head of every version, the set looks like this, with the same block appearing on all three pages so the references are reciprocal and self-referential:
<link rel="alternate" hreflang="en" href="https://example.com/page/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page/" />
<link rel="alternate" hreflang="ar" href="https://example.com/ar/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />Add region codes such as en-QA or ar-QA only when you truly serve different content to different countries; for a single trilingual site, language codes alone are usually cleaner and safer.
Why it goes wrong so often
hreflang earns its difficult reputation because the errors are easy to make and hard to see, so it deserves careful checking rather than a one-time set-and-forget. The most common failure is non-reciprocal tags, where your English page links to the Arabic version but the Arabic page does not link back, which invalidates the relationship. Others include forgetting the self-reference, using invalid codes, pointing hreflang at non-canonical or redirected URLs, or letting a plugin generate annotations that conflict with your canonicals. Because none of this produces an obvious visible break, problems can persist for months while the wrong versions quietly rank. This is exactly why hreflang belongs in your regular technical checks, where validation tools can catch missing return tags and code errors before they cost you visibility.
The smallest first step
If you already have hreflang in place, validate it: run your key pages through a hreflang checker and confirm the tags are reciprocal, self-referential and pointing to canonical URLs. If you have not implemented it yet, start with one template of pages, get the four-line set right, verify it, then roll it out. Doing this properly once, and checking it periodically, prevents the slow, invisible damage of the wrong language version ranking in the wrong market.
Frequently asked questions
Does hreflang improve my rankings?
Not directly. hreflang does not raise rankings on its own; its job is to make sure the correct language or region version of a page is shown to the right user. That improves experience and prevents your translations from competing as near-duplicates, which helps each page perform in its intended market. Think of it as correctness and targeting, not a ranking boost.
Do I need region codes like en-QA, or just en?
Usually just the language code, unless you genuinely serve different content to different countries. Region codes such as en-QA or ar-QA are for when a page targets a specific country with distinct content, pricing or offers. For a single site in English, Arabic and French, plain language codes are cleaner, easier to maintain and less likely to introduce errors than adding region targeting you do not actually need.
Where should I put hreflang: head, headers or sitemap?
Any of the three works, but pick one and apply it consistently. Tags in the HTML head are common and easy to inspect; HTTP headers suit non-HTML files like PDFs; the XML sitemap keeps annotations out of the page and can be efficient at scale. Mixing methods or duplicating them across places is a frequent source of conflicts, so choose the one you can maintain reliably.
What is x-default for?
x-default specifies the fallback version to show users who do not match any of your listed languages or regions. On a trilingual English, Arabic and French site, you typically point x-default at your main English page or a language-selector page. It ensures that someone who is not clearly an Arabic, French or targeted English user still lands on a sensible default rather than an arbitrary version.
Why is my hreflang not working?
The usual causes are non-reciprocal tags, where versions do not all link back to each other, a missing self-reference, invalid language codes, or hreflang URLs that point to non-canonical or redirected pages. Because these errors are invisible on the page, they often go unnoticed. Running your pages through a hreflang validator surfaces missing return tags and code mistakes, which is the fastest way to diagnose why it is not behaving.

Get multilingual SEO right
On an English, Arabic and French site, correct hreflang is what makes your translations reach the right people instead of undermining each other, so treat it as a strict, checkable part of your setup. Because the errors are invisible, hreflang belongs in every technical SEO audit, alongside your local targeting and the multilingual keyword research that gives each version its own reason to exist, with structured data reinforcing the picture. Book a free 30-minute call through the contact page and we will check your hreflang and multilingual setup, with no pressure either way.
