cadence
Méthode et choix

Contrat avec une agence web au Maroc : 8 clauses à exiger avant de signer

9 juin 202610 min de lectureOmar Messaoudi, fondateur Cadence

Chaque semaine, des dirigeants de PME à Casablanca, Rabat ou Marrakech signent un devis d'agence web en pensant avoir conclu un contrat solide. Ce n'est presque jamais le cas. Un devis décrit ce qui sera livré, pas à qui appartient le résultat, ni ce qu'il se passe si le délai dérape de six semaines. Le droit marocain des contrats de prestation de services (Dahir des obligations et contrats, articles 723 et suivants) protège relativement peu le client si rien n'est stipulé par écrit. Dans le secteur du développement web, les litiges les plus fréquents portent sur trois points : la propriété intellectuelle du code source, les pénalités de retard inexistantes, et l'hébergement verrouillé chez l'agence. Résultat : le client change d'agence et découvre qu'il ne peut pas récupérer son propre site. Cet article n'est pas une consultation juridique. C'est un guide de terrain, rédigé depuis l'expérience de dizaines de projets au Maroc, pour vous donner les 8 clauses à exiger dans tout contrat avec une agence web. Certaines paraissent évidentes. Elles ne le sont pas si elles sont absentes du document que vous allez signer. Prenez ces clauses, soumettez-les à votre prestataire avant signature. Sa réaction vous dira autant que le contrat lui-même.

Clause 1 : Cession complète de propriété intellectuelle

C'est la clause la plus importante et la plus souvent absente. Au Maroc, la loi 2-00 relative aux droits d'auteur protège automatiquement le créateur d'une œuvre. Si votre contrat ne prévoit pas une cession explicite, l'agence reste propriétaire du code qu'elle a écrit pour vous, même après paiement intégral.

La clause doit mentionner : cession de tous les droits patrimoniaux sur le code source, les maquettes graphiques, les bases de données et la documentation technique, à titre exclusif, pour le monde entier et pour toute la durée légale de protection. Elle doit être réciproque : vous cédez vos contenus à l'agence pour la durée du projet, pas au-delà.

Attention aux formulations floues comme 'livraison des fichiers finaux' ou 'accès au code'. Accès n'est pas propriété. Exigez le mot 'cession' et demandez à ce que les livrables soient listés exhaustivement : repository Git, fichiers source des maquettes (Figma, Sketch), scripts de base de données, variables d'environnement documentées.

Clause 2 : Délai contractuel avec pénalités de retard

Un planning PowerPoint envoyé par email n'a aucune valeur contractuelle. Le délai de livraison doit figurer dans le corps du contrat, avec une date de livraison finale précise et des jalons intermédiaires datés : maquettes validées, développement front-end, intégration back-end, recette, mise en production.

La clause doit prévoir une pénalité de retard automatique, calculée par jour ouvré de dépassement. Un taux courant dans le secteur : 0,5 % du montant total du contrat par semaine de retard, plafonné à 10 %. Sans ce plafond, certaines agences contesteront la clause en invoquant son caractère disproportionné devant un tribunal.

Prévoyez aussi les cas de force majeure légitimes (coupure réseau Inwi/IAM généralisée, séisme, pandémie officiellement déclarée) pour éviter que l'agence n'utilise le moindre incident comme prétexte. Tout retard dû à un manque de ressource de l'agence doit rester soumis aux pénalités.

Clause 3 : Performances techniques garanties (score Lighthouse)

Trop de contrats livrent un site 'fonctionnel' qui charge en 8 secondes sur mobile. Au Maroc, avec des connexions 4G variables selon les opérateurs et des zones encore couvertes en 3G, la performance n'est pas un luxe. Google indexe en priorité les Core Web Vitals : Largest Contentful Paint, Cumulative Layout Shift, Interaction to Next Paint.

Exigez des seuils mesurables dans le contrat. Une formulation acceptable : 'Le site livré devra obtenir un score Lighthouse Performance supérieur ou égal à 85 sur mobile et 90 sur desktop, mesuré via PageSpeed Insights depuis un serveur d'origine France/Europe au moment de la recette.' Ce seuil est atteignable avec un stack moderne comme Next.js sur Vercel.

Si l'agence refuse de s'engager sur des métriques de performance, c'est un signal clair. Soit elle ne maîtrise pas les technologies qu'elle utilise, soit elle sait que le résultat ne sera pas à la hauteur. Dans les deux cas, vous avez besoin de le savoir avant de signer.

Ajoutez une clause de vérification à 30 jours après la mise en production. Les performances peuvent dégrader après ajout de contenu ou de scripts tiers. L'agence doit rester responsable de ce premier mois.

  • LCP (Largest Contentful Paint) : inférieur à 2,5 secondes
  • CLS (Cumulative Layout Shift) : inférieur à 0,1
  • INP (Interaction to Next Paint) : inférieur à 200 ms
  • Score Lighthouse Performance mobile : minimum 85/100
  • Score Lighthouse Accessibilité : minimum 80/100

Clause 4 : Indépendance d'hébergement et portabilité

C'est un piège classique au Maroc : l'agence héberge votre site sur son propre compte Hostinger, OVH ou serveur mutualisé. Vous ne connaissez pas les identifiants. Quand vous décidez de changer de prestataire, l'agence conditionne la 'migration' à un paiement supplémentaire, voire refuse de coopérer.

La clause de portabilité doit stipuler que : (a) les accès hébergement sont ouverts au nom du client ou d'une entité que le client contrôle, (b) en cas de résiliation, l'agence dispose de 15 jours pour livrer une sauvegarde complète (code source + dump base de données + fichiers médias) sans frais supplémentaires, (c) le nom de domaine est enregistré au nom du client, pas de l'agence.

Pour les points (a) et (c), insistez sur une vérification au moment de la recette, pas à la résiliation. Connectez-vous vous-même au panel d'hébergement et au registrar de domaine avant de valider la livraison finale.

Clauses 5 et 6 : Confidentialité et conformité CNDP

Si votre plateforme collecte des données personnelles d'utilisateurs marocains, elle est soumise à la loi 09-08 relative à la protection des données à caractère personnel, sous contrôle de la CNDP. Cette loi impose une déclaration préalable (ou autorisation pour les données sensibles) avant tout traitement.

Votre contrat doit comporter deux clauses distinctes. La première couvre la confidentialité des données que vous transmettez à l'agence pendant le projet : accès à votre base clients, données financières, documents internes. L'agence doit s'engager à ne pas les utiliser, les communiquer ou les conserver au-delà de la durée du projet.

La seconde clause porte sur la conformité de la plateforme livrée. L'agence doit garantir que les formulaires de collecte incluent les mentions légales obligatoires (finalité, durée de conservation, droits d'accès et de rectification), que les cookies tiers sont gérés avec consentement explicite, et que la plateforme est architecturée pour permettre une réponse aux droits des personnes dans les 30 jours réglementaires.

Une agence qui ne connaît pas la loi 09-08 en 2026 n'a pas la maturité pour livrer une plateforme sérieuse. C'est aussi un risque direct pour vous : en cas de contrôle, c'est le responsable de traitement (vous) qui est sanctionné, pas l'agence.

Clause 7 : Conditions de recette et procédure de réserves

La recette, c'est le moment où vous validez officiellement la livraison. Sans clause de recette structurée, deux scénarios dangereux existent. Premier scénario : l'agence considère que votre silence vaut acceptation après 7 jours d'accès à l'environnement de préproduction. Vous avez légitimement oublié de répondre à cause d'une semaine chargée : la livraison est réputée acceptée, y compris avec ses bugs.

Deuxième scénario inverse : vous pouvez multiplier les demandes de modification indéfiniment, car le contrat ne définit pas ce qui constitue un bug (non-conformité au cahier des charges) versus une nouvelle demande (hors scope). L'agence est bloquée sans pouvoir clôturer le projet.

La clause de recette doit prévoir : un délai de test défini (10 à 15 jours ouvrés est raisonnable), une procédure écrite de remontée des réserves (liste numérotée par email ou via un outil de suivi), une distinction claire entre anomalie bloquante, anomalie non-bloquante et évolution hors périmètre, et un délai de correction de chaque catégorie. La recette partielle avec réserves permet de débloquer les paiements sans attendre la perfection absolue.

Clause 8 : Maintenance, support et conditions de résiliation

Un site livré sans clause de maintenance est un site qui vieillira mal. Les dépendances npm se périment, les failles de sécurité apparaissent, les APIs tierces changent. La question n'est pas si vous aurez besoin de maintenance, mais à quel prix et sous quelles conditions.

Le contrat doit détailler ce que couvre la maintenance incluse (généralement 30 jours post-livraison) : corrections de bugs apparus en production, mise à jour des dépendances critiques de sécurité, support technique par email ou téléphone avec SLA (délai de réponse garanti). Au-delà, les conditions du contrat de run doivent être annexées ou référencées explicitement.

La clause de résiliation est tout aussi importante. Elle doit couvrir trois cas : résiliation à l'initiative du client (préavis, paiement des livrables déjà produits), résiliation à l'initiative de l'agence (interdite pendant le projet sauf faute grave du client), et résiliation pour manquement grave avec procédure de mise en demeure préalable de 15 jours.

  • SLA support : réponse sous 24h ouvrées pour les bugs bloquants, 48h pour les non-bloquants
  • Mises à jour de sécurité critiques : obligation sous 72h après publication du patch
  • Sauvegarde automatique : fréquence et rétention à préciser (ex. : quotidienne, 30 jours)
  • Préavis de résiliation : 30 jours calendaires de part et d'autre
  • Livraison des sources à la résiliation : dans les 15 jours, sans condition financière supplémentaire

Ce que la réaction de l'agence vous révèle

Soumettre cette liste de clauses à votre agence est en soi un test. Une agence sérieuse accueillera ces demandes sans résistance particulière. Elle aura probablement déjà la plupart de ces clauses dans ses contrats types, ou acceptera de les intégrer après une relecture rapide avec son conseil juridique.

Une agence qui résiste sur la propriété intellectuelle a une raison de le faire. Peut-être réutilise-t-elle des composants entre clients sans licence claire, ou hésite-t-elle à céder un 'thème maison' qu'elle vend à plusieurs. Dans tous les cas, ce n'est pas votre problème à absorber.

Une agence qui refuse les pénalités de retard sait qu'elle ne tiendra pas ses délais. Une agence qui verrouille l'hébergement compte sur votre dépendance future. Ces signaux ne mentent pas.

Signer un contrat d'agence web au Maroc sans ces 8 clauses, c'est accepter que les règles du jeu soient définies unilatéralement. Ce n'est pas une question de méfiance, c'est une question de clarté : les meilleurs projets sont ceux où les deux parties savent exactement ce qu'elles s'engagent à faire. Ces clauses protègent aussi l'agence. Un client qui sait précisément ce qu'il a commandé, ce qui constitue un bug et ce qui est hors périmètre : c'est un client avec qui le projet se passe bien. Un contrat flou profite rarement à quelqu'un sur la durée. Si vous êtes en train de choisir votre agence et que vous voulez comprendre sur quoi repose la différence entre un devis à 8 000 DH et un projet à 37 000 DH, notre guide sur les critères de sélection d'une agence web au Maroc vous donnera la grille complète. Et si vous voulez travailler avec une équipe dont les contrats intègrent déjà ces protections par défaut, nous sommes disponibles pour un premier échange.

Newsletter

Recevez nos prochains articles.

1 email par semaine, les meilleurs articles. Désinscription en 1 clic.

Vous avez un projet web sérieux au Maroc ?

Cadence installe pour votre PME un système qui transforme les demandes en clients : site qui capte, WhatsApp tracké, mini CRM, relances, dashboard. Prix signé en dirhams, calendrier signé au devis, code source à vous.

Recevoir mon audit gratuit
WhatsApp