Skip to main content

Local marketplace · UAE

From deindexed to 200K monthly impressions

Finding a good salon in Dubai is harder than it should be, and the reason is structural rather than a lack of salons. I started this in December 2024 to build the thing I thought was missing, directing a small contract team. It works now. It also spent about 8 months invisible to Google after a change to the URL structure, which is the part most write-ups leave out.

SalonsInDubai.ae Build and growth Dec 2024 to present

In short

Problem

Thousands of salons in Dubai and no fair way to find one. Booking platforms only show the businesses paying to be on them.

What I built

A verified catalogue of 2,777 Dubai salons out of 10,566 scraped UAE records, a points ranking, and an agentic content engine.

Result

3,900 monthly sessions and 200,000 monthly impressions from near zero, growing 40% month over month.

from 0

3,900

Monthly Sessions

+40%

Month Over Month

from 0

20

Authority Score

How this is measured

Sessions and the AI-assistant share come from Google Analytics, impressions from Google Search Console, and Authority Score from Semrush. Figures are monthly as of August 2026, and the growth rate is month over month across the 3 months since the first post on 26 April 2026. The Search Console figures are the ones in the screenshot further down. The Analytics and Semrush properties are private, so those two you are taking on trust.

Constraints

  • A contract team rather than an in-house one, so every decision had to be specified tightly enough to hand over
  • WordPress, chosen for speed at the start and then held all the way through the rebuild rather than migrated
  • No page redesigned during the rebuild, so the whole fix had to sit underneath the interface
  • A catalogue of 2,700+ near-identical templated pages, where one template defect repeats across every page at once

What was mine

The product, the data, the SEO architecture, the content engine, and every decision above were mine. I directed a contract team of 4 on the build, a designer plus 3 developers covering front end, back end and full stack. Everything below is a call I made and carried.

On this page

The problem

Dubai has thousands of salons and no fair way to find one. Discovery runs through booking platforms, which only show the businesses paying to be on them, and through Google Maps, which ranks on how well a listing is optimised rather than on how well it fits what you asked for. A few thousand independent salons have no route to being found on merit. Building the alternative meant starting with no authority, no traffic and no reputation, and solving a marketplace from both directions at once.

What I built

  • Scraped 10,566 salons across the UAE from Google Maps, salon websites and other marketplaces, collected the images, then verified every record. 3,000+ of those were Dubai, and 2,777 are published today after a second restructure and re-verification once businesses closed.
  • Ran roughly 6 weeks of design and UX iterations with a designer and 3 developers, against one goal: a premium, modern directory where a visitor picks the right salon in the fewest possible steps.
  • Built the catalogue as 2,700+ programmatic pages across 207 locations, 205 services and 38 venue types, with a 5-way filter and a points system that ranks salons on verified information, service quality and ratings.
  • Rebuilt the technical layer in place from August 2025 after the deindexing: URL structure, crawlability and templates. No CMS migration, and no page redesigned.
  • Built an agentic content engine rather than another n8n workflow, chaining research, planning, writing, scheduling and publishing, and deliberately throttled it to a few posts a day. First post shipped 26 April 2026.

The result

From near zero to 3,900 monthly sessions and 200,000 monthly impressions, growing 40% month over month, with Authority Score at 20. Around 13% of that traffic now arrives from AI assistants rather than from search. The interface never changed through any of it. All of the growth came from the layer beneath it.

Why finding a salon in Dubai was broken

Dubai has thousands of salons and no fair way to find one. Discovery runs through 2 channels, and neither of them ranks on whether a salon actually suits you.

The first is booking platforms. Fresha is the big one here, and the booking product itself is good. But a booking marketplace can only show you the businesses that are on it, and its own Dubai page lists 1,156 venues against the 2,777 salons in this catalogue. It also charges a fee on every new client it introduces, around 20%, which is a real cost for a small salon and a reason plenty of them stay off it.

The second is Google Maps, which ranks on how well a listing is optimised rather than on how well it matches what you asked for. A salon with a complete profile, a steady flow of reviews and someone doing local SEO wins. A better salon with none of that does not exist as far as the map is concerned.

So a few thousand independent salons have no route to being found on merit. That is the gap I wanted to fill: one place that covers all of them, ranks on verified information rather than on ad spend or optimisation, and pulls its signals from the salons' own websites and other directories rather than from whoever pays.

Starting that is harder than it sounds, for 2 reasons. A new platform has no domain authority, no traffic, no reputation and no reason for anyone to believe it. And a marketplace only works in both directions at once: salon owners will not maintain a listing nobody visits, and visitors will not use a catalogue that is thin or out of date. Both sides have to be solved by the same moves, which makes it a B2B2C problem rather than a directory one.

The thing built against all of that, and the front door to it: every verified salon in Dubai in one place, 2,777 of them, ordered by a points score the site publishes rather than keeps to itself. This is also the design from launch onwards, which matters later. (click to enlarge)

Why I built it on WordPress

The first real decision was the platform, and I made it for speed rather than for elegance. I had already worked with freelancers and contractors who knew WordPress, I knew it myself, and the people I trust who publish content at scale had good things to say about running it there. Picking anything else would have meant hiring differently and learning the platform at the same time as building the product.

WordPress has drawbacks and I hit most of them. I still think it was the right call, and the proof is that I never migrated: when the site broke badly 8 months later, holding the platform is what made the repair survivable rather than a restart.

I directed a contract team of 4 on the build. A designer, a full-stack developer, and 2 developers covering front end and back end. Working that way forces a discipline that turned out to matter: nothing gets built until it is specified well enough to hand to someone else.

The data was the real product

A directory has a harder version of the cold-start problem than most sites, because it cannot publish anything at all until it has data, and for the UAE that data does not exist in one place. Before a single page existed I needed a verified record of every salon in the country.

I scraped 10,566 salons across the UAE, pulling from Google Maps, the salons' own websites and other marketplaces, and collected the images alongside the records. Just over 3,000 of those were Dubai. Then the slow part started.

Collecting is the easy half. Validation is what decides whether the site is worth anything: is this website still live, is this contact real, is this the same business appearing twice under two spellings, is this place still trading at all. I think a directory is only as good as its worst record, because a visitor who clicks through to a salon that shut down last year stops trusting the rest of them.

So the dataset has been through 2 passes, not one. The first took about 2 months and produced the catalogue that launched. Later, once enough businesses had closed, I restructured the data and re-verified the whole thing. 2,777 salons are live today, with 377 held back and flagged as closed rather than published. Those were not missing inventory. Every one of them failed validation, and publishing them would have meant hundreds of pages about places nobody can visit.

  • 10,566 records scraped UAE-wide from Google Maps, salon websites and other marketplaces, not a single feed or a bought list
  • Images collected alongside the records, so listings did not launch as text
  • Every record checked for a live website, a valid contact, and whether it already existed under another spelling
  • Re-verified end to end a second time after closures, rather than letting the catalogue quietly rot
The dataset the site was built from: 10,566 verified UAE records, each carrying location, contact details, Google rating, social profiles and opening hours. The values are blurred here. The row numbers on the left are not. (click to pause)(click to play)

Designed around one decision

About 6 weeks of design and UX iteration went in before the catalogue was worth showing anyone. The brief I gave the designer was narrow on purpose: premium and modern enough that a Dubai audience takes it seriously, and simple enough that someone picks the right salon in the fewest possible steps.

Those two pull against each other, which is why it took 6 weeks rather than 1, and why the Figma file ended up with 686 comments on it. Premium usually means more space and more photography, and deciding fast usually means more density. The version that shipped is the one where a visitor can compare on the things they actually choose between: area, service, price and rating.

This is also the decision that paid off twice. The design was built to hold at several thousand pages rather than to look right on the 12 that existed at launch, so when the rebuild came it needed no redesign at all.

The same design carrying the whole catalogue, 2,777 salons across 38 venue types. It was drawn for this many rows rather than for the 12 that existed on launch day, which is why the rebuild never had to touch it. (click to enlarge)

Three systems on top of the catalogue

A grid of pages is not a product. Three systems sit on top of it, and the third is the one I would point at first.

The programmatic layer. 2,700+ pages generated from structured data across 207 locations, 205 services and 38 venue types, so the catalogue covers the whole grid a person might search: this service, in that area, at this salon. I gated it instead of generating it blindly. A service-and-area combination with fewer than 3 real listings is set to noindex, because a page with one result on it is a thin page, and generating thousands of those is basically how programmatic SEO fails.

The filters. 5 ways to narrow the catalogue: salon type, area, service, price range and rating. They exist because they match how someone actually decides, rather than because they map neatly to the taxonomy underneath.

The points system, which is the part I am most pleased with. Every salon is ranked by a transparent points score built on verified information, service quality and ratings, and the site says so publicly. A more complete listing ranks higher in its category and its filters. That gives salon owners a reason to claim their listing and keep it current, which means the people best placed to maintain the data have an incentive to do it. Stale data is what makes a directory useless, and this keeps it current at no cost and with nobody chasing it.

Then it broke

The early signs were fine. Pages began to index and a first trickle of organic traffic arrived. Then a change to the URL structure broke the mapping between the catalogue and what search engines had already indexed. The listing pages fell out of the index and the traffic went with them.

The symptom was blunt. A lot of pages returned a 404 instead of the page that should have been there, so part of the catalogue had stopped existing as far as a visitor or a crawler could tell.

What kept it broken was the repair loop. Each change fixed one symptom and introduced another somewhere else, and every cycle took weeks to go live and longer to verify. A directory has thousands of near-identical templated pages, so a small template defect is never small: it repeats across the entire catalogue at once.

That ran for about 8 months, and it is the most demoralising kind of broken. Nothing looks wrong when you open it. The site loads, the listings are all there, every page is exactly what it should be, and none of it counts for anything.

Search Console only keeps 16 months, so the drop itself has already aged out of it. Semrush kept the longer history.

The climb, and then the fall. Keywords build through early 2025, then drop back to almost nothing and stay there. Everything after this point is deliberately cut from the chart. (click to enlarge)

Rebuilt in place, same decision held

From August 2025 I rebuilt the technical layer without migrating the CMS and without redesigning a single page. That is the same call I made on day one, held under pressure: a migration would have reset whatever authority had survived, and the design had been built for this scale, so it held.

I could not find the cause of the 404s. I paid a contractor to read the code and find it, and they could not either. That is the honest state it was in: 2 people who knew the codebase, looking directly at it, and neither of us could say why a page that existed was returning a 404.

What worked was reading the whole templated surface at once with AI rather than going file by file, which is how the URL slugs and the routing that generated them turned out to be the problem. Once that was fixed I went back to Search Console, submitted the affected pages for validation, and waited. Google recrawled, the validation passed, and the pages came back.

AI did the parts that had made the old loop slow: reading the whole templated surface at once to find where it diverged, generating the repetitive fixes, and checking the result against what a crawler actually receives rather than what the page looks like in a browser. I ran a second round in November 2025.

  • URL structure repaired so the catalogue mapped cleanly to what was already indexed
  • Templates fixed to render their links server-side, so a crawler and a browser receive the same page
  • Archive and hub pages returned to indexable, self-canonical, and linked into the catalogue
The same chart with the rest of it: the recovery from August 2025 as the rebuild put the catalogue back in the index, and the steep part after the content engine started. October 2024 to July 2026. (click to enlarge)

An agentic content engine, throttled on purpose

Fixing the technical layer made the catalogue visible again. It did not make it rank for anything a person searches before they pick a salon. A directory answers "which one", but almost every query that comes before that is informational, and a catalogue cannot answer those.

I had already built content automation in n8n and could have done it again. I went agentic instead, for a reason worth being precise about: the fragility. A single upstream API problem takes an n8n workflow down and the whole chain stops, and keeping it healthy is ongoing maintenance rather than a build. Friends of mine run n8n at real scale and it works for them. For a system I wanted to leave alone for weeks, I wanted something that could handle a step going wrong without me watching it.

The engine chains skills in sequence: research, planning, writing, scheduling, publishing, with a lot of steps in between. Every piece comes out in the same structured components, built for search rather than decorated for it afterwards.

The most important setting is the throttle. It publishes a few posts a day and no more. Everything about the tooling would let me publish hundreds, and that is exactly the behaviour Google has spent 2 years learning to catch. The other control that matters at this scale is cannibalization: adding hundreds of articles on top of 2,700 templated pages in one narrow vertical is the fastest way to make a site compete with itself, so every piece is checked against what already ranks before it is written rather than after it underperforms. First post shipped 26 April 2026.

Where it is now

Roughly 3 months after the first post, the site runs at 3,900 monthly sessions and 202,000 monthly search impressions, growing 40% month over month. Authority Score sits at 20, up from nothing.

The Search Console chart shows what happened better than any single number does. Impressions sat near zero through most of 2025, climbed slowly after the rebuild, then turned sharply upward in the weeks after the first post went out. Across the full range that is 965,000 impressions and 6,020 clicks.

The average position is 12.6 and the click-through rate is 0.6%. Both are what a site looks like just after it becomes visible: most of those impressions sit on page 2, where almost nobody clicks. Closing that gap is the current job, and the number is more use to you than a curve with the awkward part cropped out.

The same dashboard carries the numbers that are less comfortable. Tracked visibility is 1%, 1 keyword sits in the top 3, and referring domains are down 3% over the quarter. That is the same story as the position figure above rather than a different one: a directory 3 months into publishing, with most of its visibility still on page 2 and a link profile that is still thin. The keyword in position 1 is "how much does a pedicure cost", which is exactly the kind of question a catalogue could never answer on its own.

What the AI channel is doing

Around 13% of sessions now arrive from AI assistants rather than from a search results page. Semrush counts 98 mentions and 499 cited pages across the assistants, and 493 of those citations are ChatGPT. That channel did not meaningfully exist when this started, and it rewards exactly the kind of specific, structured content that answers the question a person actually typed.

The number I did not expect sits on the AI side. In the answers where the directory appears at all, Semrush counts fresha.com cited 42 times, salonsindubai.ae 34, and google.com 27. Being cited nearly as often as the platform this page opened by describing, in a channel where the citation is the visibility, is the part I would not have predicted at the start.

Top cited sources in the AI answers where the directory appears: fresha.com 42, salonsindubai.ae 34, google.com 27. The 2-year traffic and keyword curves are alongside it. (click to enlarge)

What I would do differently now

I would pick a different market. Salons in Dubai is a crowded one, and crowded on its own is survivable. The harder part is what the customers can spend: a lot of these businesses run on small marketing budgets, which caps what a directory can charge for placement no matter how well the directory works. And I am not interested in the salon industry. That third reason sounds like the softest of the three, and I think it is the one that costs the most, because a catalogue only pays off if you are still working on it in year 2. Starting again I would build it for gyms and fitness.

I might not build it on WordPress either, and that is not a criticism of the call at the time. WordPress put a catalogue live in weeks when the alternative was writing the whole thing from scratch, and under those constraints I would take that trade again. What changed is that the thing it was buying me, speed without building everything myself, is no longer scarce.

The developers are the clearest case of that. The fix came out of reading the whole surface at once with AI, and I have kept going that way since: the repairs, the improvements and the new features on this site are mine, with nobody else in the loop. Knowing what I know now I would build it end to end myself.

Design is the exception, and I would rather be straight about it than pretend otherwise. It is where I am weakest. AI gets me to something respectable and a good designer or UX person still beats it, and on a product whose whole promise is that you can decide fast, that gap is worth paying for.

Article sources

This is a first-hand account of work I did, so the primary source is the site itself. The Search Console figures are the ones in the screenshot above. Traffic and Authority Score come from its Google Analytics and Semrush properties, which are private.

  • SalonsInDubai.ae: The live directory. The filters, the points system and the catalogue can all be checked against the site itself (salonsindubai.ae)
  • How the ranking works: The supply side, where salon owners claim and complete a listing (salonsindubai.ae)
  • Fresha, Dubai: Their own Dubai page, for the count of venues they list in Dubai. Checked 7 August 2026 (fresha.com)

Tags

Programmatic SEOTechnical SEOAI Content SystemsMarketplace

The systems behind this

The playbooks and AI skills used in work like this are published: the same systems with the client details stripped out, ready to run.