Résoudre une panne

6 novembre 2026 · 9 min de lecture

WP Rocket WooCommerce : panier vide ou mini-panier figé, comment réparer 🔧

Panier qui se vide, mini-panier figé ou bouton « Ajouter au panier » inactif avec WP Rocket : comment trouver l’option en cause et la corriger pas à pas sans perdre le cache.

Rédigé parl'équipe ACRV

Chariot de supermarché vide garé contre un mur orange, pour illustrer un panier WooCommerce qui se vide à cause de WP Rocket

En bref

Quand le panier WooCommerce se vide, que le mini-panier affiche un mauvais nombre d’articles ou que le bouton « Ajouter au panier » ne réagit plus après l’activation de WP Rocket, la cause la plus fréquente est l’option qui retarde l’exécution du JavaScript, suivie d’une page servie depuis le cache alors qu’elle devrait être dynamique. Le premier geste consiste à ouvrir la page concernée avec ?nowprocket à la fin de l’adresse : si tout fonctionne ainsi, WP Rocket est en cause et une exclusion ciblée suffit le plus souvent.

WP Rocket sait en principe cohabiter avec WooCommerce. Pourtant, en intervention, nous voyons régulièrement des boutiques où ses optimisations se sont mises en travers du parcours d’achat : le site paraît plus rapide, mais il vend moins, et personne ne s’en rend compte pendant plusieurs jours.

Si votre boutique ne prend plus de commandes et que vous préférez confier le diagnostic, notre service de dépannage WooCommerce intervient à distance du lundi au vendredi.


Quels symptômes montrent que WP Rocket gêne WooCommerce ?

Le signe le plus parlant : tout fonctionne quand vous êtes connecté en administrateur, car WP Rocket ne sert pas le cache aux utilisateurs connectés par défaut. Situations typiques :

  • le bouton « Ajouter au panier » ne fait rien au premier clic, ou ne réagit qu’après un mouvement de souris ou un défilement de la page ;
  • sur un produit variable, les listes de taille ou de couleur ne mettent pas à jour le prix, et le bouton reste grisé ;
  • le mini-panier affiche « 0 » alors que la page Panier contient des articles ;
  • le panier se vide quand on change de page ;
  • le volet du panier s’affiche sans mise en forme ;
  • un visiteur voit le panier ou le nom d’un autre client (le cas le plus grave).

Si le panier se vide sans que WP Rocket soit installé, le problème vient d’ailleurs (session, cookies, domaine) : notre fiche panier WooCommerce vide après « Ajouter au panier » et notre guide panier WooCommerce qui ne fonctionne plus couvrent ces autres causes.


Pourquoi WP Rocket casse-t-il le panier WooCommerce ?

WP Rocket casse le panier quand une optimisation empêche le JavaScript de WooCommerce de s’exécuter à temps, ou quand une page propre à chaque visiteur est servie à tous depuis le cache. Les causes, de la plus fréquente à la plus rare :

Le report de l’exécution du JavaScript

L’option « Retarder l’exécution JavaScript » (Delay JavaScript execution, onglet Optimisation des fichiers) attend la première interaction du visiteur pour charger les scripts. Les scripts d’ajout au panier, des variations et du mini-panier sont alors absents tant que la personne n’a rien touché. Vous la reconnaissez au fait que le bouton marche au deuxième clic, ou seulement après un défilement.

Le nettoyage des CSS inutilisés

L’option « Supprimer les CSS inutilisés » (Remove Unused CSS) analyse chaque page et ne garde que les styles qu’elle y trouve. Les éléments qui n’apparaissent qu’après un clic, comme le volet du panier ou les messages, perdent leurs styles : le panier fonctionne, mais s’affiche en vrac.

Un mini-panier mis en cache

Le compteur du panier est rafraîchi par une requête Ajax de WooCommerce, ?wc-ajax=get_refreshed_fragments. Selon la documentation de WP Rocket, l’extension met en cache la réponse de cette requête quand le panier est vide. Si votre thème ou votre en-tête Elementor affiche le panier directement en PHP au lieu de passer par ces fragments, la page en cache garde le compteur figé.

Des pages WooCommerce mal déclarées

WP Rocket exclut automatiquement du cache les pages Panier, Commande et Mon compte, mais uniquement celles qui sont déclarées dans les réglages de WooCommerce, comme le précise sa page dédiée à WooCommerce. Après une refonte ou la création d’une nouvelle page de commande avec un constructeur, la page réellement utilisée n’est souvent plus celle déclarée, et elle part dans le cache.

Un deuxième cache, chez l’hébergeur ou chez Cloudflare

Si l’hébergeur a son propre cache ou que Cloudflare met en cache tout le HTML, les exclusions de WP Rocket ne servent à rien. C’est la cause habituelle du panier d’un client affiché à un autre.


Comment vérifier que WP Rocket est bien en cause ?

Le test le plus rapide consiste à ajouter ?nowprocket à la fin de l’adresse de la page, par exemple https://votre-boutique.fr/produit/t-shirt/?nowprocket. D’après la documentation de WP Rocket, ce paramètre contourne le cache de page et les optimisations des onglets Cache, Préchargement, Médias, Optimisation des fichiers et CDN, mais pas les règles avancées ni les caches de l’hébergeur ou de Cloudflare.

  1. Testez en navigation privée, sans être connecté.
  2. Si le panier fonctionne avec ?nowprocket et pas sans, WP Rocket est en cause : passez à la procédure ci-dessous.
  3. Si le problème persiste avec ?nowprocket, désactivez temporairement WP Rocket. S’il persiste, cherchez du côté de l’hébergeur, de Cloudflare ou d’une autre extension.
  4. Ouvrez les outils de développement (touche F12), onglet Console : une erreur rouge comme jQuery is not defined ou wc_add_to_cart_params is not defined pointe presque toujours vers le report ou la minification du JavaScript (voir aussi notre fiche jQuery is not defined).

Pour savoir si un autre cache s’intercale, regardez les en-têtes HTTP de la page panier depuis un terminal. Un en-tête cf-cache-status: HIT indique que Cloudflare a servi la page depuis son cache (chez certains hébergeurs, c’est x-cache). Une page panier ne doit jamais venir d’un cache.

curl -sI https://votre-boutique.fr/panier/ | grep -iE "cache|age|set-cookie"

Comment réparer WP Rocket et WooCommerce, étape par étape ?

La méthode consiste à isoler l’option fautive et à corriger seulement celle-ci. Avant tout, exportez la configuration de WP Rocket (onglet Outils) et sauvegardez fichiers et base de données, surtout avant d’éditer .htaccess ou wp-config.php.

1. Vider tous les caches

Videz le cache de WP Rocket, puis celui de l’hébergeur et de Cloudflare, et refaites le test. Avec WP-CLI, la ligne de commande de WordPress, vous pouvez aussi supprimer les transients, ces données temporaires stockées dans la base :

wp transient delete --all

2. Vérifier les pages déclarées dans WooCommerce

Allez dans WooCommerce, Réglages, onglet Avancé, et contrôlez que les champs de la page panier, de la page de commande et de la page Mon compte pointent vers les pages réellement utilisées par la boutique. Corrigez, enregistrez, videz le cache. En ligne de commande, comparez les identifiants enregistrés avec ceux de vos pages :

wp option get woocommerce_cart_page_id
wp option get woocommerce_checkout_page_id
wp option get woocommerce_myaccount_page_id
wp post list --post_type=page --fields=ID,post_title,post_name

3. Isoler l’option fautive

Dans l’onglet Optimisation des fichiers, désactivez une option à la fois (report ou chargement différé du JavaScript, minification, CSS inutilisés), videz le cache et refaites le parcours d’achat complet en navigation privée. La procédure officielle de WP Rocket propose le même raisonnement pour le report du JavaScript. C’est l’option fautive qu’il faut régler, pas l’extension entière.

4. Exclure les scripts WooCommerce du report du JavaScript

Si le report du JavaScript est en cause, gardez l’option active et ajoutez des exclusions dans la zone des fichiers JavaScript exclus (Excluded JavaScript Files), une par ligne. Une partie du chemin suffit ; ces lignes couvrent la plupart des cas :

/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js
js-cookie
woocommerce/assets/js/frontend/add-to-cart
woocommerce/assets/js/frontend/add-to-cart-variation
woocommerce/assets/js/frontend/cart-fragments
wc_add_to_cart_params
wc_cart_fragments_params

Les deux dernières lignes visent les scripts en ligne où WooCommerce transmet ses paramètres. Si votre mini-panier vient du thème ou d’Elementor, ajoutez aussi son fichier JavaScript, repéré dans l’onglet Réseau des outils de développement (filtre « JS »).

5. Empêcher la mise en cache quand le panier contient des articles

Si votre mini-panier est affiché en PHP par le thème, la documentation de WP Rocket recommande d’ajouter le cookie woocommerce_items_in_cart dans le champ des cookies à ne jamais mettre en cache (Never Cache Cookies), dans l’onglet Règles avancées. Un visiteur qui a un article dans son panier reçoit alors des pages générées pour lui.

woocommerce_items_in_cart

Si le compteur reste faux, la petite extension officielle « WP Rocket | Deactivate WooCommerce Refresh Cart Fragments Cache » désactive la mise en cache de la requête get_refreshed_fragments (source).

6. Corriger la suppression des CSS inutilisés

Si c’est cette option qui casse l’affichage du panier, vous avez deux solutions : la désactiver, ou indiquer dans sa liste de CSS à conserver (CSS safelist) les classes des éléments qui apparaissent après un clic, par exemple .widget_shopping_cart, .woocommerce-message ou la classe du volet de panier de votre thème. Relevez ces classes avec l’inspecteur du navigateur (clic droit, Inspecter).

7. Régler le cache de l’hébergeur et de Cloudflare

Excluez de ces caches le panier, la commande, Mon compte et les visiteurs porteurs des cookies woocommerce_items_in_cart, woocommerce_cart_hash ou wp_woocommerce_session_, comme le recommande la documentation de WooCommerce sur les extensions de cache. Refaites ensuite le test curl : plus de HIT sur le panier.

8. Désactiver WP Rocket si la boutique est inutilisable

Pour reprendre les commandes tout de suite, désactivez l’extension en WP-CLI :

wp plugin deactivate wp-rocket

Sinon, renommer le dossier wp-content/plugins/wp-rocket par FTP coupe l’extension, mais laisse des traces. Selon la documentation de WP Rocket, supprimez alors le fichier wp-content/advanced-cache.php, les dossiers wp-content/cache/ et wp-content/wp-rocket-config/, le bloc compris entre # BEGIN WP Rocket et # END WP Rocket dans .htaccess, et passez cette constante à false dans wp-config.php :

define( 'WP_CACHE', false );

Ce que nous voyons le plus souvent

Le plus souvent, le report du JavaScript a été activé pour gagner des points sur PageSpeed Insights, sans tester le tunnel de commande. Les exclusions de l’étape 4 suffisent alors, en gardant l’essentiel du gain de vitesse.

À éviter

Ajouter les pages panier ou commande à la main dans les exclusions sans vérifier les réglages de WooCommerce, cumuler WP Rocket avec une autre extension de cache de pages, ou activer un cache « tout le HTML » chez Cloudflare sur une boutique.


Comment éviter que le problème revienne ?

La meilleure protection est de refaire un parcours d’achat complet après chaque changement de réglage et chaque mise à jour de WP Rocket, de WooCommerce ou du thème :

  • testez en navigation privée, sur ordinateur et sur mobile, jusqu’à l’écran de paiement ;
  • gardez un export de la configuration de WP Rocket qui fonctionne ;
  • testez les mises à jour importantes sur une copie du site (préproduction) ;
  • surveillez le nombre de commandes : une baisse brutale est souvent le premier signe d’un panier cassé.

Si la boutique reste lente malgré WP Rocket, lisez notre guide WooCommerce lent, qui passe en revue les autres causes, et notre article sur l’intérêt de WP Rocket.


Quand faut-il faire appel à un professionnel ?

Faites appel à un professionnel dès qu’un visiteur voit les informations d’un autre client : c’est une fuite de données personnelles. De même si le problème persiste WP Rocket désactivé, ou si vous n’êtes pas à l’aise avec l’édition de .htaccess et de wp-config.php. Notre audit est gratuit, l’intervention est facturée 70 € TTC de l’heure (dès 35 € TTC la demi-heure), et nos tarifs sont détaillés sur la page tarification.

En conclusion :

WP Rocket et WooCommerce fonctionnent bien ensemble, à condition de ne pas retarder les scripts du panier, de déclarer les bonnes pages dans WooCommerce et de ne pas laisser un autre cache servir le panier. Si les commandes ne passent plus et que vous voulez une boutique réparée rapidement, l’équipe DépannageWP s’en occupe à distance : contactez notre service de dépannage WooCommerce, ou consultez nos autres guides pour résoudre une panne.

Un souci sur votre site ?

Nos experts le diagnostiquent gratuitement et vous proposent une intervention rapide.

Blog

Ces articles peuvent aussi vous intéresser

Barrette de mémoire vive en gros plan, pour illustrer la limite de mémoire PHP d'un site WordPress

À la une

L'erreur « Allowed memory size of … bytes exhausted » signale un manque de mémoire PHP. Voici comment relever la limite et trouver ce
Lire l'article
Commerçante souriante sur un escabeau qui accroche une enseigne en bois vierge au-dessus de l’entrée de son café, pour illustrer un header Elementor qui ne s’affiche pas en haut du site

À la une

Header Elementor qui ne s’affiche pas sur le site ? Conditions d’affichage, modèle non publié, mise en page Canevas, cache ou thème : la
Lire l'article
Main qui scanne le code-barres d'un carton rangé sur une étagère de réserve, tablette en main, pour illustrer un stock WooCommerce qui ne se met pas à jour

À la une

Stock WooCommerce qui ne baisse pas après une commande, rupture affichée à tort ou stock négatif : causes, diagnostic pas à pas en WP-CLI
Lire l'article

Étape 1 / 4

Demander un audit gratuit

Quatre questions, moins d’une minute : notre équipe revient vers vous très vite.

Ce site est protégé par reCAPTCHA : les règles de confidentialité et les conditions d'utilisation de Google s'appliquent.