Construction company website in Morocco: what wins projects and tenders
Project references with photos, qualification and classification, ICE and trade register, one page per trade and per city, Google Business Profile, WhatsApp: what public buyers and developers check before they call, and how your site should show it.

Construction contracts in Morocco are won on a tender file, a site visit and a call to a previous client. But almost every one of those processes now starts with a search: your company name typed into Google by a public buyer who has just opened the bids, by a developer looking for a structural works contractor in Tangier, or by an architect who needs a reliable waterproofing firm in Casablanca.
What they find at that moment matters. An empty site or stock photos raise doubts before the first meeting. A site that shows your projects, your resources and your legal identity sets the meeting up.
This guide explains, page by page, what the website of a building or civil works company in Morocco should show to win private clients and public tenders. It is written for Moroccan contractors, and for foreign-owned firms and investors who need to understand how buyers here check a contractor. It relies on the official texts that govern the sector (qualification and classification, public procurement, the general conditions for works contracts) and on Google’s rules for local search.
What clients check before they call a construction company
A construction company has several kinds of client, and each one looks for something different. Your site has to answer all of them without making anyone dig.
| Who is looking | What they want to check | The page that answers |
|---|---|---|
| Public buyer (municipality, public body, ministry) | Qualification and classification, comparable references, a legal identity that matches the tender file | Qualifications, References, Company |
| Property developer | Projects of the same type and size, deadlines met, capacity to keep up | References by trade, Resources and team |
| Architect or engineering firm | Workmanship, trades covered, a technical contact | Trade pages, project sheets, technical contact |
| Private company (factory, hotel, warehouse) | Similar references, insurance, responsiveness | Trade pages, Insurance, Quote |
| Individual building a home | Real photos, reviews, proximity, a quick reply | Google profile, gallery, WhatsApp button |
What every row has in common is proof. A construction client is trying to reduce a risk. So your site must show verifiable facts: dated, located projects, official documents, client names when they allow it. Slogans such as “market leader” or “unrivalled quality” reduce no risk at all.
Project references: the page that wins contracts
If you only build one page properly, make it this one. Its structure is already written in Moroccan regulations.
Article 28 of decree no. 2-22-431 of 8 March 2023 on public procurement describes how a bidder proves its experience: a note on its human and technical resources giving “the place, date, nature and importance of the services” it has carried out, plus certificates issued by project owners, “whether public or private”. The text adds: “Each certificate notably specifies the nature of the work, the amount and the year in which it was carried out, the name and position of the signatory and his assessment.”
The qualification and classification system asks for the same thing. Decree no. 2-94-223 of 16 June 1994 requires the company’s technical references, specifying the nature and amount of the works, their place and date, and the names of the project owners and of the professionals who supervised them.
So the administration has already defined what a credible reference looks like. Follow the same model: a buyer reading your project sheets finds the structure they are used to checking.
The standard project sheet
- A clear title: “12-unit five-storey residential building, structural works”, not “Tangier project”.
- Type of work and package carried out: what you did yourself and what was subcontracted. For qualification purposes, the 1994 decree only counts works the company carried out with its own staff and equipment, without a subcontractor.
- Location: the city, and the neighbourhood if the client agrees.
- Year and duration: start date, handover date, contractual deadline if you met it.
- Amount: exact, as a range (“between 5 and 10 million dirhams excl. VAT”), or left out if the client refuses. A range tells the reader your size.
- Client: their name with written consent, or their category (“private developer”, “public body”).
- Team and equipment: site manager, peak headcount, main plant.
- Photos: before, during and after, taken by you.
- Reference certificate: “available on request” if you have one; don’t publish the signed document without the signatory’s consent.
Here is a fictional example of a well-filled sheet:
| Field | What the page shows |
|---|---|
| Project | 12-unit residential building, ground plus four floors with basement, Tangier |
| Package | Structural works and roof-terrace waterproofing, carried out in-house |
| Client | Private property developer (named with consent) |
| Package value | Between 5 and 10 million dirhams excl. VAT |
| Period | March 2025 to February 2026: 11 months against a 12-month contract |
| Resources | 1 works manager, 2 site supervisors, 30 workers at peak, 1 tower crane, 1 batching plant |
| Photos | 14 dated photos: earthworks, foundations, frame, top slab, waterproofing |
| Document | Client’s reference certificate available on request |
Ten sheets at this level beat fifty uncaptioned photos. The References page shows them in a grid you can filter by trade and city, and each sheet has its own URL: that is the link you send on WhatsApp to the developer who asks, “have you done a five-storey building before?”
Site photos that actually prove something
In construction, a photo is evidence. It should show your work, not a mood.
- Your own photos, never stock images. A professional spots a stock photo of a crane instantly.
- Before, during and after, from the same angle: the simplest proof the project is yours.
- The hidden stages: reinforcement before pouring, networks before backfill, waterproofing before protection. Architects look at these first, because nobody can see them once the job is finished.
- A tidy site and properly equipped workers: helmets, high-visibility vests, safety boots, guardrails. One photo of a worker in sandals on scaffolding is enough to lose an industrial client.
- Consent: from the client before publishing their villa or factory, and from anyone recognisable in the picture.
- Useful captions: “Pouring the second-floor slab, Rabat, June 2026” says more than a paragraph of marketing.
On the technical side, a phone photo often weighs several megabytes. Uploaded as is, it makes the site slow on 4G, which is how your clients read it. Photos need resizing, compression (WebP format) and alt text that describes what is shown.
Qualification and classification: what it is and how to show it
What the texts say
The qualification and classification system for building and public works companies was created by decree no. 2-94-223 of 16 June 1994 (Official Bulletin no. 4262). In short:
- Qualification relates to an activity: a company is qualified when the committee finds, on the basis of its references, that its work matches the definition of that activity (article 2).
- Classification places qualified companies in categories according to their production resources, the volume of work they can handle and their technical performance (article 3).
- The certificate is issued by the minister in charge of public works and states the activities for which the company is qualified and its category (article 10). Newly created companies receive a provisional certificate.
- The application file includes a trade register extract, a CNSS (social security) certificate, a tax certificate showing turnover over the last three years, technical references, an equipment list and a list of supervisory staff (article 9).
- For State contracts awarded by the ministry, only qualified and classified companies may bid, and a certified copy of the certificate replaces the technical file (article 14). Decree no. 2-00-967 of 19 September 2001 set the certificate’s validity at three years and excluded contracts below thresholds set by ministerial order.
- Other ministries can apply the system by ministerial order (article 17), with their own sectors, as the housing department does.
The public procurement decree links the two: where a qualification and classification system applies to a contract, the certificate replaces the resources note and the reference certificates (article 28). For a classified company, the certificate is the centrepiece of the technical file.
A worked example: the housing department
Categories and thresholds are set by ministerial order, ministry by ministry. For the housing department, order no. 620-16 of 9 March 2016 (in French) sets six categories, based on annual turnover and supervisory staff. For the “structural works” (gros œuvres) sector:
| Category | Annual turnover | Maximum annual contract value |
|---|---|---|
| 1 | under 2 million DH | 1.02 million DH |
| 2 | 2 to 5 million DH | 2.55 million DH |
| 3 | 5 to 10 million DH | 5.1 million DH |
| 4 | 10 to 25 million DH | 12.75 million DH |
| 5 | 25 to 50 million DH | 25.5 million DH |
| 6 | over 50 million DH | unlimited |
A class tells a buyer, in one number, what size of contract you can take on. A private client has no idea what “class 3” means. Your site should show it for the first and explain it in one sentence for the second.
How to show it on your site
- Copy the certificate word for word: issuing ministry, sectors, qualification numbers and titles, class, issue date and expiry date.
- One plain-language sentence for private clients: “We are classified in category 3 for structural works: we can deliver building contracts worth several million dirhams.”
- Update it at every renewal: an expired certificate is the first thing a public buyer notices.
- The certificate itself: on request rather than as a free download.
- If you are not classified, avoid vague wording: say what you are and put your projects forward. Private contracts don’t require classification.
One absolute rule: never display a qualification or class you don’t hold. In case of fraud or falsification, the 1994 decree provides for withdrawal of the certificate, for six months to two years or permanently (article 13). The public procurement decree provides for the exclusion of a bidder who submits an inaccurate declaration or falsified documents (article 152), and those decisions, like certificate withdrawals, are published on the public procurement portal (article 134). A website is a public document; it commits your company.
ICE, trade register, insurance: the legal details people look for
A developer about to hand you a package worth several million dirhams wants to know who they are dealing with. A “Company” page answers in ten seconds.
Company identity
- Exact registered name and legal form (SARL, SA…), share capital, registered office. Exactly as on your quotes and tender files.
- Trade register (RC) number and the court city. Morocco’s central trade register is kept by OMPIC, and is meant to inform third parties: according to OMPIC, anyone may request the information. A client can check your number.
- ICE (Identifiant Commun de l’Entreprise, the common company identifier): a 15-character number that sits alongside the tax ID, trade register number and CNSS number without replacing them, according to the official ICE leaflet (in French). The General Tax Code requires it on invoices, as a January 2016 circular from the tax administration (DGI) points out. Shown on your site too, it proves the site, the quote and the invoice all refer to the same company.
- Directors and a reachable technical manager, with their roles.
Insurance
On public works contracts, insurance is not optional. The general administrative conditions for works contracts (CCAG-Travaux, decree no. 2-14-394 of 13 May 2016, in French) require the contractor, before any work starts, to provide insurance certificates covering in particular site vehicles and plant, workplace accidents and civil liability (article 25). Where the special conditions require it, the contractor must also provide a ten-year (decennial) liability policy, as defined in article 769 of the Moroccan Code of Obligations and Contracts.
On your site, one line per policy you actually hold is enough, with “certificate available on request”. And never write “ten-year guarantee” in large letters if you don’t hold the policy.
How public buyers and developers check a contractor online
Your site is not the only thing people look at. Everything they find about you has to tell the same story.
The public procurement portal
The Moroccan public procurement portal, run by the Treasury (Trésorerie Générale du Royaume), is the shared platform for public buyers and suppliers. It does not only list tenders. Article 134 of the procurement decree lists what must be published there, including extracts from the minutes of bid evaluation sessions, tender results, contract completion reports, exclusion decisions and decisions withdrawing companies’ qualification and classification certificates. The minutes extract, for instance, goes online within twenty-four hours of the end of the committee’s work (article 46).
In practice, anyone can see which contracts you have won. Your project sheets must match the portal: same company name, same titles, same years. And a public contract you won and delivered makes an excellent project sheet, since the client and the subject are already public.
The same decree requires every public buyer to reserve 30% of the estimated value of the contracts it plans to award each year for very small, small and medium-sized enterprises, cooperatives and self-employed entrepreneurs established in Morocco (article 148). For a small contractor, that is a real way in, provided you look credible when the buyer searches for your name.
What a developer or architect does
There is no official procedure for private clients, but the path is nearly always the same:
- They type your company name into Google: your site, your Google Business Profile, your reviews.
- They look for a reference comparable to their project, in their city or a nearby one.
- They call a previous client, or ask to visit a site in progress.
- They check your legal identity, sometimes with a trade register certificate, before signing.
A well-built site shortens every step: the reference is one click away, a visit can be offered on the sheet of an ongoing project, and the legal identity is on display. To appear in local results, see our guide to local SEO on Google in Morocco.
One page per trade
A company that does structural works, waterproofing and roads and utilities should not put everything on a single “Our services” page. Each trade deserves its own page, for two reasons.
The client first: a developer looking for a waterproofing contractor wants to see roof terraces, not roads. Google second: a page about one trade, with its projects and vocabulary, can rank for “waterproofing company Casablanca”; a catch-all page ranks for nothing. The method is explained on our SEO page.
To choose your pages, start from how the administration splits the trade. The original table attached to the 1994 decree, amended since by ministerial order, groups activities into sectors: roads and earthworks; sanitation, pipes and channels; construction; joinery, metalwork and framing; plumbing and air conditioning; electrical works; painting and glazing; waterproofing and insulation; floor and wall coverings; plastering and false ceilings; lifts and hoists. Your clients think in the same categories.
What a trade page contains
- What you do, in concrete terms: “industrial slabs, shear walls and columns, hollow-block floors”, not “all construction work”.
- What you don’t do, or subcontract. That reassures; it doesn’t put people off.
- Your qualifications for that trade, if any.
- Three to six project sheets for that trade, with photos.
- Dedicated resources: equipment, specialist team.
- The cities you cover for that trade, linking to each city page.
- A call to action: quote request by WhatsApp or form.
Only create a trade page if you have real references to put on it. Six solid pages beat fifteen empty ones.
One page per city you serve, without doorway pages
Clients search for “construction company in Rabat” or “building contractor Marrakech”. A page for each city where you work helps you appear for those searches. It is also where many sites get penalised.
Google says so in its spam policies: one of its examples of doorway abuse is “having multiple domain names or pages targeted at specific regions or cities that funnel users to one page”. Copying the same page and swapping “Casablanca” for “Tangier”, then for “Agadir”, is exactly that.
A useful city page contains what is true in that city, and only there:
- The projects you have completed or are running there, with their sheets.
- Your local presence: office, yard, local team, or the distance from your base.
- The neighbourhoods or nearby municipalities you cover.
- A contact, and how quickly you can come for a site visit.
The simple rule: no project in a city, no page for that city. Four strong city pages, say Casablanca, Rabat, Tangier and Marrakech, beat a list of thirty empty ones.
A Google Business Profile for a company that works on clients’ sites
A construction company doesn’t receive clients in a shop: it goes to their site. Google has a rule for this, the one for service-area businesses.
According to Google Business Profile Help, if you don’t serve customers at your business address, you should remove the address from your profile and set service areas instead: you can add up to 20, and Google recommends keeping the overall area within about two hours’ drive. If you have an office where you genuinely receive clients, you can keep the address and add areas.
- Primary category: the one that describes your main trade, then secondary categories for the others.
- Areas: the cities of your city pages, consistent with the site.
- Photos: the same projects as on the site, updated at each stage.
- Reviews: ask for them at handover and reply to every one, criticism included.
- Website link: your home page, or the city page if the profile is for a local branch.
On the site itself, schema.org offers a dedicated type, GeneralContractor, derived from LocalBusiness: declared with your company name, areas and contact details, it helps search engines understand who you are.
WhatsApp and the quote request form
In what we see with our clients, a quote request for building work very often starts with a WhatsApp message carrying a photo, a plan or a voice note. Your site should accept that as it is, and give you enough to reply without ten rounds of questions.
The WhatsApp button
A button on every page that opens the chat with a message already written for that page: “Hello, I’d like a quote for waterproofing work in Casablanca.” The client adds photos or plans; you know straight away which trade and which city it is about.
The quote form
For more structured requests, a short form:
- Type of work (a list of your trades).
- City and neighbourhood of the site.
- Approximate area or quantity.
- Preferred start date.
- Plans or building permit available: yes, no, in progress.
- Type of client: individual, company, developer, public body.
- Phone number, with a stated call-back time.
The form collects personal data, so Morocco’s law 09-08, overseen by the CNDP, applies; hence a clear privacy policy.
A contact for buyers
Set up an email address on your own domain (tenders@your-company.ma, for example) and a named contact for public buyers and engineering firms: a free webmail address on a tender file does not look serious. Check whether your name is free on our domain name page.
Example: the structure of a 27-page construction website
This is the plan we suggest to a contractor working in several trades and cities. Remove what doesn’t apply to you, and don’t pad anything.
| Pages | Content | For whom |
|---|---|---|
| Home (1) | Trades, cities, 3 recent projects, verifiable figures, quote button | Everyone |
| Company (1) | History, directors, registered name, RC, ICE, registered office | Developers, buyers |
| Qualifications and insurance (1) | Certificate copied out, class explained, policies held | Public buyers |
| Resources and team (1) | Supervisory staff, headcount, equipment, yard | Developers, engineering firms |
| References (1 + 6 sheets) | Grid filterable by trade and city, one sheet per project | Everyone |
| Trades (5) | For example structural works, earthworks and utilities, waterproofing, aluminium joinery, plumbing and air conditioning | Clients looking for a specific trade |
| Cities (4) | One page per city where you have projects | Local search |
| Quote request (1) | Form, WhatsApp, call-back time | Everyone |
| Careers (1) | Open positions, contact | Candidates |
| Site journal (1) | One article a month: a project, a technique, a stage | Google, clients |
| FAQ, contact, legal notice, privacy (4) | Recurring questions, contact details, legal information | Everyone |
On the home page, prefer figures that can be checked (“40 projects delivered since 2015”, “class 3 in structural works”) over superlatives. If you also work with foreign investors, Arabic-speaking clients or local authorities, a second language on the key pages widens your reach; see our multilingual website page.
Mistakes we see on construction company websites
- Stock photos instead of real projects: the most common mistake, and the most damaging to trust.
- References with no date, place or amount: “Villa in Marrakech”, “Building in Casablanca”. Impossible to check, so useless.
- A class shown without the rest of the certificate, or a certificate that expired two years ago.
- No legal details: no registered name, no RC, no ICE. The client wonders who they will be paying the advance to.
- All trades on one page, or thirty identical city pages.
- A PDF brochure as the only content: unreadable on a phone and invisible to Google.
- Pages weighing 15 MB because of uncompressed photos, which won’t open on a building site over 4G.
- A domain name registered in the provider’s name, which you can’t take back the day you switch provider.
The pre-launch checklist
Run through this list before going live, then once a quarter.
- Registered name, legal form, office, RC and ICE displayed, identical to your quotes.
- Qualifications and class copied from the certificate, with the expiry date; or nothing, if you are not classified.
- Insurance listed policy by policy, only those you hold.
- At least six complete project sheets: type of work, package, place, year, amount or range, client or category, photos.
- Written consent from clients whose name or project is published.
- One page per trade you practise, with its own projects.
- One page per city where you have really worked, with its own content.
- Your own photos, compressed and captioned, with properly equipped workers.
- A WhatsApp button on every page, with a message suited to the page.
- A short quote form with a stated call-back time.
- An email address on your own domain.
- An up-to-date Google Business Profile: service areas, categories, photos, link to the site.
- Legal notice and privacy policy.
- A site that loads fast on a phone, tested over 4G from a building site.
- A domain name registered in your company’s name.
What this website costs, and how long it takes
In Morocco, a business website costs from about 5,000 DH with a freelancer and 15,000 to 45,000 DH with a traditional agency, for the build alone; hosting, maintenance and updates come on top. The full three-year breakdown is in our article on website costs in Morocco.
Our All-Inclusive Pack is designed for this kind of site. It costs 399 DH a month including VAT, with a 12-month commitment and then month to month, or 4,550 DH a year including VAT, which is 238 DH less than twelve monthly payments. There is no set-up fee: the first month is paid when you order, by bank transfer, and our bank details are sent with the order confirmation within 24 hours.
It includes a business website of up to 30 pages, enough for the structure above; a custom, mobile-first design; the form and WhatsApp button; SEO on every page; a second language (French and English, or French and Arabic); your Google Business Profile; legal pages; the domain name, hosting and maintenance with SSL, backups and small changes, such as updating your class after a renewal. And one blog article is written for you every month.
The site goes live 5 working days after your complete brief, meaning your texts, your project photos and your legal details. You approve every page before launch. For scale: for a company in category 3 in the housing example, whose contracts can reach 5.1 million DH, 4,550 DH a year is less than 0.1% of a single contract at that ceiling.
It is not the right choice if you need a secure client area for sharing plans with project owners, online site-management software, or more than 30 pages: that calls for custom development.
We work from Marrakech for companies all over Morocco, from Casablanca to Tangier, and we reply within 24 hours on WhatsApp. To get started, the order page takes five minutes. Get your project photos and your qualification certificate ready first: they are what will make the site.
Frequently asked questions
At a minimum: a company page with the registered name, trade register number and ICE; a qualifications and insurance page; a references page with one sheet per project (type of work, package, place, year, amount, client, photos); one page per trade; one page per city where you have actually worked; a quote form and a WhatsApp button; and the legal notice. All of it fits in under 30 pages.
Yes, if you hold one: it is the first thing a public buyer looks for. Copy the certificate issued under the system created by decree no. 2-94-223 exactly: ministry, sectors, qualifications, class and expiry date. Never show a class you don’t hold: fraud can lead to withdrawal of the certificate and exclusion from public contracts.
Follow the structure of reference certificates in public procurement decree no. 2-22-431: type of work, amount, year, client. Add the location, the package you carried out yourself, the resources used, and before, during and after photos. Publish the client’s name only with their consent.
Yes, if they are identical apart from the city name: Google lists that case among its examples of doorway abuse in its spam policies. A city page must contain what is true in that city: your projects, your local presence, the areas you cover. No project in a city, no page for that city.
Only if it receives clients there. Google asks businesses that don’t serve customers at their address to remove it and set service areas instead, up to 20, and recommends keeping the area within about two hours’ drive.
Expect from about 5,000 DH for the build with a freelancer and 15,000 to 45,000 DH with a traditional agency, plus hosting and maintenance. At Bzaf Studio, the All-Inclusive Pack is 399 DH a month including VAT (or 4,550 DH a year): up to 30 pages, a second language, Google Business Profile, domain, hosting and maintenance included, live in 5 working days.