WooCommerce è lento?
Quanti prodotti posso gestire senza intaccare le prestazioni WooCommerce?
E se ho un prodotto con tante variazioni? Si rallenta tutto?
Se hai uno shop con più di 500 prodotti evita WooCommerce, usa PrestaShop che WooCommerce non li regge.
In questo post ti dimostrerò che è possibile gestire il tuo negozio con WooCommerce, con 35.000 prodotti, o molti di più se preferisci, ed avere tempi di caricamento di pagina inferiori a 1.5 secondi!
Table of Contents
Pregiudizi su WooCommerce
Frequento diversi gruppi WordPress ed ecommerce e la tesi è sempre la stessa. WordPress è una piattaforma di blogging e non è stato pensato per creare un ecommerce.
Affermazione verissima, ma questo non significa che, come dicono tanti:
Se hai più di 500 prodotti non usare WooCommerce, perché si rallenta tutto.
Se hai un prodotto con tante variazioni si rallenta tutto.
WooCommerce é lento, meglio usare un CMS che è stato creato per gestire un ecommerce come PrestaShop o Magento. In alcuni casi è vero come dirò dopo, ma non perché WooCommerce è lento.
La mia posizione
Prima di iniziare vorrei chiarire una cosa, non sono un fan di questo o quel CMS, ritengo che ognuno abbia necessità e capacità diverse e debba quindi scegliere la piattaforma che meglio si adatta alle sue esigenze.
Quello che non mi piace è quando si creano dei pregiudizi. Esattamente per quale motivo se un negozio creato con WooCommerce supera i 500 prodotti si deve rallentare? E se invece ho 499 prodotti e 8000 post sul blog?
I post sul blog ed i prodotti sono memorizzati nella stessa tabella…
E se ho 3 prodotti e 8000 post sul blog?
Chi decide questi numeri? Devo andare in una sala bingo o dal cartomante?
Prestazioni WooCommerce: la mia tesi
Ogni volta che leggo post con affermazioni come quelle che ho elencato sopra, mi chiedo: perché?
Perché se aumenta il numero di prodotti dovrebbe rallentare il sito?
Perché se ho prodotti con tante variazioni questo dovrebbe rallentare la velocità di caricamento del mio sito?
MySQL è stato progettato per gestire enormi quantità di dati, quindi quando faccio una query sul database non dovrebbe fare troppa differenza se in quella tabella ci sono 500 record o 5000, non stiamo parlando di milioni.
Sicuramente WooCommerce è un plugin pesante, come ho scritto nel mio post plugin che rallentano WordPress. Aggiunge una serie di javascript e CSS alle pagine del tuo sito per poter funzionare, ed ovviamente esegue delle query aggiuntive sul database.
In questo post con vari test ti dimostrerò che WooCommerce è un ottimo software per creare un sito ecommerce, seppur coi suoi limiti.
Ma quanto questo rallenta il caricamento delle tue pagine nella realtà?
E soprattutto: quanto incide il numero dei prodotti sulle prestazioni WooCommerce?
Testiamo le prestazioni WooCommerce
Per fare questi test ho deciso di prendere in considerazione due fattori:
- Il tempo di caricamento su gtmetrix testando da Londra
- Il numero di query sul database
Ho installato WordPress con WooCommerce su un piano hosting semidedicato ed usato il tema storefront, il tema base di WooCommerce.
Stabiliamo una baseline
Prima di tutto dobbiamo stabilire dei valori di base, per avere un termine di riferimento, sia in termini di prestazioni che di query sul database.
Ho installato WordPress ed il plugin query monitor. Per non falsare i test ho installato ed attivato il tema storefront su WordPress e fatto il primo test.
Aprendo la finestra di query monitor vedo che un’installazione di WordPress con tema storefront esegue 27 query sul database per caricare la pagina.
Il sito carica in 0.5 secondi stando al test di GTmetrix. Se stavi cercando un hosting veloce sei nel posto giusto. Se non ti fidi puoi metterci alla prova, offriamo una prova gratis di 14 giorni per testare e stressare il servizio.
La pagina ha una dimensione di 115kb e ha 16 richieste. Risultato facile da ottenere con una pagina vuota senza immagini. Non è comunque difficile raggiungere risultati intorno al secondo se sai come velocizzare WordPress.
Adesso che abbiamo una base per vedere in quanto tempo si carica una pagina di WordPress, vediamo cosa aggiunge WooCommerce.
Ho installato WooCommerce e impostato le impostazioni base seguendo la procedura guidata:
- non ho installato Jetpack, non ho mai capito quale sia l’utilità di quel plugin, a parte rallentare il sito.
- ho impostato la spedizione con tariffa fissa, 1 per l’Italia e 1 tariffa per l’estero.
- non ho configurato le tasse trattandosi di una demo.
- ho impostato come metodo di pagamento soltanto il bonifico bancario per evitare di perdere tempo
Nota: se hai difficoltà a installare o configurare WooCommerce, puoi seguire la nostra guida passo passo su come si crea un eCommerce con WordPress.
WooCommerce ha installato questi plugin:
Vediamo che per caricare la home adesso sono necessarie 49 queries, un aumento che ci potevamo aspettare.
Ovviamente anche il tempo di caricamento è aumentato, questo perché WooCommerce aggiunge css e js oltre alle queries che abbiamo visto sopra.
Infatti notiamo che sia la dimensione di pagina che il numero di richieste sono aumentate, come potevamo aspettarci.
Ovviamente non ha molto senso testare la home page, dobbiamo testare la pagina prodotti. Ho voluto però riportare il test della home page per avere un confronto diretto con il test prima di installare WooCommerce.
SPOILER ALERT: ho continuato a testare la home ad ogni prova, ma non riporto i risultati. Il numero di query, numero di risorse, dimensioni di pagina e tempo di caricamento non sono mai cambiati durante i vari test. Quindi il numero di prodotti e le loro variazioni non incide sul tempo di caricamento della home page, e di conseguenza delle pagine che non fanno parte dello shop.
Se non cambia niente nella home page le differenze si dovrebbero vedere nella pagina prodotti, dal momento che WooCommerce deve cercare nel database e mostrarne solo alcuni, nel nostro caso 16, ho lasciato le impostazioni di default a 4 righe e 4 colonne.
In questo modo possiamo valutare le Prestazioni WooCommerce appena superiamo il fatidico numero di 500 prodotti.
Vediamo qualche query in più, 2 per la precisione, tieni presente che il negozio non ha nessun prodotto ancora, qui stiamo soltanto definendo una linea base.
Il tempo di caricamento rimane invariato. Una oscillazione di 2 decimi di secondo è probabilmente dovuta al carico/scarico del server di test di gtmetrix, oppure del nostro server.
Anche la dimensione della pagina e il numero delle richieste restano invariate.
Adesso possiamo entrare nel vivo dei test.
Prestazioni WooCommerce e numero di prodotti
La prima ipotesi da dimostrare era: se supero un certo numero di prodotti, ne risentono le prestazioni WooCommerce?
Se sì in che misura?
Vediamo cosa ci dicono questi test.
WooCommerce con 18 prodotti
Abbiamo stabilito una baseline, adesso andiamo ad aggiungere alcuni prodotti ed eseguire gli stessi test.
Ho usato il CSV di WooCommerce per l’importazione, in modo da importare prodotti di vario tipo, con immagini e alcune variazioni.
Come dicevo la home page non subisce alcun tipo di variazione, quindi da questo momento in poi eseguirò i test sulla pagina del negozio, che ho impostato per mostrare gli ultimi 16 prodotti.
Adesso che abbiamo alcuni prodotti il numero di query passa da 51 a 92. Questo comporta anche un aumento del tempo per eseguire le query, circa 3 centesimi di secondo in più. Nulla di tremendo, ancora…
In termini di velocità notiamo un rallentamento di 4 decimi di secondo, un risultato che potevamo aspettarci dal momento che si sono aggiunti dei contenuti e delle immagini, rispetto al test di prima che era su una pagina vuota.
Notiamo infatti un aumento della dimensione di pagina e del numero di richieste. Dicevo che stiamo mostrando 16 prodotti per pagina, infatti il numero di richieste aumenta di 16: le 16 immagini che vengono mostrate, una per prodotto.
La dimensione di pagina aggiuntiva è data proprio da queste 16 immagini.
Quindi se usiamo WooCommerce con pochi prodotti, possiamo aspettarci ottime prestazioni.
Di certo questo primo test dimostra che WooCommerce non è lento, tutt’altro.
WooCommerce con 200 prodotti
Ti risparmio una serie di test identici, le prestazioni WooCommerce con 200 prodotti sono identiche ai risultati di sopra. Quindi fino a 200 prodotti WooCommerce resta veloce, non si nota un peggioramento delle prestazioni.
L’unica differenza è stata nel numero di query nella pagina prodotto. Avendo più prodotti nel nostro negozio, nella pagina singola c’erano 3 prodotti correlati invece di uno solo. Questo per ovvi motivi ha aumentato il numero di query (9) ed ha aggiunto 2 richieste, le due immagini aggiuntive.
Ma se superiamo il numero limite di 500? Cosa succede in quel caso?
WooCommerce con 1000 prodotti
Qui sono arrivati i problemi, superando il fatidico numero inventato WooCommerce è diventato lentissimo, ha smesso di funzionare e poi mi è esploso il computer.
Ovviamente sto scherzando…
C’è stato un ulteriore aumento delle query sul database. Ho notato però che questo parametro tendeva a cambiare in modo “strano” a seconda del numero di prodotti, come vedremo nei prossimi test.
Anche il tempo per eseguire le query, come notiamo, non dipende dal numero di query, ma dal carico del server in quel dato momento.
Per quanto riguarda la velocità, resta ottimale, notiamo che addirittura carica più veloce con 1000 prodotti che con 18 o 200 prodotti.
Questa oscillazione è dovuta al momento. 4 decimi di secondo dipendono di più dal carico sul server e sul server di test che da un degrado delle prestazioni WooCommerce dovute al numero di prodotti nel database.
Un’oscillazione di questo tipo è del tutto normale ed irrilevante.
Le dimensioni di pagina restano pressoché invariate. La differenza nel numero di richieste e dimensione di pagina è dovuto al fatto che 2 prodotti avevano due immagini uguali, e sono state quindi caricate una volta sola.
WooCommerce con 3000 prodotti
Ho continuato a importare altri prodotti su prodotti…
Come dicevo il numero di query è stato variabile durante i test, non direttamente collegato al numero di prodotti. Idem il tempo di caricamento.
Resta il fatto che non si nota un aumento delle query, o del loro tempo di esecuzione, in base al numero di prodotti.
Anche il tempo di caricamento non cambia. In questi due diversi test si vede che varia da un momento all’altro, come è normale che succeda, ma non si nota una differenza sostanziale tra un negozio con 18 prodotti e uno con 3000.
Anche la dimensione di pagina resta invariata, cosa che potevamo aspettarci, dal momento che continuiamo a caricare gli ultimi 16 prodotti.
WooCommerce con 35000 prodotti
A questo punto ho deciso di fare un paio di importazioni per vedere di portare questa installazione al limite.
Ho creato due files da circa 15000 prodotti e li ho importati. Il CSV era circa 12MB, ci è voluto un bel po’ di tempo ma alla fine sono riuscito a portare al limite WooCommerce e rallentarlo come si deve.
O forse no?
Il numero di query resta sempre nello stesso range. Ci ha messo un po’ di più ad eseguire le query, cosa tutto sommato capibile dato il volume di dati adesso presenti nella tabelle, parliamo comunque di un decimo di secondo, non dovrebbe impattare sul tempo finale di caricamento. O si?
Le prestazioni restano ottime, il numero di prodotti non ha alcuna influenza sulle prestazioni WooCommerce.
Le dimensioni di pagina, ancora una volta non cambiano.
Possiamo asserire che il numero di prodotti non fa alcuna differenza sulle prestazioni WooCommerce, mi pare che questi test lo dimostrano senza ombra di dubbio.
Prestazioni WooCommerce e variazioni prodotto
La seconda ipotesi era: un prodotto con tante variazioni influisce sulle prestazioni WooCommerce oppure è solo un leggenda metropolitana?
Questi test dovrebbero fare un po’ di chiarezza.
Prodotto WooCommerce con 9 variazioni
Ho testato un prodotto con 9 variazioni: 3 colori e 3 taglie.
Per caricare la pagina del singolo prodotto con più variazioni WooCommerce deve eseguire più query rispetto a quando carica la home page del negozio. In questo caso vediamo 130 query eseguite in 2 centesimi di secondo.
In termini di velocità notiamo ottime prestazioni.
La dimensione di pagina non cambiava di una virgola durante i test, quindi non riporto il risultato dei test.
Prodotto WooCommerce con 10.000 variazioni
A questo punto ho aggiunto altri 97 colori e 97 taglie. C’è stato un aumento delle query, praticamente irrilevante.
Se sei curioso di conoscere il risultato del test di velocità controlla il test sopra. Non c’è stata alcuna differenza tra 9 variazioni e 10.000 variazioni.
A questo punto ho deciso di provare a stressare e rallentare il nostro caro WooCommerce.
Prodotto WooCommerce con 100.000.000 variazioni
Si hai letto bene, 100 milioni di variazioni.
Ho aggiunto altri due attributi con 100 variazioni ciascuno, per arrivare a 100 milioni. Dubito che esista un negozio reale con tante variazioni, e se esiste mi sento male per i loro utenti, ti immagini scegliere tra tante opzioni disponibili?
Qui notiamo un sensibile aumento delle query rispetto al test precedente, ma nulla di che.
In termini di prestazioni, ancora una volta, nessuna differenza.
Il risultato dei test
Possiamo quindi rispondere alla domanda: le prestazioni WooCommerce variano in base al numero dei prodotti che abbiamo o le domande che ci siamo fatti nell’introduzione sono solo ipotesi infondate?
Direi che alla luce di questi test possiamo sicuramente dire che WooCommerce è un’ottima piattaforma ecommerce e che ha il potenziale di offrirti ottime prestazioni.
Chi ti dice che se hai più di 500 prodotti devi usare un CMS dedicato all’ecommerce non ha ragione, almeno non al 100%.
In alcuni casi è opportuno usare un software come Prestashop o Magento, come spiego in uno dei prossimi paragrafi.
Perché i siti fatti con WooCommerce sono lenti?
Questa è una domanda che ha senso.
Molti clienti hanno siti fatti con WooCommerce, ed hanno prestazioni non ottimali, che nemmeno si avvicinano a quelle dei test che vedi in questo mio articolo.
Se hai un sito con WooCommerce e non sei contento delle sue prestazioni, qui trovi la risposta.
Temi WooCommerce
Il primo problema è il tema. Molti temi sono belli e ben fatti, ma caricano un’enormità di risorse. Files css e js che non sono utilizzati, ma gonfiano il peso della pagina e il numero di richieste. Questi files, anche se inutilizzati devono essere scaricati dal browser ogni volta che la pagina viene visualizzata.
Molti temi che vengono venduti, per forza di cose, devono prevedere tutti i casi possibili. Tu probabilmente non avrai mai bisogno di uno slider o un carousel, ma un tema che offre quella feature vende di più, quindi viene aggiunta, questo di solito comporta l’aggiunta di almeno un css e un javascript, forse anche più.
Questo vale per tutte le altre funzioni del tema.
Prova a creare un’installazione di staging e cambiare tema, metti storefront e vedi cosa cambia:
- tempo di caricamento
- numero di risorse
- dimensione di pagina.
Plugin
Questo è forse il principale problema di WooCommerce. Dal momento che WordPress non è nato per creare un negozio, le funzioni di WooCommerce sono limitate.
Per sopperire a queste mancanze si tende a usare una serie di plugin. Raramente ho visto negozi con WooCommerce che avessero meno di 15-20 plugin.
Se calcoliamo che molti plugin, oltre ad aggiungere calcoli e query, aggiungono anche un css e un javascript, si fa presto a capire che aggiungere troppi plugin non giova troppo alle prestazioni WooCommerce.
Proprio in questi casi, come spiego nella prossima sezione, è opportuno scegliere un CMS studiato appositamente per l’ecommerce.
Immagini
In molti casi vengono caricate immagini ad alta risoluzione, quando si potrebbe caricare un’immagine in buona risoluzione, e l’effetto sarebbe lo stesso.
Se le immagini vengono ottimizzate come si deve hanno dimensioni ridotte e non influiscono sulle prestazioni WooCommerce. Sul blog abbiamo due guide in merito:
- Come ottimizzare le immagini WordPress
- Come comprimere immagini e foto online con Optimizilla.
Hosting
Ovviamente non potevo non parlare del motore che sta dietro al tuo sito web.
Durante i nostri test ho usato un piano semidedicato platinum 1.
L’hosting è uno dei costi fissi di WooCommerce. Ho notato in alcuni casi la tendenza a risparmiare sull’hosting, cercando a tutti i costi una soluzione economica, senza pensare a quanto è importante che il tuo sito sia veloce, specialmente per un sito ecommerce.
Se la tua azienda non ha 100-200€ l’anno da spendere per il motore che tiene in piedi il tuo negozio online, forse è il caso di rivalutare completamente l’attività online.
Come scegliere un CMS per ecommerce
Come accennavo il problema principale per le prestazioni WooCommerce sono i plugin, spesso necessari, alcune volte puramente inutili, che si aggiungono per avere delle funzioni extra per il nostro ecommerce.
In fase di progettazione bisognerebbe fare una lista delle funzioni di cui avremo bisogno, e capire se ha senso usare WooCommerce o se conviene usare un sistema ecommerce come PrestaShop o Magento.
Se riesci a usare WooCommerce con pochi plugin, e scegli un tema leggero e performante non avrai problemi. Se invece hai bisogno di tante funzioni aggiuntive, invece d’installare 30 diversi plugin e rallentare il tutto il consiglio è di cercare una piattaforma che abbia la maggior parte delle funzioni che cerchi nel core, in modo da ridurre al minimo l’uso di plugin e componenti esterni. In questo caso ti suggerisco di controllare il nostro articolo su come installare PrestaShop se vuoi partire da lì.
Conclusioni
WooCommerce di per sé non è lento, tutt’altro. Come WordPress non è lento.
Se le prestazioni del tuo negozio non sono ottimali la colpa non è di WooCommerce né del numero dei prodotti, come abbiamo visto con i vari test che ti ho mostrato in questo articolo.
Il problema, analogamente a WordPress, sono il tema che scegli ed i plugin.
Cosa ne pensi delle mie prove e dei risultati? Fammelo sapere in un commento!
Lascia un commento