Filtra la ricerca ...
Frase esatta
Categorie

Come velocizzare veramente un sito WordPress e WooCommerce

Ciao e benvenuto. Se hai bisogno di chiarimenti sul codice, lascia un commento (no WhatsApp); ricorda però che non fornisco assistenza gratuita sugli articoli che ho scritto nè personalizzo il codice in modo gratuito, quindi se la tua richiesta va oltre il semplice "aiutino", se vuoi mi chiedi una consulenza a pagamento nella pagina contatti. Grazie della comprensione. Alessio

Ultimamente il servizio che mi chiedono più spesso è l’ottimizzazione di un sito WordPress oppure di uno shop con WooCommerce.

Mi sono accorto che c’è molta confuzione a riguardo e purtroppo anche persone che vendono “fumo” ai clienti, pensando sia sufficiente utilizzare un semplice plugin e dire al cliente che il sito è stato ottimizzato e più di così non si può fare. No non è vero, ogni sito è diverso dagli altri, anche se ci sono parti comuni; vediamo in dettaglio cosa comporta realmente un ottimizzazione delle performance di un sito WordPress che permetterà il caricamento più veloce delle pagine e non vi farà più dire che WordPress è lento!

Quali sono gli aspetti da tenere in considerazione per fare un’analisi di ottimizzazione di un sito WordPress o un ecommerce con WooCommerce

Hosting

Uno degli aspetti più importanti è il servizio di hosting su cui è ospitato il sito internet, ho visto e testato diversi servizi di hosting, alcuni italiani ed alcuni stranieri; ho scritto un articolo che sicuramente ti aiuterà a scegliere il migliore servizio di hosting per WordPress e WooCommerce .

Vi dico già da subito che alcuni servizi di hosting, anche quelli più rinomati o con le migliori opinioni in rete, purtroppo non sempre sono i migliori; giusto per citarne qualcuno : Siteground fa pietà (non avete idea di quanti sono i clienti disperati a cui trasferisco il sito WordPress da questo provider…), Aruba non va bene se si scegli il piano condiviso, meglio con Aruba Cloud ma servono conoscenze sistemistiche per configurare il server, Tophost… ma anche no ! , Register costa troppo per quello che offre ed il pannello amministrativo è un delirio.

Database

Il database lo possiamo immaginare un po’ come un magazzino che deve essere sempre ordinato, preciso e di facile ricerca di un oggetto.

Ora nel caso di WordPress possiamo dire che gli oggetti sono articoli, prodotti, pagine, immagini, allegati e quant’altro; ogni oggetto è presente in diverse pagine del sito, quindi ogni volta che clicchiamo per visitare una determinata pagina, il database verrà interrogato ed il caricamento sarà più o meno lento a seconda di questi parametri :

  • Il peso della pagina, come peso intendo proprio le dimensioni
  • Le dimensioni delle immagini e o video che deve caricare
  • La quantità di file .CSS, .JS, Font che deve caricare (questa parte poi la vediamo in dettaglio)

Una volta che WordPress avrà raccolto questi parametri farà una query al database, cioè una ricerca nel magazzino; la risposta di tale query sarà più o meno veloce secondo questi parametri :

  • Se il codice che genererà la query è scritto in maniera corretta ed ottimale
  • Se il database è ordinato e preciso
  • Se non deve cercare dentro ad oggetti che non esistono più nel sito
  • Se esiste un indice nelle tabelle più importanti di WordPress
  • Se il database e le sue relative tabelle sono ottimizzate.

Quindi in buona sostanza il magazziniere troverà più velocemente l’oggetto richiesto se il magazzino è ben strutturato, non presenta scatoloni vuoti ed è ordinato secondo un determinato ordine.

Il database necessita quindi di essere periodicamente ordinato ed ottimizzato per evitare appunto ritardi nelle risposte alle query nonché al caricamento delle pagine stesse.

Ma cosa sono le query ? In sostanza ogni volta che visitate una pagina di un sito WordPress, cliccate su un menu, visualizzate una galleria immagini, ecc.., viene fatta un’interrogazione al database in modo che poi visualizzi il risultato a video, ossia nel sito; la velocità di risposta dipende da diversi fattori :

  • il tipo di database : MySQL o MariaDB ? nonostante si dica che sono identici non è così, alcune tipologie di query su MariaDB non funziona, è un limite dichiarato da MariaDB che al momento non è stato risolto nel momento in cui scrivo.
  • la locazione del database : è su un server veloce ? nello stesso datacenter ? in quanto tempo deve rispondere il database ? quante interrogazioni può fare al minuto ? (questo è il limite sulle query che vi dicevo)
  • è ottimizzato : entry orfane nelle tabelle ? ha un indice nella tabelle principale di WP ? è ripulito o contiene tabelle orfane di plugin disinstallati ?

Considerate che un database non ottimizzato rallenta, per non dire che rende una vera carriola un sito WordPress o peggio un ecommerce.

Spazio disco

E’ un server condiviso con altri utenti ? E’ un a VPS ? E’ un Cloud ? (miglior scelta indubbiamente); il sito su cui stai leggendo è su un cloud di Ergonet, che te ne pare ?

Ovvio che su un server condiviso ci sono dei limiti, può essere anche quello più costo ma è sempre condiviso con altri siti di altre persone; invece su una VPS o meglio ancora un Cloud si possono fare configurazioni personalizzate per ottimizzare al meglio il sito; vedi per esempio più avanti dove parlo di sistema di cache lato server.

Le immagini

Una delle grosse falle che ho trovato quando mi chiedono di ottimizzare un sito WordPress sono proprio le immagini, ogni immagini che carichiamo ha un peso, lo sapevi che WordPress in automatico genera altri 3 tipi di immagine di quella caricate solo che hanno dimensioni differenti ? E questo non lo vedi da Media ma solo se guardi nella cartella wp-content/uploads/%anno% connettendoti via FTP.

Oh mamma mia! Ma quando parli ai clienti di ottimizzare le immagini gli stravolgi la vita 🙂

Le immagini devono essere ottimizzate signori, se mi caricate immagini di 4500x 6000 px che pesano 20mb, non potete poi lamentarvi che il sito è lento porca paletta; cominciamo a caricare immagini già in parte “elaborate” dal pc e poi il resto lo può fare qualche script o plugin giusto.

Le immagini sono importantissime in un articolo o un prodotto in vendita, ma bisogna essere furbi, anzi “addestrati” a sapere come caricare delle immagini di effetto ma che non pesino uno sproposito.

Siccome il discorso è veramente complesso ho scritto diversi articoli solo per questo :

I plugin

Siamo abituati ad installare un plugin per ogni cosa, e spesso alla ricerca di quello gratuito; siete sicuri che tutti i plugin installati siano necessari ? Più plugin ci sono e più WordPress si rallenta, il database cresce di dimensioni e quindi si rallenta anch’esso ed infine più file ci sono e meno il sito è sicuro perché ogni file può essere oggetto di attacchi da parte di pirati informatici .

Ho visto molti siti che ho ottimizzato che avevano oltre 40 plugins installati, alcuni era disattivati, altri non sapevano neanche a cosa servissero ed altri erano così banali che anziche installare il plugin bastava scrivere una semplice funbzione in PHP bella e pulita che faceva la stessa identica cosa senza portare via tutte le risorse che portava via il plugin; certo mi direte, a saperlo fare! Ma non è meglio investire qualche centinaia di euro una volta per fare una bella pulizia ed avere un sito più veloce ? Più veloce = più Google contento = più traffico = più clienti…. mi sembra semplice no 🙂

Quando viene disinstallato un plugin è vero che non lo vedete più nella lista ma purtroppo nel database rimane li orfano a occupare una tabella, occupare spazio e a rallentare il sito!

  • Quanti plugin avete installato ?
  • I plugin sono aggiornati ?
  • Aveste un sistema automatico che aggiorna automaticamente i plugin ?
  • Avete un sistema di roolback nel caso in cui un aggiornamento di plugin comporti errori di incompatibilità ?

Il tema (font e caratteri, i file JS e CSS)

Qui è la terza guerra mondiale! Potrei veramente scrivere un papiro se dovessi raccontarvi la quantità di template che ho visto in uso su siti in produzione, anche famosi ed importanti, su template che ho testato personalmente e su come il codice era veramente scritto con i piedi !

In questo caso purtroppo non vige la legge “se è ha pagamento sicuramente sarà buono”, purtroppo di sviluppatori ce ne sono a iosa, tutti cercano di portarsi a casa il pezzo di pane, quindi più temi fanno più hanno possibilità di vendere e più pezzi di pane si porteranno a casa; ho reso l’idea ?

Entriamo nel dettaglio; ogni template deve essere sviluppato secondo delle direttive di WordPress, questo permette al tema di essere compatibile con gli aggiornamenti di WordPress ed i plugin.

I template portano in sé, per ovvi motivi, più file CSS che servono ad apportare modifiche al colore, ai caratteri, alle sidebar, insomma stilizzano tutta la grafica del sito, ed i file JS (che si chiamano librerie) che possono essere a volte molto numerosi a seconda delle animazioni o degli effetti che il tema offre;  a volte queste librerie vengono richiamato più volte, oppure vanno in conflitto con altre oppure peggio ancora vengono richiamate dalle CDN gratuite che sono più che intasate, quindi ogni volta per richiamare un file a volte vediamo la pagina che è li che pensa e continua a girare e caricare gli oggetti poco alla volta, o peggio ancora non caricare niente se la richiesta va in timeout (fuori tempo massimo).

Ovvio che evitare tutto ciò bisognerebbe svilupparsi o farsi sviluppare un tema da zero su misura, ma bisogna essere veramente capaci, il punto è che i costi sono un po’ alti per un lavoro fatto bene.

Il mio consiglio per scegliere un tema che non dia problemi è questo :

  • sono necessarie tutte le funzioni del tema, le userò davvero ?
  • il tema viene aggiornato spesso ? questo è fondamentale
  • quanti temi ha sviluppato il programmatore ?
  • quali sono i feedback sui suoi temi ?
  • c’è un servizio di assistenza post vendita ?

Fatto ciò poi si può anche fare un’ottimizzazione del template se è scritto bene  il codice

Gli aggiornamenti di WordPress

Come avrete notato sicuramente, WordPress rilascia costantemente aggiornamenti, questo ovviamente è un bene, ma è un bene se l’utente li fa, se non vengono fatti allora c’è il rischio che il sito venga hackerato o bucato da qualche pirata informatico, questo perchè va a sfruttare qualche falla.

Gli aggiornamenti comprendono sia i plugin che WordPress in sè, sia il template in uso.

  • Avete un servizio che rende automatici gli aggiornamenti e che li faccia in modo sicuro ? Cioè se l’ultimo aggiornamento vi da una schermata bianca, genera degli errori, non vi fa più accedere alla parte amministrativa di login, avete un modo per tornare indietro in poco tempo (parlo di poche ore) ? Questa procedura si chiama roolback.
  • Avete un’area test o di staging per testare un aggiornamento prima di metterlo online ?

Gli aggiornamenti di WooCommerce

Qui il discorso è complesso perchè molti temi in uso fanno una cosa che si chiama “override”, ovvero personalizzano il template di WooCommerce (quello predefinito) per renderlo più bello, è una pratica che si fa molto spesso e la faccio anche io, l’importante è saperla fare e soprattutto aggiornare il tema quando viene aggiornato anche WooCommerce altrimenti il risultato è questo :

Lo vedete anche voi da WooCommerce \ Stato

Quello che vedete è il sito di un cliente con un tema personalizzato di WooCommerce che non è stato aggiornato nel tempo, il cliente ha fatto l’aggiornamento a WooCommerce e si è ritrovato pieno di errori e con il sito offline.

woocommerce tema obsoleto

Sistemi di cache lato WordPress e lato Server

Un sistema di cache è un “servizio” che si antepone tra il server Apache o NGIX ed il database MySQL o MariaDB, detto così sembra semplice ma è davvero complesso.

Al lato pratico la cache è un contenitore di tutte le pagine di un sito, il punto importante è che queste pagine sono già in formato HTML, cosa significa ?

Normalmente ogni qualvolta che un utente visita una pagina del vostro sito, viene effettuata una query al database e poi risponde con dei risultati all’interno di una pagina in PHP, che a sua volta viene restituita al browser in formato HTML, ovvio che questo richiede tempo, e ne richiede tanto o poco a seconda delle condizioni che ho spiegato sopra.

Invece la cache avendo già le pagine pronte in formato HTML adatto ai browser, risponderà in maniera più veloce, ma molto più veloce.

E’ necessario fare attenzione alla configurazione della cache su siti particolarmente dinamici, per esempio ecommerce con WooCommerce, oppure siti dove le pagine o gli articoli subiscono spesso gli aggiornamenti; sarà quindi necessario impostare un tempo di durata della cache in modo che possa servire pagine HTML sempre aggiornate all’utente che visita il sito internet.

Potrebbe interessarti anche ...

Hai bisogno di una consulenza, lo sviluppo di un plugin o vuoi incrementare le performance del tuo sito ?

Se vuoi postare codice usa codeshare.io
Se vuoi postare uno screeshot usa postimages.org ed inserisci l'url nel commento.

Lascia un commento


Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti e ricevi trucchi e guide

Inserisci la tua email per ricevere gli ultimi articoli dal blog.

Inserendo i tuoi dati confermi di aver letto ed essere d’accordo con la privacy policy.