{"id":111,"date":"2026-09-22T13:16:48","date_gmt":"2026-09-22T12:16:48","guid":{"rendered":"https:\/\/arrowlancer.ma\/blog\/?p=111"},"modified":"2026-09-22T13:16:48","modified_gmt":"2026-09-22T12:16:48","slug":"website-cndp-compliance-morocco-2026","status":"publish","type":"post","link":"https:\/\/arrowlancer.ma\/blog\/en\/website-cndp-compliance-morocco-2026\/","title":{"rendered":"Legal notices, cookies and website CNDP compliance Morocco 2026"},"content":{"rendered":"<p>A Moroccan website that shows a contact form, drops a Google Analytics cookie or opens customer accounts is processing personal data. From that moment on, Law 09-08 applies \u2014 including to a five-page brochure site.<\/p>\n<p>The good news: bringing a website into line is one of the cheapest and simplest compliance jobs in your company. The bad news: it almost always happens after the fact, once the site is live, the tags are in place and the agency has moved on.<\/p>\n<p>This guide walks through what actually makes a site compliant or not: legal notices, forms, cookie banners, hosting, and CNDP filings. Most of it you can check yourself in an hour, before launch.<\/p>\n<h2>Why your site falls under Law 09-08 the day it goes live<\/h2>\n<p>Law 09-08 governs the processing of personal data in Morocco and gives oversight to the CNDP. The key word is <em>processing<\/em>: collecting, recording, storing, consulting or transmitting data that identifies a person is enough to create an obligation.<\/p>\n<p>On a website that data is everywhere: a name and email in a form, a phone number in a callback request, a delivery address in a cart, a CV on a careers page, an IP address inside your analytics. A newsletter that asks only for an email address is already a processing operation.<\/p>\n<p>Two misconceptions keep circulating. First: \u00abit is only a brochure site, we sell nothing\u00bb. A single contact form puts you in scope. Second: \u00abour host is in France, so GDPR applies instead\u00bb. If your company is established in Morocco and decides the purposes of the processing, Law 09-08 binds you. GDPR may apply <em>on top<\/em> if you target EU residents; it does not replace the Moroccan text.<\/p>\n<p>One practical consequence: the obligations start at launch, not at the first sale. That is why these items belong in the project scope, alongside design and SEO.<\/p>\n<h2>Mandatory legal notices: what your site must show in 2026<\/h2>\n<p>The disclosure duties do not come from one single law. Law 09-08 requires you to inform the person whose data you collect. Law 31-08 on consumer protection adds obligations for distance selling. Law 53-05 covers electronic exchange of legal data and electronic signatures. A serious site covers all three instead of copying a French template found online.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/arrowlancer-prod.firebasestorage.app\/blog-ma\/conformite-cndp-site-web-maroc-2026\/1.jpg\" alt=\"Legal notices, cookies and website CNDP compliance Morocco 2026\" loading=\"lazy\" \/><\/p>\n<p>In practice, a usable \u00abLegal notices\u00bb page contains:<\/p>\n<ul>\n<li>the <strong>exact registered company name<\/strong> and legal form (SARL, SA, sole trader\u2026);<\/li>\n<li>the <strong>Moroccan registered address<\/strong>, plus an email and phone number someone actually monitors;<\/li>\n<li>the <strong>commercial register (RC) number<\/strong> and the registering court, the ICE, and where relevant the tax ID and patente number;<\/li>\n<li>the name of the <strong>person responsible for publication<\/strong>;<\/li>\n<li>the identity and contact details of the <strong>hosting provider<\/strong>;<\/li>\n<li>for regulated activities (health, insurance, legal advice, training), a reference to the licence or professional body.<\/li>\n<\/ul>\n<p>A separate \u00abPrivacy policy\u00bb page is the first thing the CNDP will look at. In plain language it must state who the data controller is, what data you collect, for what purpose, how long you keep it, who else receives it (email platform, CRM, courier, payment provider), whether it leaves Morocco, and how to exercise rights of access, rectification and objection. That last part needs a concrete channel \u2014 a dedicated email address or form, not a generic sentence.<\/p>\n<p>On an online store, add the distance-selling information: prices including tax, shipping costs and lead times, payment methods, return conditions and the withdrawal period set by Law 31-08, and after-sales support. Check the exact period that applies to your activity in the current text rather than reusing a figure you heard somewhere.<\/p>\n<h2>Contact and lead forms: consent, purpose, retention<\/h2>\n<p>This is where most Moroccan sites fall short. A compliant form rests on three things.<\/p>\n<p><strong>A purpose stated before submission.<\/strong> One line under the form is enough: \u00abThis information is used only to answer your request and is not shared with third parties.\u00bb If you intend to add the contact to a prospecting list, say so \u2014 and make it a separate checkbox.<\/p>\n<p><strong>Separate consent for marketing.<\/strong> A pre-ticked box is not consent. Nor is a single box that mixes \u00abI agree to be contacted\u00bb with \u00abI agree to receive the newsletter\u00bb. Use two unticked boxes with clear wording. Every commercial email must carry an unsubscribe link that genuinely works.<\/p>\n<p><strong>Minimisation and retention.<\/strong> Do not ask for a date of birth, an ID card number or a revenue figure if you do not need it to answer. Then set a written retention period \u2014 for example 24 or 36 months after the last contact for an unconverted lead \u2014 and actually enforce it. A CRM holding every form submission since 2017 is a liability, not an asset.<\/p>\n<p>Two technical details missed in nine projects out of ten: the form must be served over HTTPS, otherwise data travels in clear text, and notifications should not land in a personal Gmail inbox shared by three people.<\/p>\n<h2>Cookies and tracking tools: what the CNDP expects<\/h2>\n<p>The CNDP treats cookies and trackers as data processing as soon as they allow a visitor to be identified or followed. The expected logic is simple: cookies strictly necessary to run the site (session, cart, security, language preference) need no prior agreement; detailed analytics, advertising and social cookies do.<\/p>\n<p>A correct banner:<\/p>\n<ul>\n<li>appears <strong>before<\/strong> non-essential cookies are set \u2014 not while Google Analytics, Meta Pixel or TikTok Pixel are already loading in the background;<\/li>\n<li>offers a real choice: \u00abAccept\u00bb and \u00abReject\u00bb with equal prominence, plus access to per-category detail;<\/li>\n<li>records the decision and <strong>honours it<\/strong>: rejecting must actually stop the tags from loading;<\/li>\n<li>lets visitors change their mind later, through a discreet footer link;<\/li>\n<li>keeps proof of the choice (date, banner version, categories accepted).<\/li>\n<\/ul>\n<p>A five-minute test you can run yourself: open your site in a private window, reject cookies, then open the browser developer tools and look at the cookies and network tabs. If calls to advertising or analytics domains still fire, your banner is decoration. That describes the large majority of banners installed as a plugin and never configured.<\/p>\n<h2>Where the site data lives: Morocco, the EU, or elsewhere<\/h2>\n<p>Law 09-08 does not force you to host in Morocco, but it does regulate transfers of personal data abroad. The principle: a transfer to a country recognised as offering an adequate level of protection fits within the declaration regime; a transfer to a country that is not requires CNDP authorisation or another specific basis. The CNDP publishes the relevant list \u2014 check the current version on its site before you pick a hosting region.<\/p>\n<p>Translated into project decisions:<\/p>\n<ul>\n<li><strong>Hosting in Morocco<\/strong> (local providers, sovereign cloud): the easiest case to document, and often expected for sensitive data or public tenders. If you are weighing providers, our <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/morocco-sovereign-cloud-comparison-2026\/\">Morocco sovereign cloud comparison<\/a> lays out the real options.<\/li>\n<li><strong>Hosting in the EU<\/strong>: very common and generally documentable, provided you name the country and the provider in your privacy policy.<\/li>\n<li><strong>Outside Morocco and outside an adequate jurisdiction<\/strong>: possible, but this is where the extra formality applies. And remember that transfers are not only about site hosting: your US CRM, email tool, chatbot, CDN and video-call platform are transfers too.<\/li>\n<\/ul>\n<p>The useful deliverable is not a debate about sovereignty. It is a simple table \u2014 even in a plain document \u2014 listing every tool on the site, the data flowing through it, the storage country and the contract covering it. You will need it the day an enterprise client or an auditor asks.<\/p>\n<h2>CNDP declaration or authorisation: which one for a website?<\/h2>\n<p>Law 09-08 works through two regimes. <strong>Prior declaration<\/strong> covers ordinary processing: commercial contacts, newsletters, customer accounts in an online shop, job applications received through the site. <strong>Prior authorisation<\/strong> covers more sensitive cases: health data, data revealing beliefs or origins, biometric data, national ID numbers used as identifiers, cross-linking files with different purposes, and certain transfers outside Morocco.<\/p>\n<p>In practice, a brochure site with a contact form and a standard online store fall under declaration. A teleconsultation platform, a site that collects ID card scans, or an HR portal centralising medical files move to the authorisation side \u2014 and that changes the project timeline, because such a request is examined, not settled the day before launch.<\/p>\n<p>Filings go to the CNDP, which provides forms and an online service. Plan to name an internal owner for the file, describe each processing operation separately (contacts, newsletter, customers, recruitment), and keep the receipt. Failing to file exposes the company to penalties set by the law, financial and in some cases criminal; the exact amounts are in the text, so check them on the CNDP website rather than on a blog. Our <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/morocco-cndp-law-09-08-compliance-checklist-2026\/\">Morocco CNDP Law 09-08 compliance checklist<\/a> covers the scope beyond the website itself.<\/p>\n<h2>The website CNDP compliance checklist to clear before you go live<\/h2>\n<p>Go through this with your provider, before final acceptance:<\/p>\n<ol>\n<li>HTTPS active on every page, including forms and the admin area.<\/li>\n<li>Complete \u00abLegal notices\u00bb page: company name, address, RC, ICE, publication manager, host.<\/li>\n<li>\u00abPrivacy policy\u00bb page up to date, dated, reachable from every page.<\/li>\n<li>Every form states its purpose and asks only for necessary fields.<\/li>\n<li>Separate marketing consent, unticked by default, with a working unsubscribe link.<\/li>\n<li>Written retention periods for leads, customer accounts and applications.<\/li>\n<li>A cookie banner that genuinely blocks tags before agreement, with reject as prominent as accept.<\/li>\n<li>An inventory of third-party tools (analytics, pixels, CRM, email, payments, chat) with hosting countries.<\/li>\n<li>A channel for access, rectification and objection requests, with a person who answers.<\/li>\n<li>CNDP filing status: declaration submitted, or authorisation in progress for sensitive cases.<\/li>\n<li>Named admin accounts, individual passwords, tested backups.<\/li>\n<li>Processing and confidentiality clauses in your agency and hosting contracts.<\/li>\n<\/ol>\n<p>Twelve lines. On a new build, handling them costs a few days of attention. On a live site it usually means reopening code, tags and contracts \u2014 which is why they belong in the specification from day one, next to the budget described in our <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/morocco-website-development-pricing-2026\/\">guide to professional website pricing in Morocco<\/a>.<\/p>\n<h2>What you can check yourself, and what needs help<\/h2>\n<p>You can do this alone, with no budget: read your legal notices and confirm the numbers match your actual situation; test the cookie banner in a private window; submit one of your own forms and see where the email lands; ask your provider for the list of third-party scripts loaded; open your CRM and see how old the oldest dormant contacts are. That round alone removes half the visible gaps.<\/p>\n<p>Outside help earns its cost in three places: writing documents that describe your real processing rather than a generic template; reconfiguring the tracking layer so a rejection is actually honoured, which means touching the tag manager and sometimes the theme; and sensitive cases \u2014 health, biometrics, HR, transfers outside adequate jurisdictions \u2014 where classifying the right regime has real consequences.<\/p>\n<p>Typical Morocco ranges in 2026: MAD 3,000\u20138,000 to write the legal pages and privacy policy of a brochure site; MAD 5,000\u201315,000 for a consent banner genuinely wired to your tags; MAD 12,000\u201330,000 for a full compliance audit of an e-commerce site including a data-flow inventory; MAD 5,000\u201315,000 to prepare a declaration file. Those figures stay marginal next to rebuilding the collection layer after launch, especially on an online store \u2014 a topic we also cover in our <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/ecommerce-platform-morocco-2026-shopify-woocommerce-custom\/\">guide to choosing an ecommerce platform in Morocco<\/a>. No provider can promise you immunity; what you build is a defensible, current file.<\/p>\n<h2>What now?<\/h2>\n<p>Arrowlancer builds <a href=\"https:\/\/arrowlancer.ma\/en\/#services\">websites and web applications<\/a> \u2014 brochure sites, ecommerce, custom business apps \u2014 with these points written into the specification and verified at acceptance, not bolted on after launch. If you are preparing a launch or a redesign, we can also review an existing site and tell you what to fix first.<\/p>\n<p>Describe your project through the <a href=\"https:\/\/arrowlancer.ma\/en\/#contact\">contact form<\/a> and we will come back with an initial assessment and a costed scope.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Legal notices, contact forms, cookie banners, hosting: what makes a Moroccan website compliant with Law 09-08, plus the checklist before you go live.<\/p>\n","protected":false},"author":0,"featured_media":112,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[63,273,370,279,373,376],"class_list":["post-111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech_et_development","tag-cndp-en","tag-compliance-en","tag-cookies-en","tag-law-09-08-en","tag-legal-notices-en","tag-website-en"],"_links":{"self":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/comments?post=111"}],"version-history":[{"count":1,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/111\/revisions"}],"predecessor-version":[{"id":114,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/111\/revisions\/114"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media?parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/categories?post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/tags?post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}