E-commerce SEO in Dubai: what actually breaks in online stores
Most UAE stores don't lose rankings on keywords. They lose them because the platform generates thousands of URLs nobody asked for, the same supplier description sits on thirty competing sites, and the category pages that should rank carry forty words of text. Fix the catalogue mechanics first. Content strategy comes after.
Put plainly: e-commerce SEO in Dubai is the work of controlling what Google crawls and indexes across a product catalogue, removing near-duplicate pages, giving category pages enough substance to rank, and serving English and Arabic buyers on separate URLs. Reported market retainers run roughly AED 5,000 to 18,000 per month depending on catalogue size.
I'm Artur Gall, CEO of SkyLight Marketing. We run SEO and paid campaigns for retail and e-commerce brands in Dubai, and the pattern below repeats on almost every store audit that lands on my desk.
How store SEO differs from a normal website in the UAE
A brochure site for a Dubai consultancy has fifteen pages. A human wrote every one of them, each has a purpose, and Google crawls the lot in minutes.
A store with 200 products on Shopify can generate several thousand crawlable URLs before anyone touches it. Product pages, the same product pages duplicated under collection paths, tag filters, sort orders, pagination, internal search results. Google allocates every site a rough crawl allowance based on how valuable and how fast it judges the site to be. Small sites never come close to it. Stores hit it constantly. When most of that allowance goes to filter combinations nobody will ever search, new products take weeks to index and stale prices sit in the results page.
| Brochure site | Online store | |
|---|---|---|
| Typical URL count | 10 to 40 | 500 to 50,000 |
| URLs a human wrote | all of them | roughly 5% |
| Main duplication risk | none | variants, filters, pagination |
| Ranking competitors | local firms | local stores plus Noon and Amazon.ae |
| Page most owners optimise | homepage | product page |
| Page that actually earns traffic | service pages | collection pages |
That last row catches people out. Category demand ("perfume shop Dubai", "women's abaya online UAE") resolves to collection pages. Product pages capture brand and model queries, which are lower volume and much later in the funnel. If your collection pages are empty templates, you have skipped the layer that brings traffic.
Before any keyword research, pull your indexed URL count. That single number tells you whether you have an SEO problem or a catalogue problem.
Faceted navigation: how filters burn your crawl budget
Filters multiply. Six filters with five values each produce tens of thousands of unique combinations, and by default most of them are crawlable, indexable and internally linked.
On Shopify, older tag filtering creates paths like /collections/dresses/black+silk+midi. Those are directory paths rather than query strings, so they look like genuine pages to a crawler. Newer Shopify filtering uses ?filter.v.option, which behaves better but still gets crawled. On WooCommerce with layered navigation you get ?filter_colour=black&filter_size=m&orderby=price&min_price=200, and Woo returns a 200 status for any combination you invent.
Google retired the URL Parameters tool in Search Console back in April 2022, so there is no dashboard where you tell Google to ignore ?orderby. It has to be handled on the site.
What works, in order:
- Decide which filtered views deserve to be indexed. On most stores that is between five and twenty. "Black abayas", "gold plated necklaces under 500", "size 44 loafers". These match real search demand.
- Build those as proper collection pages with their own URL, title, description and body text. Not as filter URLs that happen to rank.
- Handle the rest with
noindexplus a canonical to the clean collection URL. - Reduce internal linking into the filter matrix so crawlers stop discovering new combinations.
- Once the unwanted URLs have dropped out of the index, add robots.txt disallow patterns to stop the crawling entirely.
Step order matters. Blocking in robots.txt stops crawling, it does not remove pages Google already knows about. Block first and you freeze thousands of junk URLs in the index with no way for Google to see the noindex you added later.
Open Search Console, go to Pages, and look at the "Crawled, currently not indexed" bucket. If that number runs into the thousands on a 200-product catalogue, your filters are the reason.
Duplicate content from variants and supplier copy
Two separate problems get filed under "duplicate content" on stores, and they need different fixes.
The first is variant sprawl. Shopify appends ?variant=39847 and self-canonicalises, which is fine. The damage happens when someone creates a separate product for every colour: "Silk Midi Dress Black", "Silk Midi Dress Navy", "Silk Midi Dress Ivory", each with an identical description. Three pages now compete for one query and none of them accumulates enough signal to win it. Merge them into one product with variants, unless the colour carries its own search demand. Some do in this market. "Rose gold" in jewellery and "black abaya" in modest fashion are real queries with real volume.
Shopify also serves each product at both /collections/x/products/y and /products/y. The canonical points to the short version by default. Verify it anyway, because themes get edited and developers override things. On WooCommerce, variable products handle this correctly out of the box; separate simple products per attribute do not.
The second problem is supplier copy, and it is more damaging. A Dubai distributor for a European label pastes the brand's 180-word blurb into every product page. So does every other regional reseller, plus the brand's own site, plus their Noon listing. Google picks one page to show and it will not be the smallest domain in that group. This is the most common reason a well-built UAE store has product pages that never rank for anything except their own SKU code.
Rewrite, and write for the buyer who is actually here:
- How the item performs in local conditions. A wool coat needs different framing in Dubai than it does in Milan.
- Sizing notes using the conversion your customers actually use, with a line on fit.
- Materials, care and what arrives in the box.
- One sentence answering the objection that stops the sale.
A hundred and fifty original words beat four hundred copied ones. On catalogues above 300 SKUs, rewrite the top 20% by revenue first and template the rest. We have run exactly this sequence on premium retail catalogues including Fabiana Filippi and Rayhaan, where the top sellers carry most of the search value and the tail can wait.
Collection pages: why they are thin and what belongs on them
Collection pages are where category demand lands, and default themes give them a heading plus a grid of product tiles. By any measure that is a thin page.
What belongs there:
- 150 to 300 words of genuine text. Two or three sentences above the grid, the rest below it so the products stay visible.
- Internal links to subcategories and to the best sellers inside that category.
- A short FAQ block where the category has recurring questions. Sizing, authenticity, delivery timing across the Emirates.
- Links to the small set of filtered views you chose to index.
What ruins them:
- Auto-generating a collection for every tag. A store with 300 tags ends up with 300 near-empty pages, and Google reads that as a low-quality site rather than a rich one.
- Pagination left on defaults, so pages 2 through 40 share one title and one meta description.
- The same intro paragraph reused across fifteen collections with the category name swapped out.
My working rule: if nobody on the team can write 150 honest words about a category, that category does not need an indexable page. Merge it into its parent.
The product page: schema, reviews and stock status
Product JSON-LD is what lets Google show price, availability and rating alongside your result. The minimum useful set is name, image, description, sku, brand, and an offers object carrying price, priceCurrency set to AED, and availability.
Two mistakes turn up constantly. The first is aggregateRating in the markup with no reviews visible on the page. That is a structured data violation, the rich result gets dropped, and repeat offences can cost the whole domain its rich result eligibility. The second is availability hardcoded to InStock across the entire catalogue. When Google detects markup that contradicts the page, merchant listing eligibility goes with it.
Out-of-stock products need a decision, and deleting the URL is the wrong one. Keep the page live, set availability to OutOfStock, show a restock date or route the visitor to alternatives. A product page that has ranked for eight months is an asset you paid for. Clearing it out at the end of a season throws that away and hands the position back to the marketplace.
Reviews deserve a check of their own. Most UAE stores collect very few, and the ones they do collect sit inside a third-party widget that renders after the page loads, so the review text never becomes crawlable content. View the rendered source and search for a phrase from a review. If it is not there, those reviews are doing nothing for your search visibility.
Speed matters more on this template than any other, because product pages carry the heaviest images and the largest pile of third-party scripts. Core Web Vitals thresholds and the full diagnostic sequence belong to technical SEO work rather than this guide; for a store, the quick wins are almost always image weight and apps you installed once and never removed.
One boundary worth naming: the product photography and video behind these pages is produced by SL Media, the production company inside the same group. On the marketing side we handle the pages, the markup, the content and the campaigns that point at them.
The Arabic version of your store: what actually changes
The hreflang tags are the mechanical part and take an afternoon. The content decisions take a quarter.
Reported figures put Google at roughly 96% of UAE search, with around half of UAE internet users running searches in Arabic. Treat those as directional rather than precise. The operational point holds either way: a store selling to Emirati and wider Arabic-speaking buyers with no Arabic version is invisible for a large slice of commercial queries.
The mechanics:
hreflangforar-AEanden-AEon every page pair, self-referencing tags included, plusx-defaultpointing at your primary version.- Separate URLs per language. An
/ar/subfolder is the practical choice for most stores. Never swap languages with a cookie on the same URL. - Shopify Markets generates hreflang for translated markets automatically. WooCommerce needs WPML or Polylang, and misconfiguration is routine: missing return tags, hreflang pointing at URLs that redirect, or an Arabic path blocked in robots.txt during staging and never unblocked afterwards.
The content decisions are where stores get it wrong. Arabic search terms are not translations of English ones. Buyers search عبايات and فساتين سهرة with modifiers the English audience never uses, so keyword research has to be done in Arabic by someone who reads Arabic. Machine-translated product descriptions read exactly like machine-translated product descriptions and behave like thin content. Brand names are often typed in transliteration, so both spellings should appear on the page. And RTL layout is a genuine front-end job; a store that flips direction with a CSS override usually breaks its own product grid on mobile.
Realistic scope for a first pass: your top ten collection pages and top fifty products, translated properly. Not the whole catalogue at once.
Competing with Noon and Amazon.ae in the same results page
On head product queries you will usually lose to the marketplaces, and planning around that beats fighting it.
Reported estimates put Amazon.ae, Noon and Carrefour UAE together holding somewhere near 45 to 50% of UAE e-commerce GMV, with Amazon.ae the largest single retailer of the three by revenue. Their domain strength, review volume and crawl priority are out of reach for a single-brand store on a query like "buy phone case dubai".
Where a brand store wins:
- Your own brand and product names. Nobody outranks you there once your pages are indexed and your markup is clean.
- Long-tail specifics. "Made-to-measure abaya Dubai delivery" or "Italian cashmere knitwear UAE sizing" describe things a marketplace listing has no language for.
- Category education. Buying guides, comparisons, care instructions. Marketplaces publish almost none of this, which leaves the informational layer of the category wide open.
- Bundles, personalisation and anything a fixed listing template cannot represent.
The practical stance most of our retail clients land on: list on Noon and Amazon.ae for volume, and treat the owned store as the margin channel that holds brand demand and the long tail. Those are two different jobs, and the SEO plan should be written for the second one. You can see how that split plays out across the retail brands we work with, from fashion labels through to jewellery and fragrance.
What e-commerce SEO costs in Dubai and when results show
| Catalogue size | Reported monthly band (AED) | Typical focus |
|---|---|---|
| Under 100 SKUs | 5,000 to 8,000 | Technical cleanup, 10 to 15 collection pages, product copy |
| 100 to 500 SKUs | 8,000 to 12,000 | Filter control, bilingual rollout, ongoing content |
| 500 to 5,000 SKUs | 12,000 to 18,000 | Crawl management at scale, templating, markup and feed operations |
| Above 5,000 SKUs | 18,000 and up | Log file analysis, custom tooling, dedicated team |
These are reported Dubai market bands, not a fixed rate card. General SEO retainers in the UAE start lower, from around AED 2,000, because a brochure site carries no catalogue work. E-commerce starts higher for that reason alone, and the split between a one-off technical cleanup and a monthly retainer is worth agreeing before anyone signs anything.
Timelines, from work we have run on UAE catalogues:
| Asset | First movement | Meaningful traffic |
|---|---|---|
| Collection and category pages | 2 to 3 months | 4 to 6 months |
| Product pages | 3 to 6 months | 6 to 9 months |
| Compounding catalogue growth | 6 to 12 months | ongoing |
Collection pages move first because there are fewer of them, they carry higher volume per page, and they respond to on-page work without waiting for thousands of product URLs to be recrawled. Anyone promising ranking movement on a 2,000-SKU store inside six weeks is selling you a report.
One honest exception. If the store runs on a custom build with no control over URLs, canonicals or markup, the platform is the bottleneck and no retainer fixes it. That is a rebuild or migration conversation, and it should happen before the SEO budget starts.
A checklist you can run on your own store this week
Nine checks, roughly two hours, no tools beyond Search Console and a browser.
- Count indexed URLs in Search Console under Pages, then divide by your product count. Above three or four URLs per product on a simple catalogue, something is generating pages you did not author.
- Open the "Crawled, currently not indexed" and "Duplicate without user-selected canonical" buckets. Inspect ten examples. Filter URLs there confirm a crawl budget leak.
- Take one product description, paste a distinctive sentence into Google inside quotation marks. Other sites coming back means that copy is supplier text.
- View source on a product page and search for
"@type":"Product". Confirm price, priceCurrency and availability exist and match what a visitor sees. - Check whether
aggregateRatingappears in the markup while no reviews are visible on the page. - Open your three largest collection pages and count the words of real text. Under 100 words, that is your next writing job.
- Apply a filter on your own storefront and look at the URL. If it changes and the resulting page canonicalises to itself, your filters are indexable.
- Run a
site:query against your Arabic path. Nothing returned means the Arabic version is not indexed, whatever the translation plugin reports. - Load the URL of a product you discontinued last season. A 404 means you have been deleting pages that were still earning.
More than three of those coming back badly means the catalogue mechanics are costing you more traffic than any content plan will add this year. That is the sequence to fix first, and if you want a second pair of eyes on it, send us the store URL and we will run the same nine checks and tell you which of them fail.
FAQ
How much does e-commerce SEO cost in Dubai?
Reported market bands run from around AED 5,000 per month for catalogues under 100 SKUs up to AED 18,000 and above for large catalogues. The variable is catalogue size and platform control, not the number of keywords in the proposal. General SEO for a brochure site starts lower, from roughly AED 3,000, because none of the catalogue work applies.
How long before an online store sees SEO results?
Collection and category pages usually show first movement within 2 to 3 months and meaningful traffic by month 4 to 6. Product pages take 3 to 6 months to move and 6 to 9 to contribute properly, because there are far more of them and each has to be recrawled. Compounding growth across the catalogue shows from month 6 to 12.
Is Shopify or WooCommerce better for SEO in the UAE?
Neither ranks better by default. Shopify gets more right out of the box, with sane canonicals and automatic hreflang through Markets, but the URL structure is fixed and you work within it. WooCommerce gives you full control over URLs, markup and filtering, along with full responsibility for the mess if nobody configures it. The bigger factor is who maintains the store.
Should I block filter URLs in robots.txt?
Eventually, but not first. Robots.txt stops crawling, it does not remove URLs already in the index. Apply noindex plus a canonical to the clean collection URL, wait for Google to recrawl and drop them, then add the disallow rules to stop the crawl budget drain permanently.
Do I need an Arabic version of my store?
If your buyers include Emirati or wider Arabic-speaking customers, yes. Reported figures suggest roughly half of UAE internet users search in Arabic, and those queries are not translations of the English ones. Start with your top ten collection pages and top fifty products, using hreflang ar-AE and en-AE on separate URLs rather than a language cookie.
Can my store outrank Noon and Amazon.ae?
Not on head product queries, where marketplaces hold roughly 45 to 50% of UAE GMV between the top three. You win on your own brand and product names, on long-tail specifics with local language, and on category content that marketplaces do not publish at all. Sell on both and treat your own store as the margin channel.
What should I do with out-of-stock product pages?
Keep the URL live, set availability to OutOfStock in the Product markup, and show a restock date or clear alternatives. Deleting or 404ing a page that has been ranking for months hands that position straight back to a competitor, and you pay to earn it again when the product returns.
Do I have to rewrite supplier product descriptions?
Yes, if you want product pages to rank. The same supplier blurb sits on every reseller site plus the brand's own domain and its marketplace listing, and Google shows one of them. On large catalogues, rewrite the top 20% by revenue first with local sizing, fit and delivery detail, then template the remainder.
Written by Artur Gall, CEO and founder of SkyLight Marketing, Dubai.
Want a quote that itemises every line?
Free audit — SEO, PPC, SMM, content and production under one roof.
Get a free quote on WhatsAppWritten by Artur Gall, CEO & founder of SkyLight Marketing, Dubai.