Website quote in Morocco: what a web design quote must contain, line by line
Collecting quotes to have your business website built? The brief to send so the quotes are comparable, the 16 lines to check, 20% VAT, the domain and ownership clauses, and a grid to compare three quotes, with a worked example in dirhams.

You asked three providers for a website quote and got back three documents that look nothing alike: a WhatsApp message with a round number, a one-page PDF promising a “complete showcase website”, and an eight-page proposal priced excluding VAT, with options. The totals range from one to three times each other. Which one is expensive? You cannot tell until you know what each one contains.
This guide is for business owners and managers, including foreign investors and expats running a company in Morocco, who are collecting quotes to have a website built and want to choose with their eyes open. It covers the brief to send so the quotes are comparable, the sixteen lines a serious quote must contain, the VAT arithmetic, the vague wording to have rewritten, a grid to compare three quotes and a worked example in dirhams. What a website costs over three years, item by item, is in our guide to website costs in Morocco; how freelancers, agencies and online builders compare is in our freelancer versus agency guide. Here, we read the quote itself.
A practical note if you do not read French: most Moroccan quotes are written in French. You will see devis (quote), HT (excluding VAT), TVA (VAT), TTC (including VAT), acompte (deposit), solde (balance), recette (acceptance testing) and RIB (bank details). We are an agency, Bzaf Studio, and we sell websites. How we answer a quote request is set out at the end, with its limits. Everything before that applies to every provider, us included.
Before you ask for a quote: the brief that makes the answers comparable
Half of the price gap between quotes comes from the request, not the providers. “How much for a website?” gets three answers to three different questions: one prices five pages, another fifteen, the third adds an Arabic version you never asked for. A precise message, sent word for word to each provider, solves most of the problem.
Here is what it should contain. It takes twenty minutes to write.
- Your business and your customers: what you sell, to whom, in which cities. A logistics company in Tangier working with European importers does not need the same site as a physiotherapy practice in Fez.
- The goal of the site: quote requests, calls, WhatsApp messages, job applications. One main goal, in writing.
- The list of pages: home, one page per service, about, references, contact, FAQ, blog. Even a rough list fixes the scope.
- The languages: French only, French and Arabic, French and English. Every page, or just the home page.
- What you already have: a logo, photos, copy, a domain name, an old website, a Google Business profile.
- What you expect after launch: who updates the site, who hosts it, who answers when something breaks.
- Your target date, and who will sign off on your side.
A template you can copy:
“Hello, we are [company name], [activity] in [city]. We would like a showcase website of about [number] pages ([list]), in [languages], to generate quote requests. We already have [logo / photos / copy / a domain: name]. Please send us an itemised quote, excluding and including VAT, that states: who writes the copy, the design approach, the domain and whose name it will be registered in, hosting, maintenance and their prices in later years, the timeline and when it starts, the number of revision rounds, ownership of the site and handover of logins, and the payment schedule. We would appreciate your reply by [date].”
Send it to three providers, not ten. Beyond three, you spend more time comparing than deciding. And if a provider replies with a price and no detail, simply send the list back: the way they react already tells you how they work.
Website quote in Morocco: the 16 lines to check
There is no required format for a quote. But a serious website quote answers these sixteen questions. Go through them in order with a highlighter: clear line, vague line, missing line. That reading, not the total, is what lets you compare.
1. The header: who is committing, and until when
The quote must identify the provider: name or company name, address, phone number, tax identifiers. Think ahead to the invoice. Since the 2016 Finance Act, Article 145 of the General Tax Code requires taxpayers to show their common business identifier (ICE) on the invoices they issue, as the tax administration (DGI) restated in a circular. A provider who cannot give you an ICE cannot give you a compliant invoice, and your accountant will notice.
Check the date of the quote and how long it is valid, often thirty days. A quote with no validity date leaves the provider free to change the price on the day you sign.
2. Pages: a number, and a list
“Showcase website” says nothing. The quote should state a number of pages and, ideally, list them: home, five service pages, about, references, contact, legal notice. It should also give the price of an extra page. That is where budgets slip: you add a page per service along the way, and each one comes with its own invoice.
Watch the word “page”. For some providers a blog post or a legal page counts; for others it does not. Ask what is included in the count.
3. Design: custom, or an adapted theme
Two practices coexist. Custom design starts from a blank page and your business. A purchased theme is a template sold thousands of times, which the provider adapts to your colours. Both can work; what does not work is paying for one while believing you are getting the other.
The quote should say which approach is used, how many mock-up proposals you will see before choosing, and whether the theme or paid plugins carry a licence to renew every year. An annual licence left out of the quote shows up at the first renewal, or lapses, and security updates lapse with it.
4. Copy and photos: who provides what
This is the line most often missing, and the one that delays most projects. If the quote is silent, you are writing the copy. Writing ten service pages, with the right words for Google, takes a manager days.
The quote should settle it: who writes, how many pages of copy, in which languages, how many rounds of review. For photos: yours, a licensed stock library, or a photographer, with a price. One useful point: Moroccan copyright law (Law 2-00) protects written works and photographic works. A photo found online is not free to use just because it is visible. Ask the quote to confirm that any images supplied by the provider can be used on your site.
5. Languages: every page, or the home page
“Bilingual version” can mean the whole site translated, or a home page in two languages and everything else in French. Get it in writing: which languages, which pages, who translates, and whether each language has its own address, which lets Google show the right version to the right visitor. For Arabic, ask whether the site is built for right-to-left reading, or simply translated into a layout designed for French.
6. Features: what the site actually does
A contact form connected to your email, a WhatsApp button, a map, an FAQ, a blog, a portfolio, appointment booking, a download area. Every feature you expect should be named in the quote. “Possible” or “on request” usually means “extra”.
7. Domain name: which extension, and in whose name
Three things to require: the extension (.ma, .com, or both), the registration period and renewal price, and above all the registrant. For a .ma, the ANRT, the telecoms regulator that runs the extension, defines the registrant as the individual or legal entity that registered the name through a registrar. That must be your company, not the agency, not the freelancer, not an employee.
This is not a theoretical precaution. In its domain name observatory, the ANRT reports that most of the complaints it handles concern names registered by intermediaries in their own name rather than their clients’. The same report shows that in 2025, 93.5% of .ma names were registered for a single year: one missed renewal by a provider who has disappeared, and your address can be lost. Our domain name page covers these points in detail.
8. Hosting, SSL and backups
The quote should say where the site will be hosted, what hosting costs in year one and in later years, whether the SSL certificate (the HTTPS padlock) is included, and how the site is backed up: how often, where, how long copies are kept, and whether you can get one. “Free hosting” with no year-two price is not an offer; it is a deferred price.
9. Maintenance and changes
A website is never finished. It needs updates, monitoring, a new phone number, a new service. The quote should say whether maintenance is included, what it covers (technical updates, security, small content changes), what it costs and how quickly they respond. Without maintenance, ask for the price of a one-off change: it is the number you will deal with most often after launch.
10. SEO: what is actually done
“SEO included” means nothing until the quote lists the work: a title and description for every page, a clean heading structure, speed, mobile display, structured data, the sitemap submitted to Search Console, the Google Business profile created or linked. SEO for a showcase website starts with these basics, done during the build.
A promised result, on the other hand, is a bad sign. Google says so itself in its documentation for site owners: “No one can guarantee a #1 ranking on Google.”
11. Legal pages and the contact form
Your contact form collects names, phone numbers and email addresses: personal data under Morocco’s data protection law, Law 09-08. The law requires you to tell people, when you collect their data, who the data controller is, what the data is for, who receives it and that they have a right of access and correction (Article 5), and it subjects processing to prior declaration with the CNDP, the data protection authority, outside the cases that need an authorisation (Article 12). The data controller is your company, not your provider.
So the quote should state whether the legal notice, the privacy policy and the notice under the form are written and included, or left to you.
12. Timeline: how many days, starting when
“Delivered in three weeks” is not enough. You need to know whether these are working days or calendar days, and above all what starts the clock: signature, deposit, receipt of all your copy and photos, mock-up approval. The difference can be a month. Also ask what pauses the clock, and what happens if the provider misses the date.
Typical market timelines for a showcase site: two to four weeks with a freelancer, one to three months with a traditional agency, from a complete brief.
13. Revisions: how many rounds, on what
Every quote provides, or should provide, a number of revision rounds: on the mock-up, then on the site before launch. What we see most often: two or three rounds. “Unlimited revisions” sounds generous but defines nothing, and often ends in an argument about what counts as a revision and what counts as a new request.
Good wording separates the two: a revision changes what was delivered within the scope of the quote (a colour, a text, the order of sections); a new request adds something (a page, a feature, a language). The latter is priced separately, before it is done.
14. Ownership of the website
This is the line that matters on the day you change provider. Law 2-00 protects software, written works and photographs. It transfers economic rights to the employer when the work is created by an employee under an employment contract (Article 35). A freelancer or an agency is not your employee, and the law has no equivalent rule for a work commissioned from an outside provider.
Three articles of the same law should guide your reading. Article 41: contracts assigning economic rights are made in writing. Article 42: if the extent of the rights assigned is not specified, the assignment is limited to what was needed for the intended purpose. Article 43: handing over the original or a copy of a work does not, unless the contract says otherwise, assign any rights. In other words, receiving your site’s files is not the same as owning it.
Ask for a written clause, in the quote or the contract, stating that the delivered website, its copy, its visuals and its domain name belong to you once paid in full. It is normal for a provider to keep its own tools and generic components, reused from one client to the next, and for third-party licences to remain under their own terms: what matters is that it is written down.
15. Logins handed over
Owning it on paper still requires the keys. The quote should list the logins you will receive, and when:
- the domain name account, with you as registrant;
- the hosting, or at least a full copy of the files and database on request;
- the site’s admin panel, if a content management system is used;
- Search Console, with you as owner: according to Google’s help pages, owners have full control over the property, including adding and removing other users;
- the Google Business profile, with you as primary owner: according to Google, a profile can have several owners but only one primary owner, and a manager cannot add or remove users.
The classic trap: the Google profile or Search Console set up on the provider’s own account “to save time”. The day you part ways, they control your presence on Google.
16. Payment: schedule, VAT, commitment
The last line covers three questions. First, the schedule: how much on order, how much at which stage. The soundest rule ties each payment to a milestone you can check yourself.
| Type of deal | Usual schedule | Check before paying |
|---|---|---|
| Fixed-price build, two payments | 50% on order, 50% at launch | The complete site, visible on a test address |
| Fixed-price build, three payments | 30–40% on order, 30–40% on mock-up approval, balance at launch | The mock-up, then the complete site |
| Monthly subscription | First month on order, then monthly | Every page before launch; the commitment period |
Then the total including VAT, covered in the next section. Finally, for anything recurring (hosting, maintenance, subscription), the commitment period, the notice period and what is owed if you stop early. These three figures belong in the quote or in the terms and conditions it refers to. As for the payment method, a bank transfer to the company’s account, against an invoice, leaves a clean trail for your books.
Excluding or including VAT: 20% VAT on a website quote
In Morocco, the standard rate of value added tax is 20%, under Article 99 of the General Tax Code as worded by the 2024 Finance Act. It is the rate built into our own prices, and the one to use in your calculations unless the provider states otherwise in writing. The arithmetic:
- From excl. VAT (HT) to incl. VAT (TTC): multiply by 1.2. 18,000 DH HT × 1.2 = 21,600 DH TTC, of which 3,600 DH is VAT.
- From incl. VAT to excl. VAT: divide by 1.2. 399 DH TTC ÷ 1.2 = 332.50 DH HT, of which 66.50 DH is VAT.
- On a subscription: do the maths over a year. Maintenance at 300 DH HT a month is 3,600 DH HT, or 4,320 DH TTC a year.
For a company that recovers VAT, the gap is mostly a cash-flow question. For an organisation that does not, it is 20% more to pay, with nothing coming back. Either way, compare on the same basis.
Two situations call for a written question. A quote that says neither HT nor TTC: ask which it is, and whether VAT applies. A quote that mixes the two, for example a build price incl. VAT and maintenance excl. VAT: redo the total on a single basis before comparing. One line to add to your spreadsheet: “total first-year cost, incl. VAT”.
Vague wording, and what to have written instead
Most quotes are not dishonest; they are vague. Vagueness is not a detail: it is where extras and disputes are born. Here is the wording we read most often, and the version that protects both sides.
| You read | What it may hide | Have it written as |
|---|---|---|
| “Complete showcase website” | Five pages, or fifteen | “12 pages: home, 6 services, about, references, FAQ, contact, legal notice; extra page: X DH excl. VAT” |
| “Modern, personalised design” | A purchased theme in your logo colours | “Custom design / [name] theme adapted; 2 mock-up proposals; licences: none / X DH a year” |
| “Copy to be supplied by the client” | Weeks of work for you, and a slipping deadline | “Copy for 12 pages written by the provider from an interview, 2 review rounds” |
| “Bilingual version” | A translated home page, the rest in French | “Every page in French and English, each language on its own address” |
| “Free domain name” | A domain in the provider’s name, renewed at their price | “.ma domain registered to [your company] as registrant; renewal: X DH a year” |
| “Hosting included for 1 year” | The real price at the first renewal | “Hosting, SSL and daily backups: X DH a year from year 2” |
| “SEO optimised” | Nothing you can check | “Title and description for every page, sitemap submitted to Search Console, Google Business profile linked” |
| “Delivery within 15 days” | 15 days from a moment nobody has fixed | “15 working days from receipt of the complete brief: copy, photos, logins” |
| “Unlimited changes” | An argument about what a change is | “3 revision rounds on the mock-up and the site; any new page or feature is quoted separately” |
| “The client is granted a licence to use the site” | The site does not belong to you | “Once paid in full, the site, its content and the domain are the client’s property; logins handed over within X days” |
| “Price: 15,000 DH” | Excluding or including VAT? | “15,000 DH excl. VAT, VAT at 20%: 3,000 DH, total 18,000 DH incl. VAT” |
Sending this table to a provider is not aggressive. A professional who knows what they sell rewrites these lines in ten minutes. One who refuses to clarify them is telling you something useful about what comes next.
Red flags that should make you put the pen down
Some lines are not vague; they are a problem. Our cost guide covers the hidden costs in a website quote; here are the warning signs in the document itself.
- No full provider identity, no ICE, or “invoice on request”. You will struggle to book the expense, and to enforce your rights if there is a dispute.
- A “from” price with no scope. A quote should price your project, not a range.
- The domain, Search Console or Google profile in the provider’s name. You will not be able to leave with your own address or your presence on Google.
- A “licence to use” the site, or a clause reserving the code to the provider without saying what is yours. Under Law 2-00, what is not assigned in writing stays with the author.
- Unpriced exit fees: “file recovery on quote”, “paid domain transfer”. Ask for an amount, or better, a free handover.
- A large deposit with nothing delivered: 70% or more on order, before any mock-up, on a fixed-price build.
- A ranking promise: “guaranteed first page”, “top 3 in a month”. Google says no one can deliver that.
- A subscription with no term or exit terms: you need to know how many months you are committing to and what is owed if you stop.
A single warning sign is often fixed with one email. Three on the same quote describe a way of working.
Comparing three quotes: the grid and a worked example in dirhams
Comparing takes two steps. First, score each quote on the sixteen lines: 2 points for a clear line, 1 for a vague one, 0 for a missing one. The score out of 32 measures how precise the quote is, and so the risk of extras. Second, bring the prices to the same scope and the same period by adding what each quote leaves out. It is the second step that changes the ranking.
Take a transport and logistics company in Tangier. It wants a 12-page site in French and English, copy written for it, and hosting and maintenance for the first year. It receives three quotes. The amounts in quotes A and B are working assumptions within Moroccan market ranges; quote C is our subscription at its public price.
| Quote line | A: freelancer | B: agency | C: subscription |
|---|---|---|---|
| Headline price | 7,000 DH, VAT not mentioned | 22,000 DH excl. VAT | 399 DH incl. VAT a month, 12-month commitment |
| Pages | 8 pages | 12 pages | Up to 30 pages |
| Design | Purchased theme, adapted | Custom mock-up, 2 proposals | Custom, approved page by page |
| Copy | Supplied by the client | Copywriting: 3,500 DH excl. VAT | Written from a conversation with you |
| Languages | French only | French and English | Two languages included |
| Domain | “Free” .com, registrant not stated | .ma in the client’s name | .ma or .com in the client’s name |
| Hosting, SSL, backups | “Free for year 1” | 1,500 DH excl. VAT a year | Included |
| Maintenance | Pay as you go, price not stated | 300 DH excl. VAT a month, optional | Included, with small changes |
| Timeline | “3 weeks” | 8 weeks after mock-up approval | 5 working days from the complete brief |
| Revisions | Not stated | 3 rounds | Adjustments included until you approve |
| Ownership and logins | Nothing in writing | Assignment once paid in full, logins handed over | Ownership after the 12 monthly payments, files and logins on request |
| Payment schedule | 70% on order, 30% on delivery | 40% / 40% / 20% | First month on order, by bank transfer |
| Precision score | 11 / 32 | 27 / 32 | score it yourself |
Now bring the three quotes to the same scope: 12 pages, two languages, copy written, domain, hosting and maintenance for one year. The items added to quote A are also assumptions, to be priced by the provider.
| First year, same scope | Quote A | Quote B | Quote C |
|---|---|---|---|
| Build | 7,000 DH | 22,000 DH excl. VAT | 0 DH build fee |
| 4 missing pages (500 DH a page) | 2,000 DH | included | included |
| English version | 2,000 DH | included | included |
| Copywriting | your time | 3,500 DH excl. VAT | included |
| Domain, hosting, SSL | 0 DH in year 1 | 1,500 DH excl. VAT | included |
| Maintenance and changes | 1,200 DH pay as you go | 3,600 DH excl. VAT | included |
| First-year total | 12,200 DH with no VAT, 14,640 DH if the amounts are excl. VAT | 30,600 DH excl. VAT, i.e. 36,720 DH incl. VAT | 4,788 DH incl. VAT (12 × 399 DH), or 4,550 DH incl. VAT paid yearly |
Three takeaways. The quote that looked cheapest, A, almost doubles once completed, and its VAT line may still add 20%. Quote B is the most expensive, but it is precise: you know what you are paying for, and it leaves you as the owner. Quote C needs the least cash in year one, but it carries on afterwards: over a long period, a build paid once ends up costing less, provided you handle hosting and updates yourself. The right choice depends on your time horizon, not on the number at the bottom of page one.
For year two, ask each provider the same question: “what will I pay from month 13, and for what?”. In our example, quote A does not say, quote B states it (5,100 DH excl. VAT for hosting and maintenance), and quote C continues month to month.
Negotiating a quote without hollowing it out
Negotiating is not asking for 20% off. A provider who cuts the price without changing the scope takes something out elsewhere, and you will not know what. The levers that genuinely lower the price are different:
- Launch with fewer pages, and add more later. Eight well-written pages beat twenty empty ones.
- Supply your own photos, if they are good, or the technical copy only you can write.
- Hand over a complete brief from day one. A project waiting a month for copy costs everyone more.
- Pay maintenance or a subscription yearly, when a discount is offered.
- Phase the project: a first version in one language, the second language three months later.
Never negotiate these away, though: the domain in your name, the ownership clause, the handover of logins, backups and SSL. They are what protects your investment on the day something goes wrong.
How Bzaf Studio answers a quote request
Our answer is deliberately simple: there is no custom quote to wait for on a showcase website. We built the agency around a single offer, the All-Inclusive Pack, at the same price for everyone: 399 DH incl. VAT a month with a 12-month commitment, then month to month, or 4,550 DH incl. VAT a year, which is 238 DH less than twelve monthly payments. There is no build fee. Here is how our offer answers the sixteen lines.
| Line | Our written answer |
|---|---|
| Price and VAT | 399 DH incl. VAT a month, or 4,550 DH incl. VAT a year; our prices are shown including 20% VAT |
| Pages | Up to 30 pages, including blog, FAQ, contact and legal pages; beyond that, a per-page price given in advance |
| Design | Custom, designed for mobile first; no purchased theme or resold template |
| Copy and photos | We write your copy from a conversation about your business; a photo shoot is quoted separately |
| Languages | A second language included: French and Arabic, or French and English |
| Features | Form connected to your email, WhatsApp button, blog, FAQ, Google Business profile linked |
| Domain | .ma or .com included, renewal included, registered in your name: you are the declared registrant, we are the technical contact |
| Hosting | Hosting, SSL certificate and backups included |
| Maintenance | Updates, security and small changes included, plus one blog article written for you every month |
| SEO | Titles, descriptions, speed, structured data and Search Console on every page; no ranking guaranteed |
| Timeline | 5 working days from the complete brief: copy, visuals, information and logins |
| Revisions | You approve every page; adjustments during that phase are included, and nothing goes live without your written go-ahead |
| Ownership | Once paid in full, meaning the 12 monthly payments of the commitment, the site, its content and the domain are yours |
| Logins | Your files and logins are handed over on request |
| Payment | First month on order, by bank transfer; our bank details (RIB) come with the order confirmation, within 24 hours |
| Commitment | 12 months; if you cancel before the end, the remaining monthly payments are due under our terms and conditions |
For a business order, the invoice is made out to your company: we ask for your company name and ICE with the brief. If you order as a private individual, Law 31-08 gives you seven days to withdraw. Anything outside the scope (custom development, a photo shoot, long-form copywriting, an extra language) is quoted separately and agreed before work starts.
It is not the right choice in these cases, and we would rather say so up front:
- You want an online shop, with a basket, payments and stock. The Pack is a showcase website.
- You need custom development: a client area, a link to your management software, a business tool.
- You want to pay once and manage it yourself for five years or more: a fixed-price build from a reliable provider will cost less over time, if you take care of hosting and maintenance.
- You want no commitment at all: the Pack runs for 12 months.
We have worked from Marrakech since 2021, for businesses all over Morocco, from Tangier to Agadir, and we reply within 24 hours on WhatsApp. If you already have two quotes in hand, send us your list of pages on WhatsApp: within 24 hours we will tell you what the Pack covers, and what it does not. And if the grid has convinced you, the order page takes five minutes.
Frequently asked questions
At a minimum: the provider’s identity and ICE, a validity date, the number and list of pages, the design approach, who writes the copy, languages, features, the domain name and its registrant, hosting with SSL and backups, maintenance, SEO work, legal pages, the timeline and when it starts, the number of revision rounds, ownership of the site, the logins handed over, the payment schedule and the total including VAT.
It can be stated excluding VAT (HT), but it must let you work out the total including VAT (TTC). The standard VAT rate in Morocco is 20%, under Article 99 of the General Tax Code: 15,000 DH excl. VAT is 18,000 DH incl. VAT. Always compare quotes on the same basis, including VAT.
For a showcase website, the ranges seen in 2026 run from about 5,000 DH with a freelancer to 15,000–45,000 DH with a traditional agency, before hosting, maintenance and options. With an all-inclusive subscription like ours there is no build fee: 399 DH incl. VAT a month over 12 months, or 4,550 DH incl. VAT a year.
Only if it is in writing. Law 2-00 protects software and text as works, and requires contracts assigning rights to be in writing; receiving the files is not enough. Ask for a clause making you the owner of the site, its content and the domain once paid in full, plus a list of the logins handed over.
The most common practice is 30 to 50% on order, with the rest tied to milestones you can check: approved mock-up, site visible on a test address, launch. Be wary of a deposit of 70% or more before any mock-up.
Three is enough, as long as each provider gets the same written brief: your business, the list of pages, languages, available content, what you expect after launch and your target date. Beyond three, comparing takes more time than it saves.