Skip to content
MiddleEastEcomMiddle East Ecommerce
Marketing · SEO

Hreflang for Gulf Stores: ar-SA, ar-AE, en-AE and x-default

Hreflang tells Google which language and country version of a page to show each searcher. Gulf stores usually need ar-SA, en-SA, ar-AE and en-AE, plus an ar fallback and x-default. Every version must list the full set, including itself, and point only at live, self-canonical URLs.

MayaBy MayaUpdated 9 min read
Key takeaways
  • Hreflang doesn't boost rankings. It swaps in the right language and country version once a page already ranks.
  • Use two-letter ISO codes: ar-SA, ar-AE, en-SA, en-AE. Add ar as an Arabic fallback and x-default for everyone else.
  • Every version lists the whole set, itself included. A missing return tag makes Google ignore the pair.
  • Pick one method. Head tags suit small stores, while an XML sitemap scales best for big catalogues.
  • Never force geo-redirects, and never canonicalise ar-AE to ar-SA. Both quietly cancel your hreflang.

Your Arabic product page ranks in Riyadh. Then a Saudi shopper clicks and lands on the English UAE version, priced in dirhams.

Hreflang fixes that. It's a small tag that tells Google which language and country version of a page to show each searcher.

Gulf stores need it more than most, because one product often lives at four URLs: Arabic and English, for Saudi Arabia and the UAE.

Here's which codes to use, how to add them on any platform, how to test them and the mistakes that switch them off. It's part of our ecommerce SEO guides.

What does hreflang do?

Hreflang is an HTML attribute that links the language and country versions of one page. Each version carries a list of all the others.

Google uses that list to swap in the right version. If your English page ranks for a Saudi Arabic search, Google shows the ar-SA page in its place.

What it doesn't do:

  • It doesn't boost rankings. Google ranks the strongest version, then swaps the locale. Authority isn't passed through the tag.
  • It doesn't set the language. Google reads the language from the visible text. An English page tagged ar stays English.
  • It isn't a command. It's a strong signal, so broken or conflicting signals make Google ignore it.

Which hreflang codes does a Gulf store need?

A code is a two-letter language (ISO 639-1), optionally followed by a two-letter country (ISO 3166-1). Codes aren't case-sensitive, but ar-SA is the readable convention.

CodeWho it targetsWhen to use it
ar-SAArabic speakers in Saudi ArabiaSaudi prices in SAR
en-SAEnglish speakers in Saudi ArabiaBrand, model and expat searches
ar-AEArabic speakers in the UAEUAE prices in AED
en-AEEnglish speakers in the UAEUsually your biggest UAE version
arArabic speakers anywhereFallback for Kuwait, Qatar, Bahrain, Oman
x-defaultEveryone with no matchYour global or selector page

Google picks the most specific match. An Arabic searcher in Kuwait finds no ar-KW, so gets ar. A French speaker in Dubai matches nothing, so gets x-default.

The codes people get wrong are country codes. ar-KSA and ar-UAE are invalid, so Google ignores them. Use ar-SA and ar-AE, and never a country alone, like AE.

Language-only or language and country?

Use language-only codes (ar, en) when every Gulf shopper sees the same price, currency and delivery promise. One Arabic page serves them all.

Switch to language and country codes once those differ, as they do for most stores selling in both Saudi Arabia and the UAE. Then ar-SA and ar-AE each point at a page with its own prices.

Subfolders, subdomains or ccTLDs: does it change hreflang?

No. Hreflang works the same way whether your versions live in /ar-sa/ folders, on ar.store.com or on separate country domains like store.sa and store.ae.

What changes is the upkeep. Subfolders keep everything on one domain, which is why they're the default for most Gulf stores. Subdomains work too, but offer no advantage over subfolders.

Country domains need care. A .sa domain already signals Saudi Arabia, but you still need hreflang between store.sa and store.ae. Both are in Arabic, and Google can't guess which shopper gets which.

Cross-domain hreflang works fine, as long as both domains carry the return tags. Still choosing a structure? Our bilingual SEO guide compares every option.

Three ways to add hreflang

You can place hreflang tags in the page head, in an HTTP header or in your XML sitemap. Pick one. Using two adds nothing and doubles the chance of a mismatch.

1. Page head

The simplest method, and the one most platforms use. Every version of the page carries the same block:

<link rel="alternate" hreflang="ar-SA" href="https://store.com/ar-sa/products/oud-perfume" />
<link rel="alternate" hreflang="en-SA" href="https://store.com/en-sa/products/oud-perfume" />
<link rel="alternate" hreflang="ar-AE" href="https://store.com/ar-ae/products/oud-perfume" />
<link rel="alternate" hreflang="en-AE" href="https://store.com/en-ae/products/oud-perfume" />
<link rel="alternate" hreflang="x-default" href="https://store.com/products/oud-perfume" />

Want a Gulf-wide Arabic fallback? Add a sixth line with hreflang="ar" pointing at your main Arabic URL, usually the /ar-sa/ page.

2. HTTP header

Use it only for files without an HTML head, such as an Arabic PDF catalogue or size guide:

Link: <https://store.com/ar-sa/catalogue.pdf>; rel="alternate"; hreflang="ar-SA", <https://store.com/en-sa/catalogue.pdf>; rel="alternate"; hreflang="en-SA"

The whole set goes on one header line, separated by commas, and both files send the same header.

3. XML sitemap

Each url entry lists the full set with xhtml:link lines, and every URL in the set gets its own entry. Nothing is added to the page itself:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>https://store.com/ar-sa/products/oud-perfume</loc>
  <xhtml:link rel="alternate" hreflang="ar-SA" href="https://store.com/ar-sa/products/oud-perfume" />
  <xhtml:link rel="alternate" hreflang="en-SA" href="https://store.com/en-sa/products/oud-perfume" />
  <xhtml:link rel="alternate" hreflang="ar-AE" href="https://store.com/ar-ae/products/oud-perfume" />
  <xhtml:link rel="alternate" hreflang="en-AE" href="https://store.com/en-ae/products/oud-perfume" />
  <xhtml:link rel="alternate" hreflang="x-default" href="https://store.com/products/oud-perfume" />
</url>
<!-- repeat the url block for en-sa, ar-ae, en-ae and the x-default URL -->
</urlset>

Worked example: when the sitemap wins

Say you sell 500 products. Each has four locale versions plus an x-default page, so that's 2,500 product URLs.

Every URL carries all five tags, so you're managing 12,500 hreflang lines. The ar fallback adds one more line per URL.

In the page head, those lines load with every page view. In a sitemap, they live in one generated file. Adding Kuwait later means changing one generator, not every page template.

The rules: return tags, self-reference and canonicals

Most broken hreflang comes down to three rules. Get these right and the rest is detail:

  • Return tags. If the ar-SA page lists en-SA, the en-SA page must list ar-SA. Without the return link, Google ignores the pair.
  • Self-reference. Each version lists itself as well as the others, so every page carries the identical set.
  • Canonical match. Every URL in the set returns a 200 status, is indexable and has a canonical tag pointing to itself.

The canonical rule catches many Gulf stores. If /ar-ae/ carries a canonical pointing to /ar-sa/, you've told Google the UAE page is a copy. Google drops it, and its hreflang goes with it.

Hreflang on Shopify, Salla, Zid and WooCommerce

Most Gulf platforms write hreflang for you once a second language is live. Your job is to check the output:

Shopify Markets writes hreflang tags and per-language sitemaps automatically for subfolders like /ar-sa/ on a custom domain.

  • Watch for a second set of tags from an old translation app or theme snippet.
  • Markets you delete take their URLs, and their tags, with them.

On Shopify, the step-by-step setup lives in our Shopify Arabic SEO guide. For the platforms themselves, see our guides to Salla, Zid and WooCommerce.

How to check your hreflang

Don't trust a platform setting until you've seen the tags. Here's a 15-minute check:

  1. 1

    View the page source

    Open a product page, press Ctrl+U (Cmd+Option+U on a Mac) and search for hreflang. You should see one tag per version, plus x-default.

  2. 2

    Check the return side

    Open each URL in the set and confirm it lists the same tags. Mismatched sets are the most common error.

  3. 3

    Inspect the rendered page

    In Search Console, run URL Inspection, open the crawled page and check its HTML. Tags added by apps or scripts must appear here.

  4. 4

    Crawl the whole store

    Run Screaming Frog or Ahrefs Site Audit. They flag missing return tags, invalid codes and hreflang pointing at redirects or non-canonical URLs.

  5. 5

    Watch the results

    Search Console retired its International Targeting report in 2022, so filter the Performance report by country and page folder. Arabic queries landing on /en-ae/ pages mean something's off.

A young Saudi web developer at a desk checking the page source of an Arabic online store on a large monitor, with the same product page open on a phone beside the keyboard
Check the tags in the page source, then confirm Google sees them too.

Common hreflang mistakes on Gulf stores

These five switch hreflang off without any error message:

  1. Forced geo-redirects. An app that sends every Saudi IP to /ar-sa/ also redirects Googlebot, which crawls mostly from the US. Google may never see your other versions. Show a dismissible banner suggesting the better version instead.
  2. Missing return links. Usually caused by translating some products but not others, then tagging only one side.
  3. Tags on filtered or paginated URLs. Category URLs with ?sort= or ?page= often canonicalise elsewhere. Keep them out of the set and tag the clean category URL.
  4. Blocked or noindexed versions. A page blocked in robots.txt or marked noindex can't take part in a hreflang set.
  5. Lang attribute mismatch. An Arabic page with lang="en" in its HTML tag sends mixed signals. Arabic pages need lang="ar" and dir="rtl".

Which Arabic pages should you build first? Start with the searches you're losing to translations, found with Arabic keyword research.

Hreflang checklist

Run this after launch and after every new language or market:

Hreflang audit for Gulf stores
0%

Notes for stores adding more GCC countries

  • Start on the fallback. Kuwait, Qatar, Bahrain and Oman can rely on the ar fallback and x-default until they get their own prices or delivery.
  • Add a market in one go. When Kuwait gets ar-KW and en-KW pages, add both codes to every existing set the same day. A half-updated set breaks the return tags.

Frequently asked questions

Not if you have one version of each page. Hreflang only links alternates of the same page. You'll need it the day you add English, or a second Arabic version for another country with its own prices.

Sources & further reading

  1. Tell Google about localized versions of your page — Google Search Central
  2. Managing multi-regional and multilingual sites — Google Search Central
  3. How Google crawls locale-adaptive pages — Google Search Central
  4. Hreflang: the easy guide for beginners — Ahrefs
  5. Google auto-translated pages in search results — Ahrefs
  6. Managing international domains — Shopify Help Center
  7. Google Search Console to remove International Targeting report — Search Engine Land

This guide is for general information only and is not legal, tax or financial advice. Rules and fees change — always confirm with the official source or a licensed advisor.

Maya
Maya

Maya is MiddleEastEcom's lead guide and editor. She researches GCC marketplaces, payments and regulations and turns them into practical playbooks for sellers.

Meet Maya