Skip to content
MoroccoLocalGEO

AI search in Morocco: the 2026 guide for Moroccan businesses

Three scripts, two written languages, a spoken language almost never written down, addresses with no postal convention, and opening hours that change for one month a year. The Moroccan market stacks up everything an answer engine handles worst — which is exactly where the advantage sits.

Published Updated 6 min read 1,190 words This page in Markdown

Ask an assistant "which freight forwarder in Casablanca?". You will get two or three names, often the same ones, rarely the most competent. That is not a ranking: it is the result of what the model was able to read and corroborate. In Morocco five very concrete obstacles keep most businesses unreadable — and none of them is about budget.

1. Your name exists in three scripts. Say so.

"Marrakech", "Marrakesh", "مراكش". "Tanger", "Tangier", "طنجة". "Casablanca", "Casa", "الدار البيضاء". A human knows these are the same city; a model generally knows it too, for cities. It does not know it for your company, whose name may be spelled differently on your site, on your Google listing, on your invoices and on your Facebook page.

The fix is mechanical. Declare every spelling in alternateName, and link every real profile in sameAs. You stop being three vague entities and become one entity whose three names are known.

One entity, all its spellings
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://example.ma/#business",
  "name": "Atlas Transit Maroc",
  "alternateName": ["أطلس ترانزيت المغرب", "Atlas Transit Morocco", "ATM Transit"],
  "address": { "@type": "PostalAddress", "addressLocality": "Casablanca", "addressCountry": "MA" },
  "sameAs": [
    "https://www.linkedin.com/company/atlas-transit-maroc",
    "https://www.pagesjaunes.ma/..."
  ]
}

2. The Moroccan NAP: the phone number is almost always wrong

A number written "06 12 34 56 78" is comparable to nothing. International format is not obtained by gluing +212 in front: the leading zero disappears. 0612345678 becomes +212612345678. It is the single most frequent defect we see on Moroccan sites, and on its own it prevents your site, your business listing and any directory from being matched to each other.

Written on the siteWhat to publishWhy
06 12 34 56 78+212612345678International format, no spaces, no leading zero
05 22 00 00 00+212522000000Casablanca landline, same rule
WhatsApp: 0612345678https://wa.me/212612345678Clickable link, country code required
Bd Zerktouni, Casa45 boulevard Zerktouni, Casablanca 20250, MAStreet, city, code, country — always in that order

The address raises a problem specific to the country: many real locations are expressed as landmarks — a derb in the medina, a résidence, a quartier — that international postal formats cannot encode. Two complementary answers: fill in geo coordinates, which depend on no writing convention, and add a landmark in the visible text ("opposite the Shell station", "200 m from the station"). That last detail is what a human asks for and what an assistant can repeat.

3. Ramadan: one month of wrong opening hours, every year

Nearly every Moroccan business changes its hours during Ramadan, and nearly none declares it anywhere except an image on social media. The result: for a month, the most consulted source about you — your own site — is wrong, and an assistant repeats it.

schema.org can express a period. A second openingHoursSpecification block with validFrom and validThrough is enough, provided you think of it beforehand.

Exceptional hours, dated
"openingHoursSpecification": [
  { "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "08:30", "closes": "18:00" },
  { "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "09:00", "closes": "15:30",
    "validFrom": "2027-02-08", "validThrough": "2027-03-09" }
]

Put the same information in visible text on the contact page — markup describes what the page shows, never the other way round — and diary the date you return to normal hours. Exceptional hours left in place in April are as wrong as hours never declared.

4. Three languages, and one decision to make

Darija is the language of conversation, not of writing: almost nobody types a query in transcribed darija, and writing it on your site has no documented use. The real decision is between three options.

  • French — the default commercial language for services, B2B, real estate, healthcare, and craft sold locally. If you build only one version, build this one.
  • Modern Standard Arabic — essential for consumer services, public administration, training and neighbourhood healthcare. Correct Arabic content, with lang="ar" and an RTL layout, makes you readable to a share of the market that French-only competitors ignore.
  • English — tourism, export, tech, and anything aimed at a foreign buyer. Questions asked by a foreign visitor reach an assistant in English, not in French.

Whatever your combination, each version must be its own page, with its own URL and reciprocal hreflang tags (fr-MA, ar-MA, en). A translation loaded by JavaScript on the same URL does not exist as far as an agent is concerned: it will only ever see the default language.

5. Local corroboration, where it is actually verifiable

A model cites you more readily when it finds the same facts elsewhere. In Morocco the useful list is short, and it is better handled seriously than padded with worthless listings.

  1. Your Google Business Profile (google.com/business) — name, address and phone strictly identical to the site's. It is the first source cross-checked.
  2. The national directories that genuinely existpagesjaunes.ma and telecontact.ma are online and consultable. One accurate entry there beats ten listings on ghost directories.
  3. Press and sector sites — a mention in a Moroccan trade publication weighs more than a release syndicated everywhere, because it is unique and dated.
  4. Federations and professional associations — an entry in a member directory is independent confirmation that you exist, which is exactly what a cautious model is looking for.

What the local market sells, and how to check it

Moroccan agencies now offer "GEO" and "ChatGPT ranking" services. The discipline is real; some of the promises are not. Three questions sort it out, and they work on us too.

  • "What exactly do you measure?" An honest answer names server logs, referrers and a frozen question panel — not a proprietary score presented as a count of citations.
  • "What do you guarantee?" Nobody controls a model's output. You can guarantee delivered, verifiable work; never a position inside a generated answer.
  • "Can I check every published claim?" Every URL added to your site must answer 200 and every fact must be true. Ask for the list; if it does not exist, it was never checked.

The Moroccan checklist, in twelve points

  1. Phone as +212… with no leading zero, identical everywhere.
  2. WhatsApp published as a wa.me link with the country code.
  3. Full address, plus geo coordinates, plus a landmark in plain text.
  4. addressCountry: "MA" in the JSON-LD.
  5. alternateName carrying the Arabic, French and English spellings.
  6. areaServed listing the cities you actually serve.
  7. availableLanguage reflecting the languages you really answer in.
  8. Normal hours and dated Ramadan hours.
  9. One page per language, with reciprocal hreflang tags.
  10. Google listing and national directories matching the site character for character.
  11. Prices in MAD with priceCurrency: "MAD" wherever a price is shown.
  12. Every published URL tested: it must answer 200, without exception.

Frequently asked questions

Do I need an Arabic site to be visible in Morocco?

It depends on your market. For consumer or neighbourhood services, a Modern Standard Arabic version opens a share of the market French-only competitors leave empty. For B2B or export, French and English come first. What is certain: one version per URL, never a JavaScript-loaded translation.

Should I write in darija?

No, beyond occasional marketing use. Darija is rarely written, has no settled orthography, and does not match the shape of typed queries. Modern Standard Arabic covers the need of an Arabic-speaking reader.

Does a .ma domain improve AI visibility?

It helps an engine place your market, like any geographic signal, but it is not decisive. A Moroccan .com with a clear address, a +212 phone number and a consistent business listing is better located than a .ma with none of those.

How long until I see an effect?

Technical corrections — readability, markup, links — take effect as soon as pages are re-fetched, often within days. External corroboration builds over months. Any promise of results in two weeks concerns something nobody controls.

One URL is enough. The audit returns the score, the twelve checks and the detail of every failure. The first file generation is on us.

Audit my site for free

Back to the blog

Free audit

See what AI actually reads about you.

One URL is enough. The audit returns the score, the twelve checks and the detail of every failure. The first file generation is on us.

Custom project or enterprise

By phone

REPLY WITHIN 48H · ENGLISH & FRENCH

© 2026 Indexonic. All rights reserved.

Legal notice The Web Master — Marrakech