ecomyseo/velocidad-prestashop

Mesurer et améliorer la vitesse d'une boutique PrestaShop (1.7, 8 et 9) et de son serveur sans rien casser. Sauvegarde et retour arrière avant chaque modification, mesure avant/après avec un vrai navigateur (mobile en 4G), images WebP (cœur, thème, bannières et CMS), ressources bloquant le rendu (polices, icônes, jQuery, reCAPTCHA), cache navigateur, réglages serveur (OPcache, MariaDB, PHP-FPM, sessions, DNS) et modules tiers.

Qu'est-ce que velocidad-prestashop ?

Ce skill rassemble les techniques testées et appliquées sur des boutiques PrestaShop réelles pour améliorer leurs performances sans risque. Il fournit une méthodologie stricte : sauvegarde systématique avant chaque modification, mesure avant/après avec un navigateur réel (mobile 4G), et validation par activation/désactivation des changements. Le skill traite des optimisations classées par ordre d'impact : conversion WebP des images, élimination des ressources bloquant le rendu (polices, icônes, jQuery, reCAPTCHA), mise en place du cache navigateur, et réglages serveur (OPcache, MariaDB, PHP-FPM, DNS). Il inclut des scripts (medir.py, revisar_cache.py, webp_al_lado.py) et des templates de configuration pour nginx/Apache. Conçu pour les développeurs et intégrateurs PrestaShop, il fonctionne avec les versions 1.7, 8 et 9, et insiste sur la communication avec le propriétaire de la boutique et la génération de rapports de performance.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ecomyseo/velocidad-prestashop/tree/HEAD/skill/velocidad-prestashop

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vitesse sur PrestaShop sans rien casser

Ce skill rassemble ce qui a été mesuré et appliqué sur des boutiques PrestaShop réelles : ce qui améliore vraiment, dans quel ordre le faire et où l'on trébuche. Tout est anonymisé.

Les règles qui ne sont pas contournées

  1. Sauvegarde avant chaque modification. De chaque fichier touché, des lignes de configuration modifiées et de la configuration du serveur. Et un volver.sh qui annule cette modification précise. Détail dans referencias/01-metodo-seguro.md.
  2. Mesurer avant et après, avec la même méthode. Sans mesure de départ, on ne peut pas dire que quelque chose s'est amélioré. La méthode est dans referencias/02-medir.md et l'outil dans scripts/medir.py.
  3. Un changement à la fois, et le tester en activant et désactivant. Pour savoir si une option aide, on mesure avec et sans elle, en alternant (A, B, A, B) et avec plusieurs chargements. Si ça ne s'améliore pas, on annule.
  4. Rien en production sans l'autorisation du propriétaire de la boutique, en disant avant ce qui va être touché. S'il y a une copie de la boutique, on teste d'abord là.
  5. Vérifier la fin, pas seulement le début. Mêmes codes HTTP qu'avant sur les pages clés, zéro nouvelle erreur JavaScript (celles qui existaient déjà ne comptent pas, mais on les note), images qui chargent, et panier et checkout qui fonctionnent.
  6. Informer de chaque changement : ce qui a été touché, où se trouve la copie, comment annuler et ce qui a été mesuré.

Ordre de travail, du plus rentable au moins

ÉtapeQuoiRéférence
1Mesurer la situation initiale (mobile 4G, première et seconde visite)referencias/02-medir.md
2Images : WebP sur les photos de produits, le thème et les bannières/CMSreferencias/03-imagenes-webp.md
3Ressources bloquant le rendu : polices, icônes, jQuery, reCAPTCHA, CCCreferencias/04-bloqueos.md
4Cache du navigateur pour les fichiers statiquesreferencias/05-cache-navegador.md
5Serveur : OPcache, MariaDB, PHP-FPM, sessions, DNS, CPUreferencias/06-servidor.md
6Modules tiers qui appellent à l'extérieur ou bloquentreferencias/07-modulos-terceros.md
—Pièges déjà rencontrés (à lire avant de commencer)referencias/08-trampas.md

Ce qui pèse le plus, ce sont presque toujours les images : des bannières PNG de 2 à 5 Mo sont courantes. Dans une boutique, la page d'accueil est passée de 26,5 Mo à 4,8 Mo uniquement avec le WebP sur les bannières, sans toucher à aucune image originale.

Outils

ScriptUtilité
scripts/medir.pyNavigateur réel (Playwright) en mobile avec 4G lente et CPU ×4 : FCP, LCP, chargement, Ko, requêtes, ressources bloquantes, éléments les plus lourds et erreurs JavaScript, en première et seconde visite.
scripts/revisar_cache.pyCombien de temps le navigateur conserve les CSS, JS, images et polices d'un site, et que les pages et le JSON ne soient pas conservés. Lecture seule.
scripts/webp_al_lado.pyCrée image.png.webp à côté de chaque image d'un dossier (sans toucher l'originale), uniquement si elle pèse au moins 10 % de moins. Laisse un journal pour annuler.

Templates de configuration prêts à adapter dans plantillas/ : négociation WebP sur nginx et Apache, bloc de cache navigateur sécurisé pour .htaccess, le Smarty partiel qui demande le WebP uniquement s'il existe et un modèle d'avis au développeur d'un module.

Comment informer à la fin

  • Ce qui a été modifié, site par site, avec le chiffre avant et après.
  • Où se trouve la copie et la commande exacte pour l'annuler.
  • Ce qui reste en attente et quelle décision revient au propriétaire de la boutique.
  • Ce qui a été vu en passant et qui n'a pas été touché (erreurs déjà présentes, modules suspects).

Skills associés