{"id":22500,"date":"2025-11-03T10:07:02","date_gmt":"2025-11-03T10:07:02","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/disabilitare-i-frammenti-ajax-woocommerce-e-velocizzare-il-checkout\/"},"modified":"2025-11-03T10:07:02","modified_gmt":"2025-11-03T10:07:02","slug":"disabilitare-i-frammenti-ajax-woocommerce-e-velocizzare-il-checkout","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/disabilitare-i-frammenti-ajax-woocommerce-e-velocizzare-il-checkout\/","title":{"rendered":"Disabilitare i Frammenti AJAX WooCommerce e Velocizzare il Checkout"},"content":{"rendered":"<h1>Disabilitare i Frammenti AJAX WooCommerce e Velocizzare il Checkout<\/h1>\n<p>Hai un sito WooCommerce e il checkout \u00e8 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\u00f9 comuni di questo problema sono proprio i <strong>frammenti AJAX WooCommerce<\/strong>: una funzionalit\u00e0 pensata per aggiornare dinamicamente il carrello nel menu, ma che spesso si trasforma in un vero collo di bottiglia per la velocit\u00e0 del tuo shop.<\/p>\n<p>In questa guida ti spiego cosa sono questi frammenti, perch\u00e9 possono rallentare le conversioni e, soprattutto, come <strong>disabilitare i frammenti AJAX WooCommerce<\/strong> senza compromettere la funzionalit\u00e0 del tuo negozio. Ti guider\u00f2 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\u00f9 veloce il checkout e migliorare l\u2019esperienza dei tuoi utenti.<\/p>\n<h2>Cosa Sono i Frammenti AJAX di WooCommerce (e Perch\u00e9 Rallentano)<\/h2>\n<p>Prima di mettere mano al codice, \u00e8 fondamentale capire cos\u2019\u00e8 esattamente questa funzione. I cosiddetti &#8220;frammenti AJAX&#8221; 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.<\/p>\n<p>WooCommerce lo fa tramite la funzione <strong>woocommerce_add_to_cart_fragments<\/strong>. In pratica: ogni interazione col carrello scatena una chiamata AJAX al server, che restituisce gli aggiornamenti da mostrare all\u2019utente. Questo meccanismo, se da un lato migliora la dinamicit\u00e0 dell\u2019interfaccia, dall\u2019altro pu\u00f2 pesare molto sulle performance:<\/p>\n<ul>\n<li><strong>Maggiori richieste al server<\/strong>: Ogni azione genera una nuova richiesta HTTP.<\/li>\n<li><strong>Carico extra sul database<\/strong>: Ogni chiamata coinvolge calcoli e query SQL.<\/li>\n<li><strong>Latenza aumentata su hosting condivisi<\/strong>: Su server non performanti i ritardi si accentuano.<\/li>\n<\/ul>\n<p>I segnali che indicano un problema? Tempi lunghi dopo aver cliccato \u201cAggiungi al carrello\u201d, lentezza durante l\u2019aggiornamento del mini-carrello o addirittura errori 503\/504 nelle ore di punta. Se gestisci molti prodotti o hai tanto traffico simultaneo lo noterai subito.<\/p>\n<h2>Sintomi Comuni: Quando Disabilitare i Frammenti AJAX?<\/h2>\n<p>Non tutti gli shop traggono vantaggio dalla disattivazione: nei negozi con pochi prodotti e poco traffico spesso l\u2019impatto \u00e8 minimo. Ma se vedi sintomi come questi, \u00e8 ora di agire:<\/p>\n<ol>\n<li><strong>Checkout lento<\/strong>: Il caricamento della pagina finale d\u2019acquisto impiega pi\u00f9 di 3-4 secondi anche con cache attiva.<\/li>\n<li><strong>Aggiunta\/rimozione prodotti dal carrello lenta<\/strong>: Dopo aver cliccato ci sono attese anomale prima dell\u2019aggiornamento visivo.<\/li>\n<li><strong>Browser bloccati o animazioni a scatti<\/strong>: Soprattutto su dispositivi mobili o browser datati.<\/li>\n<li><strong>Errori intermittenti su \/wc-ajax\/get_refreshed_fragments\/<\/strong>: Li puoi monitorare tramite la console sviluppatori (F12 \u2192 tab Network).<\/li>\n<li><strong>Tanti script JS attivi contemporaneamente<\/strong>: Con temi premium avanzati o plugin per filtri\/prodotti variabili la pressione aumenta ancora.<\/li>\n<\/ol>\n<p>Basta un piccolo test: apri Chrome DevTools (F12), aggiorna una pagina prodotto e osserva quante chiamate verso \/wc-ajax\/ compaiono nella scheda Network \u2013 se vedi numerosi tentativi o latenze sopra a 300ms, sei nel caso giusto per intervenire!<\/p>\n<h2>Procedura Rapida: Disabilitare i Frammenti AJAX via Codice PHP<\/h2>\n<p>Ecco come puoi eliminare velocemente i famigerati frammenti AJAX dal tuo shop. Prima di tutto: <em><strong>fai sempre un backup del file functions.php o lavora via plugin appositi per snippet personalizzati!<\/strong><\/em><\/p>\n<ol>\n<li>Apri il file <strong>\/wp-content\/themes\/tuo-tema\/functions.php<\/strong> con un editor di testo oppure usa un plugin tipo &#8220;Code Snippets&#8221; se preferisci non toccare direttamente i file core.<\/li>\n<li>Copia\/incolla questo codice PHP alla fine del file (ma prima della chiusura ?&gt; se presente):\n<ul>\n<li>\/\/ Disattiva frammenti AJAX WooCommerce<br \/>\nfunction gtechgroup_remove_cart_fragments() {<br \/>\nunregister_hook(&#8216;woocommerce_add_to_cart_fragments&#8217;, &#8216;WC_AJAX::get_refreshed_fragments&#8217;);<br \/>\nunregister_hook(&#8216;wp_ajax_woocommerce_get_refreshed_fragments&#8217;, &#8216;WC_AJAX::get_refreshed_fragments&#8217;);<br \/>\nunregister_hook(&#8216;wp_ajax_nopriv_woocommerce_get_refreshed_fragments&#8217;, &#8216;WC_AJAX::get_refreshed_fragments&#8217;);<br \/>\nunregister_hook(&#8216;woocommerce_cart_hash&#8217;, &#8216;__return_false&#8217;);<br \/>\nunregister_hook(&#8216;woocommerce_get_refreshed_fragments&#8217;, &#8216;__return_false&#8217;);<br \/>\nunregister_hook(&#8216;woocommerce_add_to_cart_fragment&#8217;, &#8216;__return_false&#8217;);<br \/>\nunregister_hook(&#8216;init&#8217;, &#8216;gtechgroup_remove_cart_fragments&#8217;);<br \/>\n}<\/li>\n<\/ul>\n<\/li>\n<li>Dopo aver salvato le modifiche, svuota tutte le cache (plugin + server) e verifica che:\n<ul>\n<li>L\u2019aggiunta al carrello funzioni ancora correttamente.<\/li>\n<li>I tempi su \/wc-ajax\/get_refreshed_fragments nelle DevTools siano azzerati (ovvero nessuna chiamata in corso).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><em>NOTA:<\/em> Alcuni temi premium usano metodi personalizzati: se non vedi cambiamenti ripeti la procedura nel functions.php del child theme oppure verifica se c\u2019\u00e8 uno specifico hook custom da rimuovere (consulta sempre la documentazione del tema).<\/p>\n<h2>Soluzione Alternativa: Plugin Dedicati per Gestire i Frammenti AJAX<\/h2>\n<p>Non ami mettere mano al codice? Nessun problema: esistono plugin testati che permettono di <strong>disabilitare facilmente i frammenti AJAX WooCommerce<\/strong>, anche senza alcuna conoscenza tecnica avanzata. Ecco alcune opzioni affidabili:<\/p>\n<ul>\n<li><strong>Disable Cart Fragments for WooCommerce:<\/strong> Plugin gratuito che aggiunge una semplice opzione nella dashboard WordPress sotto Impostazioni &gt; WooCommerce &gt; Optimizations. Basta selezionare &#8220;Remove Cart Fragments&#8221; e salvare.<\/li>\n<li><strong>Astra Performance Module:<\/strong> Se usi il tema Astra puoi accedere a Moduli &gt; Performance e disattivare direttamente gli script superflui collegati ai frammenti cart.<\/li>\n<li><strong>If Menu &#8211; Visibility control for Menu Items:<\/strong> Utile se vuoi nascondere del tutto l\u2019icona\/minicarrello dal menu principale (eliminando cos\u00ec la necessit\u00e0 degli aggiornamenti dinamici).<\/li>\n<\/ul>\n<ol>\n<li>Cerca il plugin desiderato in <span style=\"font-weight:bold\">Dashboard &gt; Plugin &gt; Aggiungi Nuovo<\/span>.<\/li>\n<li>Clicca su &#8220;Installa Ora&#8221; poi &#8220;Attiva&#8221;.<\/li>\n<li>Dopo l\u2019attivazione vai nella sua pagina impostazioni e spunta l\u2019opzione correlata ai cart fragments.<\/li>\n<li>Svuota cache e verifica da utente guest se il problema \u00e8 sparito sia su desktop sia su mobile.<\/li>\n<\/ol>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1792\" height=\"1024\" src=\"https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf.png\" alt=\"Persona che digita codice su un laptop con interfaccia di programmazione visibile, ambiente di lavoro con pianta e tazza di caff\u00e8\" class=\"wp-image-22499\" srcset=\"https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf.png 1792w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-300x171.png 300w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-1024x585.png 1024w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-768x439.png 768w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-1536x878.png 1536w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-18x10.png 18w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-22afilzahuzb1ruykabrptwf-600x343.png 600w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/figure>\n<h2>Cosa Cambia Dopo la Disattivazione dei Frammenti? Impatti su Carrello ed Esperienza Utente<\/h2>\n<p>A livello pratico, una volta rimossi i frammenti AJAX potresti notare alcuni piccoli cambiamenti nell\u2019esperienza utente:<\/p>\n<ul>\n<li>L\u2019indicatore numerico sul mini-carrello non si aggiorna pi\u00f9 in tempo reale quando aggiungi\/rimuovi prodotti dalla pagina shop o dalle pagine prodotto singole \u2013 bisogner\u00e0 ricaricare manualmente la pagina per vedere il totale aggiornato nel menu.<\/li>\n<li>Nella maggior parte degli shop questa limitazione \u00e8 trascurabile: lo stato &#8220;corretto&#8221; viene comunque mostrato nella pagina Carrello e Checkout dove avviene realmente la transazione.<\/li>\n<li>Siti con script JS custom potrebbero necessitare di piccoli aggiustamenti \u2013 ad esempio rimuovere trigger JavaScript inutilizzati legati agli eventi ajax_complete sui pulsanti carrello\/menu top bar.<\/li>\n<\/ul>\n<p>L\u2019effetto positivo invece \u00e8 immediatamente percepibile:<\/p>\n<ul>\n<li>Dimezzamento delle chiamate asincrone verso \/wc-ajax\/, specie su hosting condivisi o VPS poco potenti;<\/li>\n<li>Meno CPU\/ram assorbita durante picchi di traffico;<\/li>\n<li>Pagine catalogo\/prodotto molto pi\u00f9 scattanti con PageSpeed Insights superiore;<\/li>\n<\/ul>\n<p>Nella mia esperienza diretta su shop medio-grandi ho visto miglioramenti tra l\u20198% e il 25% nei tempi medi di caricamento pagina solo eliminando questa singola funzione inutile!<\/p>\n<h2>Casi Speciali: Temi Premium o Plugin Avanzati Che Usano Ajax Personalizzato?<\/h2>\n<p>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 \u2013 serve identificare eventuale codice custom collegato ai frammenti cart!<\/p>\n<ol>\n<li>Cerca nel pannello Tema delle impostazioni relative ad &#8220;Ajax Cart Update&#8221;, &#8220;Live Cart&#8221;, &#8220;Header Cart Refresh&#8221;: spesso puoi semplicemente disabilitare queste feature con uno switch dedicato.<br \/>Esempio WoodMart:<br \/><em>Basta andare su WoodMart &gt; Theme Settings &gt; Shop &gt; Ajax Add to Cart &#8211; togli flag da tutte le opzioni collegate ai fragment refresh!<\/em><\/li>\n<li>Dai uno sguardo al file JS personalizzato incluso dal tema \u2013 cerca funzioni legate a fetch\/ajax o eventi click sul mini-carrello.<br \/>In caso trovi riferimenti come <em>wcFragments.refresh()<\/em>, commentalo oppure rivolgiti allo sviluppatore del tema per sapere quale metodo usare senza rompere altre funzioni core.<\/li>\n<\/ol>\n<ul>\n<li>Suggerimento extra: alcuni plugin popolari tipo YITH Wishlist o Product Filters usano anch\u2019essi chiamate ajax! Controlla sempre anche questi componenti abilitando\/disabilitando temporaneamente ciascun plugin sospetto fino a trovare quello coinvolto negli update inutilmente pesanti.<\/li>\n<\/ul>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1792\" height=\"1024\" src=\"https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt.png\" alt=\"Monitor con schermate di WooCommerce e un carrello della spesa digitale su scrivania luminosa con tastiera e mouse\" class=\"wp-image-22498\" srcset=\"https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt.png 1792w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-300x171.png 300w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-1024x585.png 1024w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-768x439.png 768w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-1536x878.png 1536w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-18x10.png 18w, https:\/\/soccorsowp.it\/blog\/wp-content\/uploads\/2025\/11\/img-fd9rivqhmoprejzfbbcbmhrt-600x343.png 600w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/figure>\n<h2>Migliori Pratiche Dopo Aver Disabilitato i Frammenti AJAX WooCommerce<\/h2>\n<p>Dopo aver completato le modifiche principali non dimenticare queste azioni fondamentali per evitare effetti collaterali:<\/p>\n<ol>\n<li>Esegui test incrociati come utente anonimo sia da desktop che mobile aprendo una sessione privata\/incognito \u2013 aggiungi\/rimuovi prodotti dal carrello ed entra nella pagina Checkout verificando stabilit\u00e0\/fluidit\u00e0 dell\u2019esperienza d\u2019acquisto;<\/li>\n<li>Mantieni sempre aggiornata all\u2019ultima 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;<\/li>\n<li>Dopo ogni cambiamento svuota completamente tutte le cache lato plugin (WP Rocket\/W3 Total Cache\/SG Optimizer) ed eventualmente lato server\/cloudflare\/CDN;<\/li>\n<\/ol>\n<ul>\n<li>Tieni traccia delle metriche PageSpeed Insights prima\/dopo le modifiche cos\u00ec puoi misurare concretamente quanto hai guadagnato a livello prestazionale;<\/li>\n<\/ul>\n<h3>E se qualcosa va storto?<\/h3>\n<ul>\n<li>Torna indietro facilmente rimuovendo lo snippet PHP dal functions.php oppure disinstallando\/disattivando il plugin usato;<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Disabilitare i Frammenti AJAX WooCommerce e Velocizzare il Checkout Hai un sito WooCommerce e il checkout \u00e8 diventato lentissimo? Magari hai notato che, dopo aver&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25594,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Disabilitare Frammenti AJAX WooCommerce per Checkout Veloce","_seopress_titles_desc":"Scopri come disabilitare i frammenti AJAX in WooCommerce e velocizzare il processo di checkout. Migliora la tua esperienza di acquisto ora!","_seopress_robots_index":"","footnotes":""},"categories":[1699],"tags":[1538,1467,1227,1301,1634],"class_list":{"0":"post-22500","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-performance-e-ottimizzazione","8":"tag-2fa-wordpress","9":"tag-aggiornamento-manuale-wordpress","10":"tag-assistenza-woocommerce","11":"tag-attach-me-per-woocommerce","12":"tag-aumentare-velocita-sito-wordpress"},"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/22500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/comments?post=22500"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/22500\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25594"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=22500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=22500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=22500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}