WooCommerce: carica lenta per 'wc-ajax=get_refreshed_fragments'

WooCommerce: carica lenta per 'wc-ajax=get_refreshed_fragments'

WooCommerce è il plugin più popolare per creare negozi online su WordPress. Questo plugin utilizza la tecnologia AJAX per offrire un’esperienza utente fluida e dinamica. Una delle chiamate AJAX principali è wc-ajax=get_refreshed_fragments, progettata per aggiornare i dati del carrello in tempo reale senza ricaricare l’intera pagina. Sebbene sia essenziale per il corretto funzionamento del carrello, questa funzionalità può influire negativamente sulle prestazioni del sito se non viene gestita correttamente.
 
Come funziona wc-ajax=get_refreshed_fragments?
Quando i clienti aggiungono prodotti al carrello o effettuano modifiche, WooCommerce esegue una chiamata a /?wc-ajax=get_refreshed_fragments per aggiornare i frammenti del carrello nella pagina. In questo modo, dettagli come il numero di articoli e il totale del carrello vengono aggiornati istantaneamente senza ricaricare completamente la pagina.
 
Generazione di rallentamenti
Il problema si verifica quando questa richiesta viene eseguita su tutte le pagine, anche su quelle in cui l’aggiornamento dinamico del carrello non è necessario. Questo può accadere, ad esempio, se il carrello o la sua versione compatta è presente su tutte le pagine tramite un widget. Il risultato è un numero eccessivo di chiamate a admin-ajax.php, aumentando il carico sul server e rallentando l’esperienza utente.
 
Cosa sono le richieste a admin-ajax.php?
admin-ajax.php è un file fondamentale di WordPress che gestisce le richieste AJAX. AJAX (Asynchronous JavaScript and XML) consente la comunicazione tra browser e server, permettendo di aggiornare parti di una pagina senza ricaricarla completamente. WooCommerce, come altri plugin e temi WordPress, utilizza admin-ajax.php per eseguire operazioni nel backend senza interrompere l’esperienza dell’utente nel frontend.
 
Un numero eccessivo di richieste a admin-ajax.php, soprattutto su siti con traffico elevato o con molti elementi dinamici, può sovraccaricare il server. Questo si traduce in tempi di caricamento più lunghi e potenzialmente in un peggioramento dell’esperienza utente e del posizionamento SEO.
 
Soluzioni pratiche per ottimizzare wc-ajax=get_refreshed_fragments
Identificare le richieste AJAX con Query Monitor
 
Per utilizzare Query Monitor, devi installare e attivare il plugin nel tuo sito WooCommerce.
 
 
Query Monitor è un plugin utilizzato per analizzare installazioni WordPress con WooCommerce. Permette di visualizzare le richieste AJAX del sito. Dopo l’installazione e l’attivazione potrai:
 
- Identificare richieste inutili: Naviga nel sito e osserva le chiamate a admin-ajax.php eseguite su ogni pagina. Query Monitor mostrerà i dettagli, aiutandoti a distinguere quelle essenziali da quelle superflue.
 
- Rilevare sovraccarichi: Presta attenzione alle pagine che non necessitano di aggiornamenti dinamici del carrello (come pagine informative, blog o contatti). Se generano richieste a admin-ajax.php, possono essere ottimizzate.
 
Per testare le richieste wc-ajax=get_refreshed_fragments, vai alla pagina del carrello e aggiungi alcuni prodotti. Successivamente apri il pannello di Query Monitor e accedi ai processi di WooCommerce per monitorarli.
 
 
Utilizzo della funzione disable_ajax_requests per disattivare le richieste
Una volta individuate le richieste non necessarie, puoi disattivarle selettivamente aggiungendo una funzione personalizzata nel file functions.php del tuo tema WordPress.
 
 
La funzione può essere adattata per disattivare le richieste su pagine specifiche:
 
function disable_ajax_requests() {
  if ( ! is_cart() && ! is_checkout() && ! is_account_page() ) {
    wp_dequeue_script( 'wc-cart-fragments' );
    wp_dequeue_script( 'woocommerce' );
    wp_dequeue_script( 'wc-add-to-cart' );
    remove_action( 'wp_head', 'wc_fragment_refresh', 10 );
  }
}
add_action( 'wp_enqueue_scripts', 'disable_ajax_requests', 100 );
 
Nota: Questo codice disattiva le richieste AJAX del carrello su pagine non essenziali (diverse da carrello, checkout o account). Verifica sempre il corretto funzionamento del sito dopo l’implementazione.
 
Ulteriori miglioramenti delle prestazioni
 
- Ottimizzazione delle immagini: Utilizza plugin per ridurre il peso delle immagini senza perdita di qualità.
- Minimizzazione di CSS e JavaScript: Plugin come Autoptimize permettono di combinare e minimizzare i file riducendo le richieste HTTP.
- Utilizzo della cache: Configura plugin come WP Rocket (a pagamento) o W3 Total Cache per generare versioni statiche delle pagine. Inoltre, cdmon offre uno strumento di cache server-side (Varnish) ottimizzato per WordPress.
 
Dal pannello di controllo di cdmon puoi attivare o disattivare la cache Varnish in qualsiasi momento e aggiornare la versione di PHP per ottenere la massima ottimizzazione.
 
Ottimizzare le richieste wc-ajax=get_refreshed_fragments e le altre operazioni AJAX in WooCommerce è fondamentale per mantenere il sito veloce ed efficiente. Seguendo queste soluzioni pratiche potrai migliorare significativamente le prestazioni del tuo negozio online, garantendo un’esperienza utente ottimale e migliori performance generali.
 
Per maggiori informazioni, puoi contattarci.
    • Related Articles

    • Errori frequenti Woocommerce e come risolverli

      Attualmente la vendita online è in costante crescita e la necessità di avere un eCommerce per qualsiasi attività fisica è ormai una realtà. WordPress è un’applicazione che consente di creare siti web di ogni tipo e, ovviamente, permette anche di ...
    • Ottimizzazione cache per Joomla

      Tutti i sistemi di gestione dei contenuti dinamici esercitano un carico significativo sul server, e Joomla non fa eccezione sotto questo aspetto. Tuttavia, la maggior parte dei siti web ospita contenuti che cambiano raramente, il che consente ...
    • Come ridurre il consumo wp-admin/admin-ajax.php

      A volte il nostro WordPress può fare un uso eccessivo del file admin-ajax.php, generando un elevato consumo delle risorse disponibili sul server e sovraccaricandolo. Questo file è presente di default nell’installazione di WordPress, poiché fa parte ...
    • Firewall per applicazioni Web (WAF)

      WAF è l’acronimo di Web Application Firewall (Firewall per Applicazioni Web). Si tratta di un insieme di strumenti basati principalmente sul modulo ModSecurity del server Apache, per proteggere il tuo sito web da possibili intrusioni esterne. ...
    • Wp-config-php, che cosa è e per cosa serve

      In WordPress, il file wp-config.php è uno dei file più importanti ed è essenziale per il corretto funzionamento del tuo sito web. In questo file si trovano le configurazioni principali del sito, come le informazioni del database, le chiavi di ...