WP Rescue

Disabilitare i Frammenti AJAX WooCommerce e Velocizzare il Checkout

disabilitare frammenti ajax woocommerce per velocizzare checkout

Disabilitare i Frammenti AJAX WooCommerce e Velocizzare il Checkout

Hai un sito WooCommerce e il checkout è diventato lentissimo? Magari hai notato che, dopo aver aggiunto prodotti al carrello, il tempo di caricamento aumenta in modo fastidioso, soprattutto nella fase finale della vendita. Uno dei responsabili più comuni di questo problema sono proprio i frammenti AJAX WooCommerce: una funzionalità pensata per aggiornare dinamicamente il carrello nel menu, ma che spesso si trasforma in un vero collo di bottiglia per la velocità del tuo shop.

In questa guida ti spiego cosa sono questi frammenti, perché possono rallentare le conversioni e, soprattutto, come disabilitare i frammenti AJAX WooCommerce senza compromettere la funzionalità del tuo negozio. Ti guiderò passo-passo tra codice, plugin e best practice che utilizzo quotidianamente nei progetti dei clienti G Tech Group. Alla fine saprai esattamente come rendere più veloce il checkout e migliorare l’esperienza dei tuoi utenti.

Cosa Sono i Frammenti AJAX di WooCommerce (e Perché Rallentano)

Prima di mettere mano al codice, è fondamentale capire cos’è esattamente questa funzione. I cosiddetti “frammenti AJAX” sono piccole parti di HTML generate via JavaScript che aggiornano in automatico il contenuto del carrello nel menu (di solito in alto a destra), ogni volta che aggiungi o togli un prodotto dal carrello.

WooCommerce lo fa tramite la funzione woocommerce_add_to_cart_fragments. In pratica: ogni interazione col carrello scatena una chiamata AJAX al server, che restituisce gli aggiornamenti da mostrare all’utente. Questo meccanismo, se da un lato migliora la dinamicità dell’interfaccia, dall’altro può pesare molto sulle performance:

I segnali che indicano un problema? Tempi lunghi dopo aver cliccato “Aggiungi al carrello”, lentezza durante l’aggiornamento del mini-carrello o addirittura errori 503/504 nelle ore di punta. Se gestisci molti prodotti o hai tanto traffico simultaneo lo noterai subito.

Sintomi Comuni: Quando Disabilitare i Frammenti AJAX?

Non tutti gli shop traggono vantaggio dalla disattivazione: nei negozi con pochi prodotti e poco traffico spesso l’impatto è minimo. Ma se vedi sintomi come questi, è ora di agire:

  1. Checkout lento: Il caricamento della pagina finale d’acquisto impiega più di 3-4 secondi anche con cache attiva.
  2. Aggiunta/rimozione prodotti dal carrello lenta: Dopo aver cliccato ci sono attese anomale prima dell’aggiornamento visivo.
  3. Browser bloccati o animazioni a scatti: Soprattutto su dispositivi mobili o browser datati.
  4. Errori intermittenti su /wc-ajax/get_refreshed_fragments/: Li puoi monitorare tramite la console sviluppatori (F12 → tab Network).
  5. Tanti script JS attivi contemporaneamente: Con temi premium avanzati o plugin per filtri/prodotti variabili la pressione aumenta ancora.

Basta un piccolo test: apri Chrome DevTools (F12), aggiorna una pagina prodotto e osserva quante chiamate verso /wc-ajax/ compaiono nella scheda Network – se vedi numerosi tentativi o latenze sopra a 300ms, sei nel caso giusto per intervenire!

Procedura Rapida: Disabilitare i Frammenti AJAX via Codice PHP

Ecco come puoi eliminare velocemente i famigerati frammenti AJAX dal tuo shop. Prima di tutto: fai sempre un backup del file functions.php o lavora via plugin appositi per snippet personalizzati!

  1. Apri il file /wp-content/themes/tuo-tema/functions.php con un editor di testo oppure usa un plugin tipo “Code Snippets” se preferisci non toccare direttamente i file core.
  2. Copia/incolla questo codice PHP alla fine del file (ma prima della chiusura ?> se presente):
    • // Disattiva frammenti AJAX WooCommerce
      function gtechgroup_remove_cart_fragments() {
      unregister_hook(‘woocommerce_add_to_cart_fragments’, ‘WC_AJAX::get_refreshed_fragments’);
      unregister_hook(‘wp_ajax_woocommerce_get_refreshed_fragments’, ‘WC_AJAX::get_refreshed_fragments’);
      unregister_hook(‘wp_ajax_nopriv_woocommerce_get_refreshed_fragments’, ‘WC_AJAX::get_refreshed_fragments’);
      unregister_hook(‘woocommerce_cart_hash’, ‘__return_false’);
      unregister_hook(‘woocommerce_get_refreshed_fragments’, ‘__return_false’);
      unregister_hook(‘woocommerce_add_to_cart_fragment’, ‘__return_false’);
      unregister_hook(‘init’, ‘gtechgroup_remove_cart_fragments’);
      }
  3. Dopo aver salvato le modifiche, svuota tutte le cache (plugin + server) e verifica che:
    • L’aggiunta al carrello funzioni ancora correttamente.
    • I tempi su /wc-ajax/get_refreshed_fragments nelle DevTools siano azzerati (ovvero nessuna chiamata in corso).

NOTA: Alcuni temi premium usano metodi personalizzati: se non vedi cambiamenti ripeti la procedura nel functions.php del child theme oppure verifica se c’è uno specifico hook custom da rimuovere (consulta sempre la documentazione del tema).

Soluzione Alternativa: Plugin Dedicati per Gestire i Frammenti AJAX

Non ami mettere mano al codice? Nessun problema: esistono plugin testati che permettono di disabilitare facilmente i frammenti AJAX WooCommerce, anche senza alcuna conoscenza tecnica avanzata. Ecco alcune opzioni affidabili:

  1. Cerca il plugin desiderato in Dashboard > Plugin > Aggiungi Nuovo.
  2. Clicca su “Installa Ora” poi “Attiva”.
  3. Dopo l’attivazione vai nella sua pagina impostazioni e spunta l’opzione correlata ai cart fragments.
  4. Svuota cache e verifica da utente guest se il problema è sparito sia su desktop sia su mobile.
Persona che digita codice su un laptop con interfaccia di programmazione visibile, ambiente di lavoro con pianta e tazza di caffè

Cosa Cambia Dopo la Disattivazione dei Frammenti? Impatti su Carrello ed Esperienza Utente

A livello pratico, una volta rimossi i frammenti AJAX potresti notare alcuni piccoli cambiamenti nell’esperienza utente:

L’effetto positivo invece è immediatamente percepibile:

Nella mia esperienza diretta su shop medio-grandi ho visto miglioramenti tra l’8% e il 25% nei tempi medi di caricamento pagina solo eliminando questa singola funzione inutile!

Casi Speciali: Temi Premium o Plugin Avanzati Che Usano Ajax Personalizzato?

Sui siti professionali capita spesso che certi temi premium (ad esempio WoodMart, Flatsome, Shopkeeper) implementino logiche proprie per minicarrelli sticky/fissi via JavaScript o soluzioni alternative a quelle base di WooCommerce. In questi casi non basta togliere gli hook standard – serve identificare eventuale codice custom collegato ai frammenti cart!

  1. Cerca nel pannello Tema delle impostazioni relative ad “Ajax Cart Update”, “Live Cart”, “Header Cart Refresh”: spesso puoi semplicemente disabilitare queste feature con uno switch dedicato.
    Esempio WoodMart:
    Basta andare su WoodMart > Theme Settings > Shop > Ajax Add to Cart – togli flag da tutte le opzioni collegate ai fragment refresh!
  2. Dai uno sguardo al file JS personalizzato incluso dal tema – cerca funzioni legate a fetch/ajax o eventi click sul mini-carrello.
    In caso trovi riferimenti come wcFragments.refresh(), commentalo oppure rivolgiti allo sviluppatore del tema per sapere quale metodo usare senza rompere altre funzioni core.

Migliori Pratiche Dopo Aver Disabilitato i Frammenti AJAX WooCommerce

Dopo aver completato le modifiche principali non dimenticare queste azioni fondamentali per evitare effetti collaterali:

  1. Esegui test incrociati come utente anonimo sia da desktop che mobile aprendo una sessione privata/incognito – aggiungi/rimuovi prodotti dal carrello ed entra nella pagina Checkout verificando stabilità/fluidità dell’esperienza d’acquisto;
  2. Mantieni sempre aggiornata all’ultima versione stabile sia WordPress (minimo 6.x), sia WooCommerce (minimo 7.x) sia PHP (consigliato almeno 8.0); issue note sui fragment sono risolte solo nelle versioni recentissime;
  3. Dopo ogni cambiamento svuota completamente tutte le cache lato plugin (WP Rocket/W3 Total Cache/SG Optimizer) ed eventualmente lato server/cloudflare/CDN;

E se qualcosa va storto?

Gianluca Gentile

Je m'appelle Gianluca Gentile, diplômé en 1991. J'ai toujours été animé d'une passion sans bornes pour les technologies de l'information. L'informatique et le web sont devenus mes compagnons inséparables. En 2012, j'ai donc décidé de faire de mes aptitudes et de mes compétences un "métier". Grâce à mon expérience et à mon professionnalisme, je m'occupe de la restructuration et de la construction de l'image d'une entreprise à partir de zéro. Mes tâches consistent à gérer toutes les étapes du processus créatif, à prendre soin de tous les aspects des campagnes publicitaires dans les différents médias.

Quitter la version mobile