DataFirefly Speed Pack — Documentation
Installer, configurer et exploiter le cache page, le Critical CSS et l'optimisation avancée de Speed Pack sur PrestaShop 8 et 9.
DataFirefly Speed Pack regroupe en un seul module le cache page complet, le Critical CSS, la minification et la combinaison des actifs, le Delay JS, le lazy loading natif, les resource hints, la réécriture CDN, les directives serveur et le nettoyage de la base de données. Ce guide couvre l’installation, la prise en main et chaque onglet de configuration.
Prérequis et compatibilité
- PrestaShop 8.0 à 9.x
- PHP 7.2 à 8.3
- Accès en écriture au dossier de cache et, pour les directives serveur, au fichier htaccess racine
- Multiboutique et multilingue pris en charge
Speed Pack est complémentaire des modules DataFirefly Core Web Vitals et WebP AVIF Pro : il ne duplique ni la conversion d’images, ni les optimisations déjà fournies par ces modules.
Installation
- Téléversez l’archive depuis Modules > Gestionnaire de modules > Téléverser un module, ou copiez le dossier
datafireflyspeedpackdans le répertoiremodules/. - Cliquez sur Installer.
- Ouvrez la configuration du module. Un jeton de préchargement est généré automatiquement et affiché dans l’onglet Tableau de bord.
Prise en main rapide
Pour un démarrage sûr, activez les options dans cet ordre et vérifiez le rendu à chaque étape :
- Activez uniquement le Cache page. Naviguez sur une page de catégorie en navigation privée : le premier chargement renvoie l’en-tête
X-DfSpeedPack-Cache: MISS, le rechargement renvoieHIT. - Activez la minification HTML/CSS/JS et le defer.
- Activez le lazy load des images (en protégeant l’image LCP, voir plus bas).
- Activez le Critical CSS puis le CSS asynchrone.
- Activez le Delay JS.
- En dernier, et seulement après vérification visuelle, activez la combinaison CSS/JS.
Dans Paramètres avancés > Performances, désactivez l’optimisation CSS/JS native (CCC) et laissez Speed Pack gérer la minification et la combinaison. Le module détecte ce conflit et l’affiche dans le Tableau de bord.
Cache page
Le cache page sert le HTML mis en cache très tôt, via le hook actionDispatcherBefore, avant l’instanciation du contrôleur et les requêtes produits. La clé de cache varie par boutique, langue, devise et appareil.
Périmètre
Seules les pages d’invités au panier vide sont mises en cache. La détection du client connecté et du panier se fait au plus tôt via le cookie. Aucune page de client connecté n’est jamais servie depuis le cache.
Contrôleurs cachables
La liste blanche des contrôleurs (un par ligne) détermine les pages éligibles : par exemple index, category, product, cms, manufacturer. Retirez un contrôleur pour l’exclure totalement du cache.
Exclusions
- URLs : sous-chaînes, une par ligne.
- Cookies : la présence d’un de ces cookies désactive la mise en cache.
- User-Agents : agents exclus.
- Paramètres d’URL ignorés : les paramètres de tracking (utm, fbclid, gclid…) sont retirés de la clé pour éviter la fragmentation du cache.
Durée de vie et invalidation
La durée de vie est configurable (0 = jusqu’à purge manuelle). L’invalidation est automatique à chaque modification de produit, catégorie, page CMS, fabricant, fournisseur ou stock. Vous pouvez aussi vider le cache à tout moment depuis le bouton dédié.
CSS
- Minification du CSS inline et combiné.
- Combinaison des feuilles locales en un fichier unique, avec réécriture des chemins relatifs dans les règles url().
- CSS asynchrone : les feuilles sont chargées via preload puis onload pour éliminer le CSS bloquant.
Critical CSS
Collez votre CSS above-the-fold par type de page dans les champs dédiés. Il est injecté inline dans l’en-tête, tandis que le reste est chargé en asynchrone. Le champ * sert de repli pour toutes les pages sans règle spécifique.
Activez le CSS asynchrone avec le Critical CSS pour éviter tout effet de page non stylée (FOUC).
JavaScript
- Minification du JS inline et combiné.
- Combinaison des fichiers JS locaux.
- Defer automatique des scripts.
Delay JS
Le Delay JS reporte l’exécution des scripts jusqu’à la première interaction de l’utilisateur (scroll, clic, touche, mouvement de souris ou toucher), avec un repli temporisé. C’est le gain le plus important sur le TBT et le score mobile.
- Inclure uniquement : si renseigné, seuls les scripts contenant ces mots-clés sont retardés.
- Exclure : mots-clés des scripts à ne jamais retarder (ex. jquery, core).
- Ajoutez l’attribut
data-df-nodelaysur une balise script pour l’exclure individuellement.
Médias
Le lazy loading natif ajoute les attributs loading=lazy et decoding=async aux images, et loading=lazy aux iframes.
Protégez votre image LCP (visuel hero, première image visible) en lui ajoutant l’attribut data-no-lazy ou en l’ajoutant aux exclusions. Sinon le lazy load peut dégrader le LCP.
Resource hints
- Preconnect et DNS-prefetch : une URL par ligne, pour les domaines tiers (polices, analytics, CDN).
- Preload : au format
url|type(ex./img/hero.webp|image). Types possibles : image, font, style, script. Préchargez votre image LCP et vos polices critiques. - font-display swap : injecté dans les règles de polices inline pour éviter le texte invisible.
CDN
La réécriture CDN remplace l’hôte local des actifs statiques par votre domaine CDN. Renseignez l’URL du CDN, puis les motifs (expressions régulières) inclus et exclus, une par ligne. Seuls les actifs locaux correspondant aux motifs inclus sont réécrits.
Serveur (htaccess)
Speed Pack peut écrire des directives serveur entre des marqueurs dédiés dans le fichier htaccess racine :
- Compression GZIP / Brotli
- Cache navigateur des actifs (un an, immutable)
- Connection Keep-Alive
Les directives sont retirées automatiquement à la désinstallation. Si le fichier n’est pas accessible en écriture, un avertissement s’affiche.
Si votre serveur active déjà la compression (par exemple via la configuration du serveur web), il est inutile de la dupliquer ici.
Base de données
Le nettoyage supprime les paniers abandonnés (sans commande, au-delà du nombre de jours configuré) et les lignes orphelines associées, les connexions et invités anciens, ainsi que les statistiques de recherche et logs anciens.
Les commandes ne sont jamais touchées. Réalisez néanmoins une sauvegarde de la base avant le premier nettoyage.
Préchargement du cache
Le préchargement (warmer) collecte les URLs depuis votre sitemap puis préchauffe le cache, afin que vos visiteurs reçoivent toujours une page en HIT.
Depuis le back-office
Onglet Tableau de bord : cliquez sur Collecter les URLs puis sur Précharger. Une barre de progression suit l’avancement par lots.
Par tâche CRON
Automatisez la collecte et le préchargement après chaque purge nocturne. Le jeton est affiché dans le Tableau de bord.
curl -s "https://votre-boutique/module/datafireflyspeedpack/preload?action=collect&token=VOTRE_TOKEN"
curl -s "https://votre-boutique/module/datafireflyspeedpack/preload?action=warm&token=VOTRE_TOKEN"
Attributs de contrôle dans le thème
data-no-lazy— désactive le lazy load sur une image ou un iframe (image LCP).data-df-nodelay— exclut une balise script du Delay JS.data-df-nodefer— exclut une balise script du defer.data-df-nooptim— exclut un bloc ou un lien de la minification et de la combinaison.
Import / Export des réglages
Depuis l’onglet Avancé, exportez l’ensemble des réglages au format JSON pour les répliquer sur une autre boutique, ou importez un fichier existant.
Dépannage
Une page reste en MISS
Vérifiez que vous naviguez en invité (déconnecté, panier vide), que le contrôleur est dans la liste blanche, que l’URL n’est pas exclue et qu’aucun cookie d’exclusion n’est présent. Les employés connectés au back-office ne reçoivent jamais de page cachée.
Un affichage casse après activation de la combinaison
Désactivez la combinaison CSS/JS, ou ajoutez le fichier fautif aux exclusions correspondantes. La combinaison est volontairement désactivée par défaut.
Texte non stylé au chargement (FOUC)
Activez ou complétez le Critical CSS de la page concernée, et assurez-vous que le CSS asynchrone est activé.
Un script ne fonctionne plus avec le Delay JS
Ajoutez son mot-clé à la liste d’exclusion du Delay JS, ou l’attribut data-df-nodelay sur la balise.
Désinstallation
La désinstallation retire les directives htaccess, vide les caches et supprime les réglages et l’onglet d’administration du module.