[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"seo-verification":3,"blog-black-friday-2026-boutique-en-ligne-tenir-la-charge-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-black-friday-2026-boutique-en-ligne-tenir-la-charge-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":173,"ctaBody":174,"ctaButton":175,"ctaUrl":176,"relatedPosts":177},554,"black-friday-2026-boutique-en-ligne-tenir-la-charge",{"fr":10,"en":12,"ar":13,"es":14},"black-friday-2026-online-store-handling-the-load","بلاك-فرايداي-2026-متجر-إلكتروني-تحمل-الضغط","black-friday-2026-tienda-online-aguantar-la-carga","Black Friday 2026 : tenir la charge de votre boutique en ligne","Gel des changements, test de charge avec k6, cache, base de données et plan de repli : la checklist datée pour arriver au pic de fin novembre en connaissant votre limite.",13,0,false,"2026-11-01T00:00:00+00:00","2026-11-01T14:14:31+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fblack-friday-2026-boutique-en-ligne-tenir-la-charge-poster.svg","Une boutique qui tombe pendant le Black Friday perd des ventes qu'aucune relance ne rattrape, au moment où les visiteurs sont les plus nombreux. Le serveur ne se devine pas : il se mesure sur une copie, avec des outils gratuits, en lisant le pic et non la moyenne. Cet article donne un calendrier de quatre semaines, un test de charge reproductible avec k6, les réglages de cache et de base à vérifier, et un plan de repli à écrire avant le pic. Aucune capacité n'est promise : la limite de votre boutique, c'est votre mesure qui la donne.",[34,38,48,51,83,111,114,145,148,151,155,158,161,170],{"type":35,"title":36,"body":37},"h2","Le pic est une date, la préparation aussi","Le Black Friday tombe le lendemain de Thanksgiving, que le droit fédéral américain fixe au quatrième jeudi de novembre. En 2026, cela donne le jeudi 26 novembre pour Thanksgiving, le vendredi 27 novembre pour le Black Friday et le lundi 30 novembre pour le Cyber Monday. Ces dates sont calculées à partir de cette règle : recoupez-les avec le calendrier commercial de votre marché, qui peut avancer ou prolonger ses propres opérations.\n\nIl reste quatre semaines à la date de cet article. C'est assez pour geler, mesurer et corriger, pas assez pour tout reconstruire. L'enjeu n'est donc pas d'avoir le plus gros serveur possible, mais de connaître la limite du vôtre avant que le trafic la trouve à votre place, puis de décider à l'avance ce que vous faites si elle est atteinte.",{"type":39,"title":40,"items":41},"ul","Ce qui fait tomber une boutique pendant le pic",[42,43,44,45,46,47],"**Un cache qui ne sert que les visiteurs anonymes** — dès qu'un cookie de panier ou de session est présent, la page est recalculée par PHP et la base de données à chaque requête.","**Des requêtes SQL tolérables à faible trafic** — une requête lente ne gêne personne à cinq visiteurs. À deux cents visiteurs simultanés, elle occupe des connexions et fait attendre toutes les suivantes.","**Trop de processus PHP pour la mémoire disponible** — chaque processus consomme de la RAM.","**Un changement de dernière minute** — une extension, un thème ou un code promo mal configuré poussé la veille. C'est la cause la plus évitable, et le gel la supprime.","**Un service tiers appelé à chaque page vue** — module de livraison, d'avis ou de fidélité interrogé de façon synchrone. S'il ralentit, la boutique ralentit avec lui, sans que votre serveur soit en cause.","**Aucune consigne écrite** — personne ne sait qui décide de désactiver une fonction, à quel seuil, ni qui prévient le client. On improvise pendant la panne, ce qui allonge la panne.",{"type":35,"title":49,"body":50},"Geler les changements : quatre semaines, une date de coupure","Le gel est la mesure la moins coûteuse et la plus efficace : tant que le code et la configuration ne bougent pas, ce que vous avez mesuré reste vrai. Choisissez une date de coupure, par exemple le vendredi 20 novembre, une semaine avant le pic. Après elle, plus de mise à jour du CMS, plus de nouvelle extension, plus de changement de thème. Seules passent les corrections de bugs critiques, testées sur la copie puis notées dans un journal.\n\nLe gel ne couvre pas les mises à jour automatiques : désactivez-les pour la période. Le tableau ci-dessous se rejoue chaque année en décalant les dates.\n\nPrenez une sauvegarde complète juste avant le gel (fichiers, base de données, configuration du serveur), puis restaurez-la une fois sur la copie en chronométrant l'opération : cette durée est une donnée du plan de repli. La différence entre instantané et sauvegarde est expliquée dans \u003Ca href=\"\u002Fblog\u002Fsnapshot-vs-sauvegarde-vps-difference-restauration\">snapshot ou sauvegarde de VPS\u003C\u002Fa>.",{"type":52,"title":53,"headers":54,"rows":58},"comparison","Calendrier de préparation à rejouer chaque année",[55,56,57],"Période","Ce qui se fait","Preuve attendue",[59,63,67,71,75,79],[60,61,62],"D'ici au 6 novembre","Inventaire : version du CMS, extensions, services tiers, tâches planifiées, plan d'hébergement","Un tableau daté, avec une personne responsable par ligne",[64,65,66],"Du 9 au 13 novembre","Copie de la boutique et test de charge de référence","Résultat conservé avec la commande exacte et le scénario",[68,69,70],"Du 16 au 19 novembre","Réglages de cache, de base de données et de PHP, puis nouveau test","Même scénario, mêmes paramètres, résultats comparés",[72,73,74],"Vendredi 20 novembre","Gel des changements, sauvegarde complète","Restauration testée, pas seulement la sauvegarde prise",[76,77,78],"Du 21 au 26 novembre","Corrections critiques uniquement, après essai sur la copie","Journal des changements tenu à jour",[80,81,82],"Du 27 au 30 novembre","Surveillance du pic, plan de repli prêt à l'emploi","Alertes actives et une personne d'astreinte nommée",{"type":84,"title":85,"steps":86},"steps","Mesurer sur une copie avec k6 et ab",[87,90,93,96,99,102,105,108],{"title":88,"body":89},"Préparer une copie de la boutique","Ne testez jamais la boutique en ligne : un test de charge peut la faire tomber, polluer vos statistiques et créer de fausses commandes. Restaurez une sauvegarde sur un VPS ou un hébergement de test de même famille que la production, avec la même version de PHP et la même base. Anonymisez les clients, coupez l'envoi d'e-mails et mettez les modules de paiement en mode test.",{"title":91,"body":92},"Écrire le scénario avant l'outil","Listez le parcours d'un acheteur : page d'accueil, page de catégorie, page produit, ajout au panier, page panier, puis début du tunnel de commande. Décidez de la part de chaque étape, par exemple beaucoup de pages produit et peu de paiements. Un scénario limité à la page d'accueil mesure le cache, pas la boutique.",{"title":94,"body":95},"Installer k6","k6 est l'outil de test de charge open source de Grafana, un binaire unique. Suivez l'installation décrite dans \u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Fk6\u002Flatest\u002F\">la documentation officielle de k6\u003C\u002Fa> sur la machine qui émet la charge, jamais sur le serveur testé, puis vérifiez avec `k6 version`.",{"title":97,"body":98},"Écrire le script sur un modèle de montée progressive","Dans un fichier `charge.js`, importez `http` depuis `k6\u002Fhttp` et `check` depuis `k6`. Déclarez un scénario avec `executor: 'ramping-arrival-rate'` (\u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Fk6\u002Flatest\u002Fusing-k6\u002Fscenarios\u002Fexecutors\u002Framping-arrival-rate\u002F\">documentation de k6\u003C\u002Fa>) : il fixe un nombre d'itérations par seconde, indépendamment de la vitesse de réponse du site, ce qui ressemble davantage à une arrivée de visiteurs qu'un nombre fixe d'utilisateurs virtuels. Renseignez `startRate`, `timeUnit`, `preAllocatedVUs`, `maxVUs` et des `stages` qui montent par paliers. Dans la fonction par défaut, enchaînez `http.get` sur la page produit puis `http.post` sur l'ajout au panier, avec un `check` sur le code 200.",{"title":100,"body":101},"Fixer des seuils qui font échouer le test","Ajoutez `thresholds` aux options : `http_req_failed: ['rate\u003C0.01']` et `http_req_duration: ['p(95)\u003C800']`. Les valeurs sont les vôtres, à décider selon ce que vos clients tolèrent, pas selon un chiffre recopié. Si un seuil n'est pas tenu, k6 se termine avec un code de sortie non nul, ce qui rend le test rejouable dans une routine automatique. Notez que les `check` n'ont pas cet effet : seuls les seuils font échouer le test.",{"title":103,"body":104},"Lancer le test et observer le serveur en même temps","Exécutez `k6 run -e BASE_URL=https:\u002F\u002Fcopie.votre-domaine.com charge.js`. Dans une session SSH sur le serveur testé, laissez tourner `top` ou `htop`, et surveillez `free -m` pour la mémoire et le swap. Relevez à quel palier de la montée les temps de réponse décollent et quelle ressource sature en premier : processeur, mémoire, connexions à la base ou disque.",{"title":106,"body":107},"Compléter par un test rapide avec ab","ApacheBench vérifie en une ligne une page précise : `ab -n 500 -c 20 -k https:\u002F\u002Fcopie.votre-domaine.com\u002Fproduit\u002Fexemple\u002F`. L'option `-n` donne le nombre total de requêtes, `-c` le nombre de requêtes simultanées et `-k` active la connexion persistante. La documentation d'Apache précise que l'outil n'implémente pas HTTP\u002F1.x en totalité : réservez-le aux comparaisons avant et après un réglage, pas à la mesure d'une capacité.",{"title":109,"body":110},"Rejouer le même test après chaque réglage","Modifiez une seule chose à la fois : cache, nombre de processus PHP, index de base. Relancez exactement la même commande et conservez les résultats dans un fichier daté.",{"type":35,"title":112,"body":113},"Lire le résultat : le pic, pas la moyenne","Une moyenne de temps de réponse masque ce que vit l'acheteur malchanceux. Lisez le percentile 95, ou le 99 pour les cas les plus lents, et le taux d'erreurs. Une boutique dont la moyenne reste correcte mais dont un acheteur sur vingt attend plusieurs secondes perd des paniers sans que la moyenne l'indique.\n\nRegardez aussi la forme de la courbe. Un temps stable puis une chute brutale signale une limite dure, comme un nombre maximal de connexions à la base ou de processus PHP. Ce test ne dit pas combien de visiteurs réels vous recevrez : il dit à quel rythme d'arrivées votre copie, dans les conditions du test, commence à se dégrader.\n\nAucun résultat chiffré n'est publié ici, et c'est voulu : un chiffre mesuré sur une machine de test ne dit rien de la vôtre, et le script ci-dessus n'a été exécuté que contre une cible factice pour en valider la syntaxe, ce qui ne prouve aucune capacité. La seule mesure qui compte est celle que vous prendrez sur votre copie.",{"type":52,"title":115,"headers":116,"rows":120},"Symptômes pendant le test et pistes à suivre",[117,118,119],"Ce que vous observez","Cause probable","Ce qu'il faut mesurer",[121,125,129,133,137,141],[122,123,124],"Temps de réponse qui monte avec la charge, processeur à son maximum","Trop de pages calculées par PHP au lieu d'être servies par le cache","Taux de pages servies par le cache pour les visiteurs anonymes",[126,127,128],"Mémoire pleine puis usage du swap","Trop de processus PHP pour la RAM disponible","Mémoire par processus PHP et nombre de processus autorisés",[130,131,132],"Erreurs 502 ou 504 par rafales","Processus PHP tous occupés, ou file d'attente saturée","Réglage du pool PHP et temps des requêtes les plus lentes",[134,135,136],"Processeur calme mais temps de réponse élevé","Attente de la base de données ou d'un service tiers","Journal des requêtes lentes, durée des appels externes",[138,139,140],"Erreur « too many connections »","Limite de connexions de la base atteinte","Valeur de `max_connections` et connexions réellement utilisées",[142,143,144],"Pages produit rapides mais panier lent","Le panier contourne le cache, comme il le doit, et pèse sur la base","Requêtes déclenchées par l'ajout au panier",{"type":35,"title":146,"body":147},"Cache : ce qui se sert vite, ce qui ne doit jamais l'être","La \u003Ca href=\"https:\u002F\u002Fdeveloper.woocommerce.com\u002Fdocs\u002Fbest-practices\u002Fperformance\u002Fconfiguring-caching-plugins\">documentation de WooCommerce\u003C\u002Fa> est nette : les pages panier, commande et compte client doivent rester dynamiques, car elles affichent des informations propres au client. Excluez-les de tout cache, côté plugin comme côté serveur et réseau de diffusion, et vérifiez les cookies de session et de panier que votre version de WooCommerce utilise. Une page de panier mise en cache par erreur montre le panier d'un autre acheteur, ce qui est pire qu'une panne.\n\nPour le reste, cataloguez ce qui peut être servi tel quel : accueil, catégories, fiches produit pour les visiteurs sans cookie. Le détail des chemins à exclure côté réseau de diffusion est traité dans \u003Ca href=\"\u002Fblog\u002Fcloudflare-site-client-agence-cache-ssl-reglages\">notre guide sur Cloudflare et le cache d'un site client\u003C\u002Fa>. Sous PrestaShop, la \u003Ca href=\"https:\u002F\u002Fdevdocs.prestashop-project.org\u002F9\u002Fscale\u002Foptimizations\u002F\">documentation des développeurs\u003C\u002Fa> recommande d'activer le cache Smarty dans la page Performances, et de ne pas activer la section Cache lorsque MySQL ou MariaDB tourne sur la même machine. Contrôlez ces réglages dans l'administration de votre version, puis rejouez le test après chaque modification.",{"type":35,"title":149,"body":150},"Base de données et cache d'objets","Activez le \u003Ca href=\"https:\u002F\u002Fmariadb.com\u002Fkb\u002Fen\u002Fslow-query-log-overview\u002F\">journal des requêtes lentes de MariaDB\u003C\u002Fa> avant le test : `SET GLOBAL slow_query_log=1;` puis `SET GLOBAL long_query_time=1;` pour un seuil à une seconde, valeur qui reste à ajuster. Ces réglages à chaud disparaissent au redémarrage ; pour les conserver, placez-les dans la configuration. À partir de MariaDB 10.11, les variables sont renommées avec le préfixe `log_slow_`, vérifiez donc le nom propre à votre version.\n\nUn cache d'objets comme Redis soulage la base en gardant en mémoire les résultats répétés. Fixez-lui une limite avec `maxmemory` et choisissez la politique d'éviction avec `maxmemory-policy` : la \u003Ca href=\"https:\u002F\u002Fredis.io\u002Fdocs\u002Flatest\u002Fdevelop\u002Freference\u002Feviction\u002F\">documentation de Redis\u003C\u002Fa> indique que `allkeys-lru` est un bon choix par défaut quand une partie des clés est lue bien plus souvent que le reste, alors que `noeviction` renvoie une erreur quand la mémoire est pleine. Surveillez `keyspace_hits` et `keyspace_misses` dans `INFO stats` pendant le test : un taux de réussite bas signale un cache qui ne sert à rien.",{"type":152,"title":153,"body":154},"tip","Ne chargez que ce qui vous appartient","Pointez le test vers votre copie, jamais vers la passerelle de paiement, un service de livraison ou une API tierce : l'outil les enverrait en surcharge et pourrait vous faire bloquer votre compte. Si votre scénario doit traverser le paiement, utilisez le mode test du prestataire, avec son accord.",{"type":35,"title":156,"body":157},"Dimensionner : une hypothèse à valider par la mesure","Si le test révèle que la copie sature trop tôt, deux voies existent : corriger le logiciel, ou changer de plan. Si la machine reste le facteur limitant, augmentez la mémoire ou les cœurs par paliers et rejouez le même test après chaque palier, jusqu'à ce que la courbe tienne avec une marge que vous jugez suffisante.\n\nUne recommandation de ressources lue sur un site, y compris celui-ci, reste une hypothèse : seule votre mesure sur votre boutique fait foi. La méthode de lecture de la consommation est détaillée dans \u003Ca href=\"\u002Fblog\u002Fdimensionner-vps-ram-cpu-site-client\">dimensionner un VPS pour le site d'un client\u003C\u002Fa>. Quand une machine ne suffit plus, \u003Ca href=\"\u002Fblog\u002Fdeployer-avec-haproxy-vps\">HAProxy sur un VPS\u003C\u002Fa> répartit la charge, au prix d'une architecture plus complexe.",{"type":35,"title":159,"body":160},"Si vous ne faites pas ce test vous-même","Beaucoup de commerçants confient la boutique à une agence ou à un hébergeur. Le test reste nécessaire : il se demande. Réclamez trois choses par écrit avant la date de gel : le résultat daté d'un test de charge sur une copie, avec le scénario et le temps de réponse au percentile 95 lu au pic ; la liste des changements prévus et la date de gel acceptée ; un plan de repli signé, qui nomme la personne autorisée à désactiver des fonctions ou à restaurer la sauvegarde. Un rapport qui ne cite que la moyenne, ou un « tout est prêt » sans résultat, ne répond pas à la demande.\n\nDécidez aussi, avec eux, qui tranche le jour J : le repli coûte des fonctions, donc des ventes, et cette décision revient à l'activité, pas au seul prestataire technique.",{"type":39,"title":162,"items":163},"Le plan de repli, une ligne par décision",[164,165,166,167,168,169],"**Qui décide** — une personne nommée, avec un suppléant, autorisée à déclencher le repli sans consulter un comité.","**À quel seuil** — par exemple un taux d'erreurs ou un temps de réponse que vous avez défini pendant les tests, relevé par la supervision et non à l'œil.","**Action de délestage** — désactiver les fonctions non essentielles : recommandations de produits, avis, recherche prédictive, extensions lourdes testées une à une lors de l'essai.","**Deuxième action** — activer une page de file d'attente ou de maintenance claire, avec l'heure de retour prévue, plutôt qu'une erreur brute.","**Dernier recours** — restaurer la sauvegarde d'avant le gel, avec le temps de restauration mesuré et l'accord de la personne qui décide.","**Qui prévient** — le client, l'équipe marketing qui pousse la campagne et votre hébergeur, avec un message déjà rédigé.",{"type":35,"title":171,"body":172},"Après le pic : garder la mesure pour l'an prochain","Conservez le script, la commande, les résultats et le journal des changements dans un dossier daté. L'an prochain, vous rejouerez le même test sur la nouvelle version de la boutique, et la comparaison vous montrera si les extensions ajoutées dans l'année ont alourdi le parcours.\n\nPour suivre la disponibilité des boutiques pendant la période, voir \u003Ca href=\"\u002Fblog\u002Fmonitoring-disponibilite-sites-clients-agence-rapport\">le rapport de disponibilité des sites clients\u003C\u002Fa>.","Un pic de ventes mérite un serveur dont vous connaissez la limite","Hébergement et VPS au même endroit que votre domaine, sauvegardes selon l'offre, migration depuis votre hébergeur actuel. Votre boutique reste la vôtre. Plans à partir de 199 DH\u002Fan pour l'hébergement et 99 DH\u002Fmois pour un VPS.","Voir la solution professionnels","\u002Fsolutions\u002Fprofessionnels",[178,198,217],{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":187,"views":18,"isPinned":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":195,"featuredImage":29,"bgImage":30,"posterImage":197,"relatedSolution":29},547,"dimensionner-vps-ram-cpu-site-client",{"fr":180,"en":182,"ar":183,"es":184},"sizing-a-vps-for-a-client-site-ram-and-cpu","تحديد-حجم-vps-لموقع-عميل-الذاكرة-والمعالج","dimensionar-un-vps-para-el-sitio-de-un-cliente-ram-y-cpu","Dimensionner un VPS pour le site d'un client : RAM, CPU","Mesurez la RAM, le CPU et le disque réellement utilisés par le site d'un client, au pic, puis choisissez le plan VPS avec une marge écrite.",10,"2026-10-31T00:00:00+00:00","2026-10-31T20:50:39+00:00",{"id":191,"name":192,"slug":193,"color":194,"icon":193},5,"Comparatif","comparatif","bg-info\u002F10 text-info",[196],{"id":191,"name":192,"slug":193,"color":194,"icon":193},"\u002Fblog\u002Fcovers\u002Fdimensionner-vps-ram-cpu-site-client-poster.svg",{"id":199,"slug":200,"slugs":201,"title":205,"excerpt":206,"readTime":187,"views":18,"isPinned":19,"publishedAt":188,"updatedAt":207,"category":208,"categories":214,"featuredImage":29,"bgImage":30,"posterImage":216,"relatedSolution":29},549,"cloudflare-site-client-agence-cache-ssl-reglages",{"fr":200,"en":202,"ar":203,"es":204},"cloudflare-client-site-agency-cache-ssl-settings","إعدادات-cloudflare-موقع-العميل-الكاش-ssl","cloudflare-sitio-cliente-agencia-cache-ssl-ajustes","Cloudflare pour un site client : SSL Full (strict) et cache","Placez le site d'un client derrière Cloudflare sans boucle de redirection ni page privée en cache : mode Full (strict), règles de cache, vérifications.","2026-11-01T14:14:27+00:00",{"id":209,"name":210,"slug":211,"color":212,"icon":213},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[215],{"id":209,"name":210,"slug":211,"color":212,"icon":213},"\u002Fblog\u002Fcovers\u002Fcloudflare-site-client-agence-cache-ssl-reglages-poster.svg",{"id":218,"slug":219,"slugs":220,"title":224,"excerpt":225,"readTime":226,"views":18,"isPinned":19,"publishedAt":188,"updatedAt":227,"category":228,"categories":229,"featuredImage":29,"bgImage":30,"posterImage":231,"relatedSolution":29},548,"snapshot-vs-sauvegarde-vps-difference-restauration",{"fr":219,"en":221,"ar":222,"es":223},"vps-snapshot-vs-backup-what-differs-and-how-restore-works","اللقطة-مقابل-النسخ-الاحتياطي-للـvps-الفرق-والاستعادة","snapshot-vs-copia-de-seguridad-de-vps-diferencias-y-restauracion","Snapshot vs sauvegarde VPS : différence et restauration","Snapshot ou sauvegarde de VPS : ce que chacun protège, ce qu'il ne protège pas, comment restaurer, et la règle de décision pour les VPS de vos clients.",9,"2026-10-31T19:07:30+00:00",{"id":209,"name":210,"slug":211,"color":212,"icon":213},[230],{"id":209,"name":210,"slug":211,"color":212,"icon":213},"\u002Fblog\u002Fcovers\u002Fsnapshot-vs-sauvegarde-vps-difference-restauration-poster.svg",1793542841279]