E-commerce: Migliora performance di un sito WooCommerce

Indice

Se hai un e-commerce basato su WooCommerce, saprai quanto sia cruciale mantenere il sito veloce ed efficiente. 🚀

Le performance non riguardano solo la velocità di caricamento delle pagine, ma anche la capacità del sito di gestire operazioni di background come l’elaborazione degli ordini, la gestione dell’inventario e l’invio di email automatiche. 🤖

La velocità di un e-commerce è fondamentale: ogni secondo in più di caricamento può costare vendite e fatturato, influenzando negativamente l’esperienza utente ed il tasso di conversione. Gli utenti online sono impazienti e si aspettano un’esperienza fluida e immediata, motivo per cui ottimizzare le prestazioni del tuo e-commerce è un investimento che ripaga immediatamente. 🤑

Uno degli strumenti più sottovalutati, ma incredibilimente potenti, è Action Scheduler, il sistema di gestione delle azioni pianificate integrato in WooCommerce. In questo articolo ti mostrerò come ho migliorato drasticamente le performance dei siti WooCommerce dei miei clienti ottimizzando l’uso di Action Scheduler attraverso WP-CLI, cron job e alcuni filtri utili di WooCommerce.

Cos’è Action Scheduler e perchè incide sulle performance di un e-commerce WooCommerce

Nel caso non lo sapessi, Action Scheduler è la libreria che WooCommerce utilizza per gestire le operazioni pianificate, come:

  • Elaborazione Automatica degli ordini
  • Sincronizzazione dell’inventario
  • Puliza del database
  • Invio email transazionali

Ma quale è problema? 🤔

Se lasciato alla sua configurazione di default, Action Scheduler può rallentare il sito, consumare risorse del server e causare timeout indesiderati.

Questo problema diventa particolarmente evidente negli e-commerce ad alto traffico, che gestiscono una grande quantità di dati e operazioni ogni ora. La lentezza del sito non solo crea frustrazioni nei clienti, ma può anche portare a carrelli abbandonati e a una perdita diretta di vendite.

Ecco come ho affrontato questi problemi.

Ottimizzazione di Action Scheduler con WP-CLI e gestione del WP-Cron

Per evitare che WooCommerce esegua le azioni pianificate durante le visite degli utenti, ho sfruttato WP-CLI, uno strumento da riga di comando per WordPress, per eseguire le operazioni di Action Scheduler in modo controllato.

Inoltre, su e-commerce ad alto traffico è essenziale disabilitare il WP-Cron di default, che di norma viene eseguito ad ogni caricamento di pagina da parte degli utenti, rallentando le prestazioni complessive del sito. Per farlo, basta aggiungere questa riga nel file wp-config.php

define('DISABLE_WP_CRON', true);

Successivamente, è necessario impostare un cron job lato server per eseguire il WP-Cron a intervalli regolari, migliorando l’efficienza del sito:

wp cron event run --due-now >/dev/null 2>&1

Questo comando garantisce che gli eventi pianificati da WordPress, incluso Action Scheduler, vengano eseguiti in maniera controllata, senza gravare sulle risorse del server durante la navigazione degli utenti.

Ho impostato un cron job che esegue periodicamente questi comandi:

wp action-scheduler run >/dev/null 2>&1
wp action-scheduler clean >/dev/null 2>&1
wp cron event run --due-now >/dev/null 2>&1

Come impostare il cron job per il tuo e-commerce

Per impostare un cron job su un server Linux, basta aggiungere questa riga al file crontab:

*/5 * * * * wp action-scheduler run >/dev/null 2>&1
0 3 * * * wp action-scheduler clean >/dev/null 2>&1
*/5 * * * * wp cron event run --due-now >/dev/null 2>&1

Questo eseguirà le azioni pianificate ogni 5 minuti e la pulizia del database ogni giorno alle 3 di notte. 🌙

Ti spiego meglio, il database è necessario pulirlo in quanto Action Scheduler salva un log di tutte le operazioni completate, ed in e-commerce ad alto traffico la tabella del log nel database potrebbe crescere in modo indefinito. Mi è capitato di vedere tabelle anche di 4GB.

Pulire in questo modo il dabatase ovviamente ci aiuta anche a migliorare le prestazione delle query ad esso, in quanto teniamo ridotte le sue dimensioni.

Nota Importante: Queste ottimizzazioni lato server possono essere effettuate solo su hosting che supportano WP-CLI e che permettono di gestire autonomamente i cron job. Io ho potuto implementarle grazie all’utilizzo di un server SiteGround, ottimizzato specificaemente per WordPress e WooCommerce, che offre prestazioni elevate e supporto completo per WP-CLI. Se interessa un poì di tempo fa ho fatto anche un piccola recensione su SiteGround.

Migliorare le performance con i filtri WooCommerce

Un’altra ottimizzazione chiave riguarda l’uso di filtri WooCommerce, che consentono di modificare il comportamento di Action Scheduler per migliorare le prestazioni. Puoi trovare maggiori dettagli a questo link.

Ecco i filtri che ho utilizzato:

1. Ridurre il periodo di conservazione delle azioni completate

Di default, Action Scheduler conserva le azioni completate per 30 giorni. Questo può appesantire il database. Riduciamo il periodo a 1 giorni.

add_filter('action_scheduler_retention_period', function (){
    return DAY_IN_SECONDS;
});

2. Aumentare il limite di esecuzione

Per evitare timeout durante l’elaborazione di batch di azioni, ho aumentato il tempo massimo di esecuzione:

add_filter('action_scheduler_queue_runner_time_limit', function ($time_limit){
    return 120;
});

3. Incrementare la dimensione del batch

WooCommerce esegue le azioni in piccoli batch. Aumentandone la dimensione, riduciamo il numero di richieste necessarie:

add_filter('action_scheduler_queue_runner_batch_size', function ($batch_size){
    return 50;
});

Risultati ottenuti con gli e-commerce dei miei clienti

Dopo aver implementato queste ottimizzazioni, ho riscontrato i seguenti miglioramenti:

  • Riduzione del carico del server: grazie all’esecuzione programmata del WP-Cron via WP-CLI, il server è più reattivo.
  • Performance migliorata: tempi di caricamento delle pagine più rapidi, specialmente su store con alto volume di ordini.
  • Database più leggero: eliminazione regolare delle azioni completate evita di accumulare inutili dati ed il database mantiene delle dimensioni ragionevoli.
  • Miglioramento delle conversioni: su sito più veloce significa meno carrelli abbandonati e un’esperienza utente migliore, questo si trasforma in un tasso di conversione migliore.

Conclusione

Sse gestisci un e-commerce WooCommerce ad alto traffico e noti rallentamenti o cali di performance, ottimizzare Action Scheduler e la gestione del WP-Cron è un passo fondamentale. Con l’uso strategico di WP-CLI, cron job e filtri WooCommerce, puoi allegerire il carico del sito e offrire un’esperienza utente più fluida, aumentando il fatturato del tuo e-commerce.

Questi ovviamente non sono la soluzione definitiva a tutti i mali di un e-commerce, per migliorare le performance ci sono moltissimi aspetti da considera come il tipo di server, l’utilizzo di una CDN, il peso delle immagini e molto altro.
Ad ogni modo però credo di averti dato dei consigli utili che se avessi avuto io qualche tempo fa, mi avrebbero risparmiato diverse notti insonni. 🙂

Se ti interessano altri articoli su e-commerce o WooCommerce come questi visita le sezioni dedicate sul mio blog.


Se ti è piaciuto questo articolo o ti è stato utile in qualche modo, lascia un commento, condividilo con i tuoi amici e seguimi sui social.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.