Performance Revolution : installation et aide
Démarrage rapide
- Téléversez et installez le ZIP dans Modules > "Module Manager", puis ouvrez Performances > Paramètres.
- Choisissez Backend de cache et vérifiez le point de connexion Redis effectif ou un autre adaptateur disponible.
- Vérifiez Cache global et Front-Office dans "Cache" > Aperçu.
- Examinez Mise en cache de fragments, Cache de requêtes, Optimisation des ressources et "Images", puis enregistrez la configuration initiale.
- Si vous utilisez le cache de page complète, activez Activer le cache de pages d'origine et examinez En-tête de diagnostic sur une URL anonyme sans état particulier.
- Demandez la page deux fois, puis vérifiez dans des sessions distinctes que le panier, la connexion, le compte et la commande contournent le HTML anonyme partagé.
- Configurez séparément le CDN et le préchauffage planifié si nécessaire, et vérifiez leur état de configuration et les résultats de l'exécuteur.
Nécessite PrestaShop 1.6.1 ou ultérieur et PHP 7.1 ou ultérieur.
Manuel de configuration
Installer et établir une référence
Téléversez le ZIP dans Modules > "Module Manager", installez-le et cliquez sur "Configure". Le menu du back-office est Performances, avec Tableau de bord, "Cache", Ressources, Requêtes, Sauvegarde, Paramètres et Vérification système.
Avant d'activer d'autres couches, relevez le comportement de l'accueil, des catégories, produits, panier, compte et commande. Testez dans un navigateur client et un navigateur employé. Sélectionnez la boutique voulue et sauvegardez la configuration avant de modifier le cache du cœur ou les règles CDN.
Commencez dans Paramètres > Backend de cache. Le processus PHP doit pouvoir écrire dans les répertoires du cache PrestaShop et des ressources générées. L'installation du cache d'objets Redis de PrestaShop nécessite aussi l'accès à la classe de cache du cœur et aux fichiers de configuration concernés. Les actions Cloudflare nécessitent un jeton autorisé pour la zone sélectionnée et les opérations demandées.
Choisir le backend et les périmètres du cache
| Paramètre | Valeur par défaut | Votre configuration |
|---|---|---|
| Backend de cache | auto |
Sélectionnez "Auto", Redis, APCu ou "File" pour le gestionnaire de cache du module. "Auto" choisit un backend disponible et pris en charge. |
| TTL du cache par défaut | 3600 secondes |
Durée de vie par défaut des entrées du module. |
| Hôte Redis | 127.0.0.1 |
Valeur portable du module. La configuration Redis existante de PrestaShop peut influencer le point de connexion effectif ; examinez sa source affichée. |
| Port Redis | 6379 |
Port TCP Redis. |
| Mot de passe Redis | Vide | Mot de passe d'authentification si nécessaire. |
| Base de données Redis | 0 |
Index de la base de données. |
| Préfixe Redis | mpr_perf: |
Préfixe des clés du module. |
| Délai de connexion Redis | 0.25 seconde |
Délai de connexion. |
| Délai de lecture Redis | 0.5 seconde |
Délai de lecture. |
| Cache objet PrestaShop (Redis) | Paramètre existant du cœur | Commande distincte du cache d'objets du cœur PrestaShop via MPRCacheRedis. Lit la configuration du cœur plutôt qu'une valeur fixe du module. |
Enregistrez et vérifiez l'adaptateur sélectionné sur Tableau de bord. Si Redis ne se connecte pas, vérifiez l'hôte, le port, l'authentification, la base et la prise en charge Redis par PHP. Le choix du backend du module n'active pas nécessairement le cache d'objets du cœur.
Ouvrez "Cache" > Aperçu pour les interrupteurs Cache global, Front-Office, Administration et "Webservice". Ils sont activés par défaut dans le module. L'interrupteur global contrôle l'utilisation du cache du module et ceux des périmètres limitent les contextes de requête correspondants.
Utilisez "Cache" > Couches pour gérer les couches, Navigateur pour examiner les entrées, "Pages" pour les données du cache de pages et Préréglages pour consulter les préréglages disponibles. Lisez un préréglage avant de l'appliquer, car il modifie plusieurs paramètres ensemble.
Configurer les fragments et les requêtes
Ouvrez Paramètres > Mise en cache de fragments.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Activer le cache des fragments | Activé | Active les fragments Smarty explicitement marqués. N'englobe pas automatiquement chaque section du thème. |
| TTL par défaut | 3600 secondes |
Durée de vie lorsqu'un fragment ne fournit pas sa propre TTL. |
Un développeur peut mettre en cache un fragment de catégorie en incluant l'identité de celle-ci :
{mpr_cache id="category_products" ttl=3600 tags=["product","category"] vary=["category" => $category.id]}
{foreach from=$products item=product}
{include file='catalog/_partials/miniatures/product.tpl' product=$product}
{/foreach}
{/mpr_cache}
La clé de cache inclut la langue, la boutique, la devise et le groupe client par défaut, sauf si l'inclusion du contexte est désactivée. Ajoutez à vary toute autre valeur influençant le fragment. Ne placez pas de balisage propre à un client dans un fragment partagé sans variation adaptée ou remplacement dynamique.
Utilisez des espaces réservés dynamiques pour les valeurs prises en charge de la requête courante :
<span class="cart-count">{mpr_dynamic name="cart_count"}</span>
<span class="cart-total">{mpr_dynamic name="cart_total"}</span>
<span class="customer-name">{mpr_dynamic name="customer_name" default=""}</span>
<span class="csrf-token">{mpr_dynamic name="csrf_token"}</span>
Les noms pris en charge couvrent aussi les valeurs du client, de la langue, de la devise et de la boutique. Un fournisseur personnalisé peut utiliser actionMPRDynamicContent :
public function hookActionMPRDynamicContent($params)
{
if (($params['name'] ?? '') === 'loyalty_points') {
return (string) $this->getCurrentCustomerPoints();
}
return $params['default'] ?? '';
}
Ouvrez Paramètres > Cache de requêtes.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Activer le cache des requêtes | Activé | Active la mise en cache des résultats de requêtes prise en charge. |
| Préchargement des requêtes SQL | Désactivé | Mode optionnel de préchargement des requêtes. Laissez-le désactivé à la première configuration ; vérifiez le mode choisi avec votre charge de requêtes. |
| Activer le profilage des requêtes | Désactivé | Collecte les durées d'exécution des requêtes. |
| Seuil de requête lente | 0.1 seconde |
Seuil de signalement des requêtes lentes. |
| TTL du cache des requêtes | 300 secondes |
Durée de vie des résultats de requêtes en cache. |
Utilisez Requêtes pour examiner les requêtes collectées. Activez le profilage pendant un diagnostic, puis évaluez son surcoût avant de le conserver.
Configurer les ressources et le CSS hors ligne
Ouvrez Paramètres > Optimisation des ressources. Activez et testez une modification à la fois sur votre thème.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Activer l'optimisation des ressources | Activé | Interrupteur principal du traitement des ressources. |
| Regroupement des ressources | Désactivé | Remplace les ressources d'origine par des bundles optimisés. |
| Report intelligent des ressources | Désactivé | Diffère les ressources des modules pris en charge selon les besoins de la page et des interactions. |
| Minification CSS | Activé | Minifie le CSS. |
| Minification JS | Activé | Minifie le JavaScript. |
| Combinateur CSS intégré | Désactivé | Utilise le combineur du module plutôt que le seul CCC natif. |
| Supprimer le CSS inutilisé | Désactivé | Supprime les sélecteurs absents des templates et scripts collectés. Vérifiez ensuite les composants dynamiques. |
| "Resource Hints" | Activé | Ajoute les indications preload, prefetch, preconnect et DNS-prefetch prises en charge. |
| CSS par type de page | Désactivé | Utilise des variantes de feuilles de style construites hors ligne pour les types de pages pris en charge. Si une variante manque ou est périmée, la feuille complète est utilisée. |
| CSS initial généré | Désactivé | Insère en ligne le CSS initial validé produit par le worker hors ligne. C'est le libellé actuel de l'ancienne description "Critical CSS". |
| Pages avec CSS initial | auto |
Cible automatiquement l'accueil, les catégories principales, les meilleurs produits et les pages CMS clés par langue, ou fournit des URL cibles explicites. |
| Budget du CSS initial | 51200 octets |
Budget d'insertion en ligne, de 8192 à 51200 octets. Une page exigeant davantage conserve ses feuilles complètes. |
| JS différé au repos | Désactivé | Charge plus tard le JavaScript de modules sélectionnés par le mécanisme de report au repos. |
| Modules différés | Aucun | Choisissez les ressources des modules à reporter au repos. Testez les fonctions interactives qui en dépendent. |
Activer le CSS généré ne lance pas de navigateur pendant une requête de la boutique. Construisez-le avec les workers distincts. État du CSS initial généré indique sa disponibilité. Le worker "Critical CSS" nécessite Node 22.12 ou ultérieur et son environnement de navigateur configuré. Suivez ses instructions fournies pour la génération et le déploiement.
Ces commandes CLI examinent ou initialisent son travail ; elles ne réalisent pas elles-mêmes toute la génération par navigateur :
php modules/mprperformancerevolution/cli/critical-css.php --targets
php modules/mprperformancerevolution/cli/critical-css.php --seed
php modules/mprperformancerevolution/cli/critical-css.php --status
php modules/mprperformancerevolution/cli/page-type-css.php --status
Reconstruisez les données CSS hors ligne après des modifications pertinentes des feuilles de style, templates, scripts ou contenus. Si les données générées sont absentes ou invalides, le module revient aux feuilles complètes.
Configurer le cache de pages d'origine
Ouvrez Paramètres > Cache de pages d'origine.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Activer le cache de pages d'origine | Désactivé | Stocke et sert le HTML anonyme validé avant l'exécution normale du contrôleur. |
| TTL du cache de pages d'origine | 86400 secondes |
Plage autorisée : 60 à 2592000 secondes. |
| URL exclues supplémentaires | Vide | Ajoutez des chemins ou globs, un par ligne. Les exclusions intégrées des routes privées et sessions restent actives. |
| En-tête de diagnostic | Activé | Émet X-MPR-PageCache avec un hit, un miss ou une raison structurelle de contournement. |
Il s'agit d'un véritable cache de page complète à l'origine utilisant le gestionnaire du module. Il est distinct du cache HTML CDN et des fragments Smarty. Panier, compte, commande, administration, AJAX, cookies de session non sûrs et requêtes inconnues le contournent selon la politique d'exécution.
Activez-le après avoir vérifié une page anonyme sans état particulier et les cas de contournement requis. Demandez deux fois la même URL anonyme et examinez X-MPR-PageCache. Testez ensuite connexion, création de panier, changements de devise/langue et pages privées dans des sessions de navigateur distinctes.
Configurer le préchauffage et les tâches planifiées
Ouvrez Paramètres > Préchauffage du cache.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Activer le préchauffage du cache d'origine | Désactivé | Active les passages planifiés à l'origine. |
| Autoriser le préchauffage CLI après déploiement | Activé | Autorise un passage CLI complet après déploiement. |
| Simultanéité | 1 |
Requêtes simultanées à l'origine. |
| Durée d'exécution maximale | 120 secondes |
Limite un passage normal. |
| Ensemble d'URL | all |
Choisissez Critique, "Manifest", "Sitemap" ou Tous. |
| IP de résolution de l'origine | 127.0.0.1 |
Résout le nom d'hôte de la boutique vers cette IP pour le préchauffage d'origine. |
| Limite après un préchauffage récent | 12 heures |
Ignore les URL récemment préchauffées lors des passages normaux. |
| Pause entre les requêtes | 500 ms |
Espace les requêtes. |
| Arrêt au-delà de la charge du serveur | 100 pour cent |
Suspend lorsque la charge normalisée de l'hôte atteint la limite configurée. |
| Activer le préchauffage de l'edge Cloudflare | Désactivé | Préchauffe les URL publiques via l'Edge. |
| Intervalle de préchauffage de l'edge | 6 heures |
Limitation après un préchauffage Edge récent. |
| Rendus de préchauffage par heure | 6 |
Budget partagé de rendus planifiés. |
| Temps de requêtes de préchauffage par heure | 60 secondes |
Budget partagé de durée des requêtes planifiées. |
| Début calme de chaque tranche de 10 minutes | 30 secondes |
Réserve le début de chaque bloc aux autres tâches planifiées. |
Copiez le jeton réellement généré dans le planificateur du serveur. Commande typique de l'exécuteur :
* * * * * php /var/www/html/modules/mprperformancerevolution/cron.php --token=YOUR_TOKEN --max-tasks=20 --max-seconds=55 --context=cron
Adaptez les chemins PHP et boutique. L'exécuteur gère aussi les nettoyages déclarés, invalidations/purges en attente, traitements d'images et maintenance CSS selon l'état des tâches. L'activation d'une fonction et la planification de sa tâche se vérifient séparément.
Un passage manuel après déploiement peut utiliser :
php modules/mprperformancerevolution/cli/warm-cache.php --full --both --url-set=all --concurrency=1 --resolve-ip=127.0.0.1 --max-seconds=120
Utilisez --edge pour l'Edge seul, --cron pour le mode cron et --help pour les arguments pris en charge. Lisez le résumé des états désactivés, échoués ou d'écriture externe bloquée. Un passage suspendu ou limité par le budget peut être normal avec les valeurs prudentes par défaut.
Surveiller, déboguer et vérifier
Ouvrez Paramètres > Suivi. Activer la collecte des métriques est activé par défaut, Conservation des métriques vaut 30 jours et Métriques des visiteurs réels est activé. Le taux interne d'échantillonnage RUM est de 10 pour cent. Les métriques du tableau de bord incluent état de l'adaptateur, hits, misses, taux de hits, mémoire, requêtes lentes et mesures TTFB, FCP, LCP, CLS et INP disponibles.
Ouvrez Paramètres > Mode dev pour suspendre temporairement les paramètres de cache. Mode dev est initialement inactif, sauvegarde la configuration précédente et la restaure à la désactivation ou à l'expiration. Mode debug employé est initialement désactivé et active les sorties de développement PrestaShop uniquement pour les employés reconnus disposant du cookie de débogage validé du module.
Dans Paramètres > Débogage, Superposition de débogage, Activer le panneau de débogage et Panneau du profileur sont désactivés par défaut. Adresses IP autorisées et ID des employés autorisés sont initialement vides. Profileur : employés uniquement est activé par défaut. Limitez l'accès aux diagnostics pendant les tests et désactivez-les ensuite.
Des fichiers optionnels du profileur existent dans optional-overrides/classes/Hook.php et optional-overrides/classes/db/Db.php. Utilisez le processus sécurisé d'installation des overrides du profileur pour vérifier les overrides existants. Effacez l'état des classes/caches PrestaShop selon ses instructions. N'écrasez pas d'autres overrides par une copie inconditionnelle. Retirez les overrides optionnels du profileur par le même processus lorsqu'ils deviennent inutiles.
Après chaque changement de configuration, vérifiez accueil, liste, produit, panier et commande, puis les en-têtes de cache et raisons de contournement dans des sessions client distinctes. Les hooks du catalogue, stock, prix et contenu invalident les tags de cache pris en charge, mais les modifications de thème, intégration et règles CDN peuvent nécessiter un vidage explicite.
Dépanner et désinstaller
Si l'adaptateur diffère de votre choix, examinez la disponibilité du backend et la résolution du point de connexion Redis. Si une page contourne le cache, lisez sa raison de diagnostic avant d'augmenter les limites ou de modifier la politique de cookies. Pour du HTML périmé, vérifiez séparément l'origine et l'Edge et confirmez la fin de l'invalidation.
Si le regroupement, le report ou une modification CSS casse un composant, désactivez le paramètre concerné, videz ses fichiers générés ou son cache et retestez. Pour le CSS généré, examinez l'état et le journal du worker. Pour les erreurs d'images, vérifiez les encodeurs et droits d'écriture. Pour un préchauffage en attente, examinez exécuteur, interrupteur de fonction, charge et budgets.
Avant de désinstaller, retirez les overrides optionnels du profileur installés et examinez les règles CDN actives. Désactivez ou retirez les règles Edge du module via le processus CDN pour éviter que la zone continue à cacher des routes privées sans la protection d'origine prévue. Sauvegardez la configuration et les données générées nécessaires.
La désinstallation retire tâches planifiées, amorçage du débogage employé, classe de cache Redis installée, menus et tables du module. Vérifiez ensuite la configuration du cache du cœur PrestaShop et toute configuration CDN externe ; ne supposez pas que Module Manager annule toute configuration distante.
Compatibilité
Nécessite PrestaShop 1.6.1 ou ultérieur et PHP 7.1 ou ultérieur.
Questions
Pas encore de questions sur ce module
Posez vos questions sur l'installation, la compatibilité ou la configuration. Les réponses apparaissent ici.
Problèmes connus
27
Les pages en cache ne restent pas distinctes à pleine capacité
Les pages supprimées occupent encore le cache
Le vidage du cache peut laisser du contenu régénéré obsolète
Le carrousel du pied de page échoue si son script de démarrage est différé
Des pages de catalogue absentes reçoivent une politique de cache partagé
Des pages incomplètes entrent dans le cache de pages
Google One Tap empêche la mise en cache de pages publiques
Les visiteurs anonymes restent hors cache après avoir vidé leur panier
Les scripts regroupés différés ne s'initialisent pas
La page de gestion des ressources ne s'ouvre pas
La redirection vers la connexion du back-office échoue sous PrestaShop 9
Le vidage ciblé du cache ne retrouve pas les produits sélectionnés
Les données manquantes en cache affectent les prix de groupe
Les moyennes de performance des visiteurs sont trompeuses
Les pages filtrées du catalogue affichent un autre résultat
Les commandes chargées dynamiquement perdent leur style
La lightbox des images de contenu ne s'ouvre pas rapidement
Le diaporama principal de l'accueil démarre trop tard
Des variantes d'image modernes manquent ou sont obsolètes
Le vidage du cache ignore des pages traduites du catalogue
Renforcement de la sécurité
La gestion du cache ne s'ouvre pas ou ne supprime pas les entrées
Le contenu des paniers anonymes est perdu avec le cache de pages
Les menus déroulants s'affichent brièvement ouverts au chargement
Les aperçus signés affichent le contenu public en cache
L'optimisation des images différées endommage les scripts
Les boutons de paiement express ne fonctionnent plus
Demandes de fonctionnalités
17
Implémenté
Préchauffage planifié des caches d’origine et Cloudflare
Cache de pages complètes Cloudflare
Génération des styles critiques
Images AVIF et ressources différées
Préchargement de navigation
Conservation des ressources générées
Mises à jour du module en un clic
Instant Navigation et indications précoces de ressources
Préchauffage automatique du cache
Mise en cache des pages de contenu
Exceptions aux ressources différées
Expiration du cache selon les publications programmées
Cache de pages publiques pour le personnel
Préchauffage du cache priorisé par les données
Diagnostic des absences du cache
Protection contre la charge de rendu des pages
Préchargement facultatif des données de page
Journal des modifications
v1.5.152026-05-27
- AddedFinalize performance endpoint SEO cleanup
- AddedRetain generated assets across cache clears
- AddedFlip CDN cache from whitelist to blacklist — cache all pages by default
- AddedHover prefetch for perceived-instant navigation
- AddedStrip tracking query params (srsltid, fbclid, gclid) to prevent CDN cache fragmentation
- Addedcomplete FR/DE/ES/IT/PL translations
- ImprovedDelay full listing stylesheet load
- ImprovedInline critical listing render assets
- ImprovedServe compact category intro images
- FixedKeep listing image optimization theme-safe
- FixedMigrate module state to MPR config
- FixedPurge localized catalog urls
- FixedCache knowledge base pages at edge
Versions précédentes
v1.3.02026-04-20
- AddedOrganize config form via getTabsDefinition() and adopt masked_key
- AddedFix CDN cache bypass for pages with session init during rendering
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedadmin list columns with visual badge indicators and multiselect filters
- FixedAddLazyLoading regex no longer corrupts inline script blocks
- FixedStop stripping checkout JS on pages with express checkout buttons
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.1.02026-03-12
- Addedlazy-loading fallback polyfill for Safari 14 and older iOS devices
- AddedCSS/JS minification toggle per asset type (theme / module)
- ImprovedRedis connection pooling — module reuses existing PS Redis instance
- FixedOPcache invalidation race condition after module config save
v1.0.02026-02-20
- Initialrelease: comprehensive performance suite for PrestaShop
- InitialRedis full-page caching with automatic tag-based invalidation
- InitialNative image optimisation pipeline with WebP output
- InitialCSS/JS minification and CDN origin rewrite
- InitialCompatible with PS 1.7.x and PS 8.x
v1.2.02026-01-14
- AddedPS 9 / Hummingbird theme compatibility and Symfony cache layer hooks
- Addedper-route Redis cache TTL override for high-churn category pages
- ImprovedWebP conversion quality slider in back-office image settings
- Optimized DB query cache: deduplicated redundant JOIN patterns in heavy-load scenarios
- FixedCDN rewrite not applying to srcset attributes in product gallery
Demo
Testez le module complet avant d'acheter
Achetez la licence plus tard et gardez vos réglages.
- Votre démo de 30 jours Testez-le sur votre propre boutique pendant 30 jours à partir de la première installation.
- Boutique de démo prête Découvrez une boutique de démo prête dans votre navigateur.
- Sans inscription Ni compte, ni e-mail, ni domaine de boutique requis.
En téléchargeant, vous acceptez les conditions de la démo et la politique de confidentialité.
En ouvrant cette démo, vous acceptez les conditions de la démo et la politique de confidentialité.