Websites11 min read

Real estate agency Dakar / Abidjan: portal listings + SEO 2026

Mohamed Bah·Fondateur, Kolonell
May 15, 2026
Share:
Real estate agency Dakar / Abidjan: portal listings + SEO 2026

Real estate agency Dakar / Abidjan: portal listings + SEO 2026

Websites

"Apartment for rent Almadies", "villa for sale Cocody Abidjan", "furnished studio Plateau Dakar" — these queries represent 180,000+ combined monthly Google searches. Yet most African agencies still operate via WhatsApp + word-of-mouth, missing 90% of the digital market.

TL;DR

- Listings portal + filters + pro photos = +250% mandate requests.

- 2026 stack: Next.js + Strapi + Algolia search + WhatsApp lead capture.

- 6-9 months to Top 3 Maps + 50K monthly visits in major cities.

Real estate portal architecture

`

[Visitor] → [Home page with powerful search]

[Filtered listings: type / district / budget]

[Property page: 15-25 photos + plan + location + virtual tour]

[CTA: visit, quote, direct agent contact]

[WhatsApp + email lead capture]

[Auto agent assignment + CRM tracking]

`

Step 1 — data model (Prisma)

`prisma

model Property {

id String @id @default(cuid())

slug String @unique

reference String @unique

title String

type PropertyType

transaction TransactionType

price Int

currency String @default("XOF")

surface Int?

bedrooms Int?

bathrooms Int?

city String

district String

address String?

latitude Float?

longitude Float?

description String

features String[]

images Image[]

status PropertyStatus

agentId String

agent Agent @relation(fields: [agentId], references: [id])

views Int @default(0)

createdAt DateTime @default(now())

@@index([city, district, type, status])

@@index([transaction, price])

}

model Image {

id String @id @default(cuid())

propertyId String

property Property @relation(fields: [propertyId], references: [id])

url String

caption String?

order Int

}

model Agent {

id String @id @default(cuid())

name String

phone String

whatsapp String

email String

photoUrl String?

bio String?

properties Property[]

}

`

`tsx

'use client';

import { InstantSearch, SearchBox, Hits, RefinementList, RangeInput } from 'react-instantsearch';

import algoliasearch from 'algoliasearch/lite';

const client = algoliasearch(

process.env.NEXT_PUBLIC_ALGOLIA_APP_ID!,

process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_KEY!

);

export default function SearchPage() {

return (

);

}

`

Algolia: $0 up to 10K monthly searches, $50/100K beyond. Essential for fast search experience.

Step 3 — SEO-optimized property page

`tsx

export async function generateMetadata({ params }) {

const property = await getPropertyBySlug(params.slug);

return {

title: ${property.title} - ${property.district}, ${property.city},

description: ${property.type} of ${property.surface}m² for ${property.transaction === 'SALE' ? 'sale' : 'rent'} in ${property.district}, ${property.city}. Price: ${property.price.toLocaleString()} ${property.currency}.,

openGraph: {

images: property.images.map(i => ({ url: i.url })),

},

};

Need a professional website?

Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.

}

export default async function PropertyPage({ params }) {

const property = await getPropertyBySlug(params.slug);

return (

{property.title}

${property.surface}m²} />

${property.price.toLocaleString()} ${property.currency}} />

{property.description}

);

}

`

Step 4 — Schema.org RealEstateListing

`json

{

"@context": "https://schema.org",

"@type": "RealEstateListing",

"name": "Modern 4-bedroom villa Almadies",

"description": "Contemporary 280m² villa with pool...",

"url": "https://kolonell.com/properties/villa-almadies-12345",

"image": ["https://...jpg"],

"datePosted": "2026-05-15",

"address": {

"@type": "PostalAddress",

"streetAddress": "Almadies",

"addressLocality": "Dakar",

"addressCountry": "SN"

},

"geo": {

"@type": "GeoCoordinates",

"latitude": 14.7440,

"longitude": -17.5095

},

"numberOfRooms": 4,

"floorSize": {

"@type": "QuantitativeValue",

"value": 280,

"unitCode": "MTK"

},

"offers": {

"@type": "Offer",

"price": "385000000",

"priceCurrency": "XOF",

"availability": "https://schema.org/InStock"

}

}

`

Step 5 — instant WhatsApp lead capture

`tsx

export function AgentCard({ agent, property }) {

const message = encodeURIComponent(

Hello ${agent.name}, I'm interested in "${property.title}" (ref ${property.reference}). Can you arrange a visit?

);

return (

{agent.name}

{agent.name}

Real estate agent · 8 years experience

https://wa.me/${agent.whatsapp}?text=${message}}

className="bg-emerald-600 text-white px-4 py-3 rounded-lg block text-center">

💬 WhatsApp · Request a visit

tel:${agent.phone}}

className="border px-4 py-3 rounded-lg block text-center">

📞 Call now

);

}

`

Step 6 — new listing alerts

When a client searches "4-bedroom villa Almadies" and no property matches:

`tsx

`

Store query + criteria, then nightly cron matches new properties and notifies via WhatsApp/email.

Real case — Dakar real estate agency

MetricBeforeAfter 12 months
Monthly visits80038,000
Visit requests/month12187
New signed mandates/month311
Monthly revenue4M XOF18M XOF

Common pitfalls

  • Amateur photos — first impression critical. 80-150K XOF in pro photographer for 30+ properties = immediate ROI.
  • No virtual tour — Matterport or even smartphone 360° boosts engagement +40%.
  • No mobile optimization — 75% of real estate searches are mobile.
  • Unmaintained listings — sold property still listed = instant trust loss.
  • No lead scoring — auto-assign leads to the right agent by district expertise.

FAQ

Q: Publish exact prices?

A: Yes for rent. For sale: "from" or range OK, but hiding = -45% requests.

Q: How to prevent competitor scraping?

A: Photo watermark + API rate limit + Cloudflare Bot Fight Mode. Don't expose too much in XML feed.

Q: Local Senegal/CI MLS integration?

A: No unified MLS in Francophone Africa in 2026. Strategy: clean portal + partnerships with other agencies for cross-exclusives.

Conclusion

A digital real estate agency in 2026 is no longer optional. 4-8M XOF initial investment for clean portal + pro photos + Algolia search. 6-12 month ROI on average volumes. Ideal time to start = before competitors.

Tags:#Real Estate#Agency#Listings#SEO#Africa#Portal
Share:

Mohamed Bah

Fondateur, Kolonell

Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.