Optimisation WooCommerce : ce qui ralentit vraiment votre boutique.

Le problème n'est presque jamais les images. C'est le JavaScript inutile, les requêtes base de données qui s'empilent, et un checkout qui décourage vos clients. Voici comment corriger ça.

Les Core Web Vitals, en clair.

Google mesure trois choses sur votre site : la vitesse d'affichage (LCP), la stabilité visuelle (CLS), et la réactivité aux clics (INP). Ces trois métriques influencent votre référencement ET l'expérience de vos clients.

LCP
Largest Contentful Paint

Le temps avant que le contenu principal soit visible. Cible : moins de 2,5 secondes. Sur un WooCommerce mal configuré, c'est souvent 4 à 6 secondes sur mobile.

CLS
Cumulative Layout Shift

Est-ce que la page "saute" pendant le chargement ? Des images sans dimensions, des polices qui se chargent tard, des bannières qui apparaissent - tout ça fait fuir les visiteurs. Cible : 0.

INP
Interaction to Next Paint

Quand un visiteur clique sur "Ajouter au panier", combien de temps avant que quelque chose se passe ? Cible : moins de 200ms. Les scripts lourds bloquent cette réactivité.

Cart fragments : le script qui plombe toutes les boutiques WooCommerce.

wc-cart-fragments.js est chargé par WooCommerce sur chaque page de votre site. À chaque chargement, il envoie une requête AJAX vers admin-ajax.php pour mettre à jour l'icône du panier. Même si le panier est vide. Même sur votre page "À propos".

Ce que ça coûte :

  • Une requête HTTP non cachable par page vue
  • Du temps serveur consommé pour rien (PHP workers mobilisés)
  • Un TTFB gonflé artificiellement
  • Sur un site à 10 000 visites/mois : ~300 000 requêtes inutiles par mois

La solution :

Désactiver cart fragments sur les pages non-panier. Le panier se met à jour uniquement quand c'est nécessaire. Le gain est immédiat et mesurable.

cart-fragments.php
add_action('wp_enqueue_scripts', function() {
    if ( !is_cart() && !is_checkout() ) {
        wp_dequeue_script('wc-cart-fragments');
    }
});

22 fichiers CSS, 43 scripts JavaScript - sur une seule page.

C'est ce qu'on trouve sur un WooCommerce typique. Chaque plugin ajoute ses propres fichiers, souvent sur toutes les pages, même quand ils ne servent pas. Un slider sur la home charge son JS sur la page produit. Le formulaire de contact charge son CSS sur le checkout.

Les coupables habituels :

  • Page builders (Elementor, Divi) : 200-400 Ko de CSS/JS sur chaque page
  • Plugins de réseaux sociaux : scripts externes qui bloquent le rendu
  • Google Fonts : chaque famille de police = une requête bloquante
  • WooCommerce lui-même : CSS et JS chargés partout, y compris sur les pages non-shop

La solution :

Identifier ce qui se charge sur chaque page et supprimer ce qui ne sert pas. Outil : Perfmatters avec son Script Manager - il permet de désactiver CSS/JS page par page, par type de contenu, par device. C'est chirurgical.

Votre base de données grossit silencieusement.

WordPress stocke tout dans wp_options, wp_postmeta, et wp_posts. Avec le temps, ça s'accumule : révisions d'articles, transients expirés, options de plugins désinstallés, et surtout les fameuses options autoloadées - chargées à chaque requête, même quand elles ne servent plus.

Les symptômes :

  • TTFB qui augmente progressivement au fil des mois
  • Back-office WooCommerce de plus en plus lent
  • Requêtes de recherche produit qui timeout

Ce que je vérifie :

  • Le poids des options autoloadées (souvent > 1 Mo)
  • Les requêtes lentes via le MySQL Slow Query Log
  • L'état des index sur wp_postmeta
  • Les transients expirés qui s'accumulent

Les outils :

Query Monitor

Identifier les requêtes lentes et le plugin responsable

AAA Option Optimizer

Nettoyer les options autoloadées

WP CLI

wp db query pour analyser la base directement

-100ms

de latence = +8% de conversions. Chaque milliseconde compte sur un site e-commerce. C'est mesurable, et c'est mesurable en euros.

Le cache ne résout pas tout - mais bien configuré, il change tout.

Il y a trois niveaux de cache à mettre en place, dans l'ordre :

Niveau 1

Object Cache (Redis)

Le plus impactant pour WooCommerce. Redis stocke en mémoire vive les résultats de requêtes base de données. Au lieu de recalculer les mêmes données à chaque page vue, WordPress les récupère instantanément. Outil : Object Cache Pro + Redis.

Niveau 2

Page Cache

Stocke la page HTML complète pour la servir sans exécuter PHP. Efficace pour les pages statiques, mais attention aux pages dynamiques (panier, checkout) qui ne doivent pas être cachées. Outil : WP Rocket ou équivalent.

Niveau 3

Edge Cache (CDN)

Le cache est distribué sur des serveurs partout dans le monde. Le visiteur reçoit la page depuis le serveur le plus proche. Outil : Cloudflare APO - conçu spécifiquement pour WordPress.

Le piège classique :

Installer un plugin de cache et considérer que c'est réglé. Un cache mal configuré peut servir une page panier vide à un client qui vient d'ajouter un produit, ou afficher un prix en cache alors que le stock a changé.

Le checkout, c'est là que vous perdez de l'argent.

Le taux moyen d'abandon de panier en e-commerce est de 70% (Baymard Institute, 2024). Les raisons principales : processus trop long, création de compte obligatoire, pas assez de moyens de paiement.

Checkout legacy vs checkout blocs :

Le checkout classique de WooCommerce est un formulaire monolithique qui charge tout en une fois. Le checkout blocs (introduit dans WooCommerce 8.3) est modulaire, plus rapide, et supporte nativement les boutons de paiement express (Apple Pay, Google Pay).

Les gains mesurés :

  • Réduction des abandons : -20 à -35% (Baymard Institute)
  • Temps de chargement checkout : divisé par 2 en moyenne
  • Moins de CSS/JS chargé (le checkout blocs n'embarque que ce dont il a besoin)
En savoir plus sur la migration checkout →

Votre hébergement est-il vraiment rapide ?

"Je suis sur un bon hébergeur" ne suffit pas. Ce qui compte :

  • TTFB sans cache : si votre TTFB dépasse 500ms sans cache activé, le problème est côté serveur
  • PHP workers : combien de requêtes simultanées ? Sur un mutualisé : 2-4. Un WooCommerce à fort trafic en a besoin de 10-20
  • Version PHP : PHP 8.2+ minimum. Chaque version majeure apporte 10-20% de gains
  • Redis disponible : sans Redis, pas d'Object Cache performant
  • Configuration modifiable : pouvez-vous ajuster les limites mémoire, les timeouts, les workers ?

Un hébergement à 5€/mois peut convenir pour un blog. Pour un WooCommerce qui vend, il faut un hébergement qui comprend le e-commerce.

HPOS : le stockage haute performance des commandes.

Depuis WooCommerce 8.2, HPOS (High-Performance Order Storage) est disponible. Au lieu de stocker les commandes dans wp_posts et wp_postmeta (les mêmes tables que les articles de blog), HPOS utilise des tables dédiées et optimisées.

Le résultat :

  • Back-office 30 à 50% plus rapide sur les requêtes commandes
  • Recherche de commandes instantanée, même avec des milliers de commandes
  • Base de données allégée (séparation des données commandes et contenu)

Le problème :

Certains plugins ne sont pas encore compatibles HPOS. La migration nécessite de vérifier chaque plugin, tester en staging, et basculer proprement.

En savoir plus sur la migration HPOS →

Questions fréquentes sur l'optimisation WooCommerce

Pourquoi ma boutique WooCommerce est-elle lente ?

Dans 90% des audits, les mêmes causes reviennent : le script cart-fragments qui interroge le serveur sur chaque page, des dizaines de fichiers CSS et JavaScript chargés partout alors qu'ils ne servent que sur une page, des options autoloadées qui gonflent chaque requête, un hébergement sous-dimensionné et un cache mal configuré. La bonne nouvelle : ces causes se mesurent, se hiérarchisent et se corrigent une par une.

Un plugin de cache suffit-il à accélérer WooCommerce ?

Non. Le cache de page ne s'applique pas au panier, au checkout ni au compte client, précisément les pages qui font vivre votre boutique. Il ne corrige ni les requêtes SQL lentes, ni les scripts tiers, ni un TTFB élevé côté serveur. J'ai détaillé le sujet dans pourquoi les plugins de cache ne suffisent pas.

Qu'est-ce qu'un bon score PageSpeed pour une boutique en ligne ?

Visez d'abord les Core Web Vitals en vert sur données réelles (CrUX) : LCP sous 2,5 s, INP sous 200 ms, CLS sous 0,1. Le score Lighthouse mobile est un indicateur de laboratoire utile mais secondaire : une boutique à 85 avec de vraies données utilisateurs vertes vaut mieux qu'un 100 obtenu en désactivant ce qui fait vendre. Google classe sur les données réelles, pas sur le score.

Combien coûte une optimisation WooCommerce ?

Tout commence par un audit gratuit : vous me donnez l'URL, je vous renvoie un diagnostic priorisé. Ensuite, le budget dépend de la profondeur du chantier : correction des quick wins, refonte du chargement des assets, migration HPOS, configuration Cloudflare... Vous validez chaque étape en connaissant le gain attendu. Pas de forfait opaque : des actions mesurées avant/après.

L'optimisation risque-t-elle de casser mon site ?

Chaque modification est testée en staging avant la production, et les changements sont réversibles : un script désenregistré se réactive en une ligne. Je ne touche ni à votre thème graphique ni à vos fonctionnalités métier. C'est l'inverse d'une approche « plugin d'optimisation magique » qui modifie tout, partout, sans que personne ne sache quoi.

Quels résultats concrets puis-je attendre ?

Sur une boutique jamais optimisée, il est courant de diviser le temps de chargement par deux et de passer les Core Web Vitals au vert. L'impact business suit : chaque 100 ms de gain, c'est environ 1% de conversions en plus (étude Deloitte/Google). Les gains exacts dépendent de votre point de départ, c'est justement ce que l'audit de performance établit.

Optimisez-vous aussi le back-office ?

Oui. Un back-office lent coûte du temps à votre équipe tous les jours : liste de commandes interminable, recherches qui rament, exports qui timeout. Les leviers principaux : migration HPOS, nettoyage des options autoloadées et de la table wp_options, cache objet Redis, et purge des tâches Action Scheduler accumulées.

Travaillez-vous avec les boutiques déjà suivies par une agence ?

Oui, et c'est fréquent. Votre agence gère le design, le contenu et le marketing ; j'interviens uniquement sur la performance, en documentant chaque modification pour que l'agence garde la main. Un regard spécialisé qui complète le généraliste, sans conflit de périmètre.

Votre boutique est concernée par au moins un de ces problèmes.

Demandez un audit gratuit - je vous dis exactement ce qui ralentit votre site et ce que ça vous coûte en ventes.