Désactiver Cart Fragments sur WooCommerce : guide complet
Désactiver Cart Fragments sur WooCommerce : guide complet
Le problème
wc-cart-fragments.js est un script chargé par WooCommerce sur chaque page de votre site. Son rôle : mettre à jour le compteur du mini-panier en temps réel via une requête AJAX vers /?wc-ajax=get_refreshed_fragments.
Concrètement, à chaque chargement de page :
- Un fichier JS de ~10 Ko est chargé (+ jQuery en dépendance si pas déjà présent)
- Une requête AJAX est envoyée au serveur
- Le serveur exécute du PHP pour reconstruire le HTML du panier
- La réponse transite par le réseau
Sur un catalogue de 500 produits, ça veut dire que chaque visiteur qui navigue déclenche cette requête même s’il n’a rien dans son panier. Le résultat : un TTFB (Time To First Byte) dégradé et un serveur qui traite des requêtes inutiles.
Mesurer l’impact
Avant de désactiver quoi que ce soit, mesurez. Ouvrez les DevTools de votre navigateur (F12), onglet Network, et filtrez par wc-ajax. Rechargez une page produit. Vous verrez la requête get_refreshed_fragments avec son temps de réponse.
Sur un hébergement mutualisé classique, cette requête prend entre 200ms et 800ms. Sur un serveur bien configuré avec Object Cache, plutôt 50-150ms. Dans tous les cas, c’est une requête qui n’a aucune raison d’exister sur la majorité des pages.
Solution 1 : Désactiver via PHP (recommandé)
La méthode la plus propre. Ajoutez ce code dans le functions.php de votre thème enfant ou dans un snippet (Code Snippets, WPCodeBox, etc.) :
add_action( 'wp_enqueue_scripts', function() {
if ( is_cart() || is_checkout() ) {
return; // On garde Cart Fragments sur le panier et le checkout
}
wp_dequeue_script( 'wc-cart-fragments' );
}, 999 );
Ce code désactive le script sur toutes les pages sauf le panier et le checkout, où la mise à jour en temps réel est utile.
Variante : désactiver partout
Si votre thème n’utilise pas de mini-panier AJAX (ou si vous utilisez les Checkout Blocs) :
add_action( 'wp_enqueue_scripts', function() {
wp_dequeue_script( 'wc-cart-fragments' );
}, 999 );
Solution 2 : Via Perfmatters (Script Manager)
Si vous utilisez Perfmatters, vous pouvez désactiver wc-cart-fragments par type de page depuis l’interface Script Manager :
- Activez le Script Manager dans Perfmatters → Settings
- Naviguez vers une page produit
- Ouvrez le Script Manager (barre admin)
- Trouvez
wc-cart-fragmentsdans la section WooCommerce - Désactivez-le partout sauf
/cart/et/checkout/
L’avantage : pas de code, gestion visuelle, réversible en un clic.
Solution 3 : Via WP Rocket
WP Rocket propose une option native :
- WP Rocket → Paramètres → Add-ons
- Activez “WooCommerce”
- L’option “Désactiver Cart Fragments” apparaît
Attention : WP Rocket le désactive partout, y compris sur le panier. Si votre mini-panier ne se met plus à jour, vous saurez pourquoi.
Ce qu’il faut vérifier après
- Le mini-panier : ajoutez un produit, naviguez sur une autre page. Le compteur se met-il à jour ? Si non, c’est normal — il se mettra à jour au prochain rechargement de page.
- Le panier : vérifiez que la page
/cart/fonctionne toujours (mise à jour des quantités, suppression de produits). - Le checkout : passez une commande test complète.
- Lighthouse : relancez un audit. Vous devriez voir une amélioration sur le Total Blocking Time (TBT) et potentiellement le LCP.
Impact réel
Sur les boutiques que j’ai optimisées, désactiver Cart Fragments réduit le nombre de requêtes de 1 par page et enlève entre 10 et 50 Ko de JS (selon si jQuery est utilisé ailleurs). Sur un hébergement mutualisé, c’est souvent 200-500ms gagnées sur le TTFB des pages produit.
C’est une optimisation simple, sans risque si on la fait proprement, et qui a un impact mesurable immédiat.
Besoin d’un audit complet de votre boutique WooCommerce ? Demandez un audit gratuit.
Besoin d'un audit de votre boutique WooCommerce ?
Je vous envoie un diagnostic personnalisé avec les points à améliorer en priorité. Gratuit, sans engagement.