Quali opzioni scegliere nella pagina Prestashop Performance per ottimizzare il tempo di caricamento del vostro negozio?

Vi spiego qui il ruolo di ogni opzione e come configurarle per ottimizzare Prestashop.

Configurazione di Smarty

Smarty è il motore di template utilizzato da Prestashop per generare le pagine del vostro negozio, maggiori informazioni qui: https://www.smarty.net/

Compilazione dei template

I template sono file che descrivono i modelli delle pagine o dei blocchi di pagine del vostro negozio. Sono presenti nel vostro tema e nei vostri moduli e si riconoscono per la loro estensione '.tpl'. Questi modelli contengono HTML e tag Smarty, cioè codice che Smarty riconoscerà e sostituirà con dati a seconda della pagina richiesta o dell'utente collegato.

Smarty trasformerà poi (compilerà) questi file di template in codice PHP, in modo che il server possa eseguirli, ma questa compilazione richiede tempo. Fortunatamente questa fase è necessaria solo una volta, a patto che non si modifichi il file di template

Ci sono 3 scelte per questa opzione:

  • Non ricompilare mai i file di modello: selezionate questa opzione solo se il vostro negozio è completamente finito e non modificate alcun modulo o file di modello. In questo caso, dovrete svuotare la cache manualmente.
  • Ricompila i template se i file sono stati aggiornati: con questa opzione Smarty controllerà se il file del template è stato modificato dall'ultima compilazione. Questa è l'opzione che consiglio, perché un negozio non è mai veramente fisso e controllare la data dell'ultima compilazione richiede pochissimo tempo. In questo modo si evita di perdere tempo per capire perché l'ultima modifica apportata al negozio non appare.
  • Forza la compilazione: attivarla solo se si sta lavorando sul tema o su un modulo, quindi solo durante lo sviluppo.

Cache

Smarty offre un sistema di cache che i moduli possono utilizzare per ottimizzare il loro codice. Ad esempio, il modulo che visualizza le migliori vendite chiede a Smarty di memorizzare nella cache l'HTML generato, così quando questa cache è disponibile il modulo non ha bisogno di consultare il database per conoscere le migliori vendite, ma visualizza l'ultimo contenuto memorizzato nella cache da Smarty. Per rimanere aggiornato, il modulo chiede a Smarty di svuotare la cache per ogni nuova vendita e per ogni aggiunta o eliminazione di un prodotto.

Questa opzione deve essere attivata solo durante la fase di sviluppo del negozio.

Ottimizzazioni multi-front

Quando si utilizzano più server, questa opzione aiuta a sincronizzare le loro cache.

Tipo di cache (Rimosso a partire da PS8)

Permette di specificare dove deve essere memorizzata la cache di Smarty. Si consiglia di scegliere "File system" per non sovraccaricare il server MySQL.

Cancella cache

Ecco un'opzione che mi lascia perplesso perché permette di disabilitare il refresh della cache, non ha alcun interesse. Se prendiamo l'esempio del modulo dei best seller, significa che l'elenco non verrebbe mai aggiornato.

  • Non cancellare mai i file della cache: non scegliere mai questa opzione
  • Cancella la cache ogni volta che qualcosa è stato modificato: scegliere sempre questa opzione

Configurazione della modalità di debug

Disabilitare i moduli non PrestaShop

In caso di errore, è possibile disabilitare tutti i moduli tranne quelli sviluppati da Prestashop. Lasciare l'opzione "No".

Disattivare tutti gli override

L'attivazione di questa opzione può creare maggiori problemi, perché senza sovraccarichi alcuni moduli non funzioneranno più. La cosa peggiore è che non riceverete alcun messaggio di errore che ve lo indichi.

Modalità di debug

Questa è l'opzione più interessante in caso di pagina bianca e di errore 500. Attivando la modalità DEBUG, Prestashop visualizzerà un messaggio di errore più dettagliato che vi permetterà di capire cosa non va.

Configurazione delle funzioni opzionali

Qui è molto semplice, se non utilizzate alcune funzioni di Prestashop allora tanto vale disabilitarle, il vostro negozio ne guadagnerà in velocità.

CCC (Combina, Comprimi e Cache)

Cache intelligente per i CSS

Da attivare assolutamente tranne che durante la fase di creazione o di modifica del vostro sito web. Consente di unire tutti i file CSS in uno solo e di comprimerli. Il tempo di caricamento del vostro negozio Prestashop sarà molto più veloce e meno pesante e otterrete un miglior punteggio Pagespeed Insight di Google o di GTMetrix.

Se notate problemi di stile quando il vostro CSS è compresso, è perché uno dei file CSS contiene un errore di sintassi. Quest'ultimo è ben gestito dal browser in un file separato e non compresso, ma non quando il CCC è attivato. In questo caso è necessario trovare il file in questione e correggere l'errore.

Cache intelligente per JavaScript

Da attivare assolutamente tranne che durante la fase di creazione o modifica del sito web. Consente di unire tutti i file JavaScript in uno solo e di comprimerlo. Otterrete un miglior punteggio Pagespeed Insight di Google o GTMetrix e il tempo di caricamento delle vostre pagine web sarà molto più veloce e meno pesante.

È utile sapere se il tuo server utilizza i protocolli HTTP/2 e HTTP/3.

HTTP/2 (H2) e HTTP/3 (H3) sono versioni più recenti del protocollo HTTP, progettate per migliorare le prestazioni e l'efficienza del sito web. Introducono funzionalità come multiplexing, compressione delle intestazioni e push del server. Il multiplexing consente di inviare più richieste contemporaneamente su una singola connessione TCP. Ciò significa che il sovraccarico delle richieste aggiuntive viene ridotto e che la necessità di ridurre il numero di file per motivi di prestazioni è meno critica.

Su Prestashop, non unendo i file (disabilitando quindi le opzioni CCC), eviti la necessità di scaricare risorse identiche per le pagine che non condividono gli stessi file JS o CSS uniti. Inoltre, quando si utilizza una cache HTML, questa pratica evita la necessità di rigenerare l'intera cache ogni volta che viene modificato un file CSS o JS.

Tuttavia, molti moduli non minimizzano i propri file CSS e JS, quindi potresti incorrere in un leggero sovraccarico in termini di dimensioni del download (sebbene gzip dovrebbe ridurre questo sovraccarico).

In conclusione, con i protocolli HTTP/2 (H2) e HTTP/3 (H3), puoi disabilitare le opzioni CCC: la tua scelta!

Per scoprire se il tuo server utilizza i protocolli HTTP/2 (H2) e HTTP/3 (H3), apri la console del browser del tuo negozio, vai alla scheda Rete e verifica se il protocollo utilizzato per i file statici (immagini, JavaScript, CSS, ecc.) è h2 o h3.

Ottimizzazione di Apache

È essenziale attivarlo solo durante la fase di creazione o di modifica del vostro sito web. Questo permette di aggiungere le direttive di cache per i browser, molto importanti!

Media server

L'utilizzo di un CDN (media server) è particolarmente utile se i vostri utenti provengono da tutto il mondo. Permette di servire immagini, CSS, javascript e font più velocemente perché è più vicino al visitatore. Se vendete solo in Francia, ad esempio, un CDN non è utile perché il vostro host è già abbastanza vicino, a meno che non abbiate scelto un host australiano :-)

Tuttavia, potete usare questa opzione per utilizzare un nome di dominio diverso per servire i vostri file statici. Perché? In modo che le richieste non contengano i cookie e siano quindi meno voluminose. Ad esempio, è possibile creare un nome di dominio shopcdn.fr che punta allo stesso server. Questo nome di dominio viene utilizzato solo per i file statici e non contiene cookie.

Cache

Si tratta di una cache utilizzata per le query SQL eseguite da Prestashop. Personalmente, ne sconsiglio l'uso perché può degradare le prestazioni del vostro negozio. Alcuni utenti lamentano anche un refresh non sempre aggiornato.

Conclusione

Ora sapete come configurare Prestashop per ottimizzare le prestazioni del vostro negozio. Ogni pagina sarà generata più velocemente dal vostro server e sarà più leggera per un caricamento più rapido nel browser dei vostri clienti.

Non esitate a consultare il nostro elenco di moduli Prestashop per ottimizzare ulteriormente il vostro negozio e migliorare il vostro punteggio Google Pagespeed!