Un negozio PrestaShop lento può avere un impatto diretto sull'esperienza degli utenti, sulle conversioni e sulla gestione quotidiana dell'e-commerce. Il problema, però, non dipende necessariamente dall'hosting: una risposta lenta può essere causata dall'applicazione, dal database, da un modulo, dal tema, dalle immagini oppure dalla configurazione del server.
Per questo motivo, velocizzare PrestaShop non significa semplicemente aumentare le risorse disponibili, ma individuare prima il collo di bottiglia e intervenire sul componente che sta realmente limitando le prestazioni.
In questa guida vediamo come affrontare l'ottimizzazione di PrestaShop partendo dalla misurazione e arrivando a PHP, cache, database, moduli, tema, web server, hosting e CDN.
L'obiettivo è capire come velocizzare e ottimizzare PrestaShop, quali interventi servono davvero e come verificarne il risultato.
1. Perché PrestaShop può essere lento
PrestaShop è un'applicazione e-commerce articolata: per generare una pagina possono intervenire codice PHP, database, moduli, tema e numerose risorse frontend.
Le cause della lentezza possono quindi essere diverse. Tra le più frequenti troviamo:
- versione o configurazione di PHP non adeguata;
- cache configurata in modo non corretto;
- Smarty configurato per ricompilare continuamente i template;
- moduli pesanti o non ottimizzati;
- tema con molto codice JavaScript o CSS;
- query database inefficienti;
- database cresciuto molto nel tempo;
- immagini troppo pesanti;
- assenza o configurazione non corretta di OPcache;
- risorse insufficienti o mal configurate sul server;
- problemi di I/O, CPU, memoria o processi PHP;
- chiamate verso servizi esterni particolarmente lente;
- configurazioni frontend che generano troppe richieste.
Per questo non esiste un unico ottimizzatore PrestaShop o una singola impostazione capace di risolvere ogni problema di lentezza: serve prima una diagnosi.
Una pagina che impiega diversi secondi a rispondere potrebbe avere un problema PHP, una query lenta, un modulo pesante oppure un'infrastruttura sovraccarica. Se invece il server risponde rapidamente ma il browser impiega molto tempo a completare il caricamento, il problema potrebbe essere principalmente frontend.
L'ottimizzazione di PrestaShop deve quindi partire dalla diagnosi.
2. Prima di ottimizzare: misura le prestazioni
Prima di modificare PrestaShop o il server è importante avere una situazione di riferimento, cioè una misurazione che permetta di confrontare il comportamento del negozio prima e dopo gli interventi.
Il metodo è semplice: misura → individua il collo di bottiglia → intervieni su una sola area → misura di nuovo. In questo modo puoi capire quale intervento ha prodotto il risultato.
Osserva almeno il tempo di risposta del server, il tempo complessivo di caricamento, le risorse frontend, il consumo di CPU e memoria, i tempi delle query database e il comportamento sotto carico.
È importante eseguire test comparabili. Se si modifica contemporaneamente PHP, cache, tema e moduli, anche in caso di miglioramento sarà difficile capire quale intervento abbia prodotto il risultato.
Non fermarsi al punteggio di un singolo strumento
Un punteggio frontend è utile, ma non basta: un negozio può avere pagine apparentemente rapide e un backend lento, oppure un checkout molto più pesante della homepage.
Per ottimizzare PrestaShop e migliorarne le performance in modo efficace bisogna quindi osservare sia il frontend sia i tempi necessari al server per elaborare le richieste.
In particolare, è utile distinguere il tempo di risposta del server dal tempo necessario al browser per scaricare ed elaborare tutte le risorse della pagina. Questa distinzione aiuta a capire se il collo di bottiglia si trova principalmente nel backend o nel frontend.
Per una valutazione più completa si possono osservare anche le metriche Core Web Vitals, soprattutto quando il problema riguarda l'esperienza percepita dall'utente. Non sostituiscono però l'analisi del server: sono un complemento alla diagnosi.
3. PHP: versione, compatibilità e prestazioni
PHP è uno dei componenti più importanti nell'esecuzione di PrestaShop.
Una versione PHP aggiornata e compatibile può offrire vantaggi in termini di sicurezza e prestazioni, ma non bisogna scegliere una versione semplicemente perché è la più recente.
La versione utilizzata deve essere compatibile con:
- versione di PrestaShop;
- tema;
- moduli installati;
- eventuali personalizzazioni;
- estensioni PHP presenti sul server.
Per approfondire il rapporto tra versioni PHP, compatibilità e prestazioni puoi consultare anche la guida PHP per un sito web: versioni, compatibilità e prestazioni.
Nota: requisiti e versioni PHP supportate cambiano con le versioni di PrestaShop. Prima di intervenire, verifica sempre i requisiti della versione installata e la compatibilità di tema e moduli.
Non aggiornare PHP senza verificare la compatibilità
Un aggiornamento di PHP può portare vantaggi prestazionali, ma può anche evidenziare incompatibilità presenti in vecchi moduli o personalizzazioni.
Prima di cambiare versione è quindi opportuno:
- verificare la matrice di compatibilità di PrestaShop;
- controllare i requisiti dei moduli;
- verificare il tema;
- eseguire un test su un ambiente separato quando possibile;
- controllare i log dopo l'aggiornamento.
Una versione PHP molto vecchia può lasciare margini di miglioramento, ma anche un PrestaShop aggiornato può rimanere lento se è appesantito da moduli inefficienti.
4. Cache, Smarty, CSS e JavaScript
La cache è uno degli strumenti fondamentali per ridurre il lavoro necessario a PrestaShop per generare le pagine.
Smarty è il motore di template utilizzato da PrestaShop e gestisce anche la compilazione dei template. In produzione è importante evitare configurazioni che costringano l'applicazione a ricompilare i template a ogni richiesta.
In produzione la cache deve essere configurata in modo coerente con l'ambiente operativo. La compilazione forzata dei template è invece utile soprattutto durante lo sviluppo e, se lasciata attiva in produzione, può introdurre elaborazioni non necessarie.
Le impostazioni disponibili possono variare tra le versioni di PrestaShop: verifica quindi sempre la configurazione prevista dalla release installata, invece di applicare indicazioni riferite a un'altra versione.
Svuotare la cache non significa velocizzare PrestaShop
Svuotare la cache può essere necessario dopo alcune modifiche o quando PrestaShop continua a utilizzare file precedentemente generati, ma non è una tecnica di ottimizzazione da ripetere continuamente.
Una cache correttamente configurata serve proprio a evitare elaborazioni ripetitive.
PrestaShop mette inoltre a disposizione impostazioni per CSS e JavaScript. Nelle versioni che espongono le funzioni CCC (Combine, Compress and Cache), queste possono ridurre il numero o la dimensione delle risorse trasferite al browser. La disponibilità e la posizione delle singole opzioni cambiano tra le versioni, quindi vanno verificate sulla release installata.
Queste ottimizzazioni non devono essere attivate alla cieca: tema e moduli possono dipendere dal comportamento degli script.
Un tema o un modulo possono dipendere da un determinato ordine o comportamento degli script. Una modifica apparentemente positiva può quindi provocare:
- errori JavaScript;
- elementi grafici che non funzionano;
- problemi nel carrello;
- malfunzionamenti del checkout;
- incompatibilità con moduli di terze parti.
Dopo una modifica a cache, CSS o JavaScript è importante verificare homepage, categorie, prodotto, ricerca, carrello, checkout e funzionalità gestite dai moduli. Un sito leggermente più veloce ma con un checkout che non funziona non è un sito ottimizzato.
5. Moduli e tema: spesso il problema è qui
Moduli e tema sono tra le cause più frequenti di problemi di performance. Un modulo può aggiungere query, codice PHP, JavaScript, CSS, chiamate esterne e contenuti alle pagine; anche un solo componente può pesare molto se viene eseguito ovunque.
Come individuare un modulo problematico
Per individuare un modulo problematico, misura la pagina, identifica i componenti coinvolti, disabilita temporaneamente il candidato in un ambiente di test e confronta nuovamente il risultato.
Se la differenza è significativa, il modulo diventa un candidato da analizzare più approfonditamente.
Anche il tema può diventare un collo di bottiglia
Per il tema conviene controllare quantità di CSS e JavaScript, script caricati inutilmente, immagini, codice personalizzato, moduli integrati e override. Se la lentezza è soprattutto frontend, aumentare CPU e RAM può avere un effetto limitato.
6. Database, immagini e OPcache
Database PrestaShop
Il database gestisce prodotti, categorie, clienti, ordini, configurazioni, carrelli e dati dei moduli. Con il tempo, query inefficienti, tabelle molto grandi, indici non adeguati, log e moduli che effettuano molte interrogazioni possono incidere sulle prestazioni.
Anche la configurazione del database deve essere adeguata al carico.
Per comprendere meglio il ruolo del database in un sito web puoi consultare anche la guida Database MySQL: cos'è e perché è importante per un sito web.
Non cancellare dati senza sapere cosa rappresentano
La pulizia del database può essere utile, ma deve essere effettuata con attenzione.
PrestaShop e i suoi moduli possono utilizzare tabelle e dati che hanno una funzione precisa. Cancellare manualmente informazioni senza sapere come vengono utilizzate può provocare errori o perdita di dati.
Prima di una modifica significativa è quindi indispensabile avere un backup affidabile del sito e del database. Per approfondire l'argomento puoi consultare la guida Backup di un sito web: come funziona e come creare una strategia affidabile.
Immagini e prestazioni frontend
Le immagini sono spesso tra le risorse più pesanti scaricate dal browser.
Un catalogo con immagini ad alta risoluzione può incidere molto sui tempi di caricamento, soprattutto su dispositivi mobili. Vanno quindi controllati dimensioni, compressione, formato, miniature e caricamento differito quando appropriato.
Non bisogna però confondere la dimensione del file con la dimensione visualizzata. Ridurre via CSS un'immagine da 3000 pixel a 300 pixel non significa aver ridotto il peso del file trasferito: il browser deve comunque scaricare l'immagine originale.
OPcache: ridurre il lavoro di PHP
OPcache è una componente particolarmente importante per un'applicazione PHP come PrestaShop.
In condizioni normali PHP deve interpretare ed elaborare gli script dell'applicazione. OPcache permette di conservare in memoria il bytecode già compilato, riducendo il lavoro necessario per le richieste successive.
Una configurazione corretta deve tenere conto della memoria disponibile, del numero di file PHP e applicazioni ospitate, della frequenza delle modifiche al codice, del comportamento di PHP-FPM e della gestione della cache dopo gli aggiornamenti.
Non è però corretto pensare che più memoria OPcache significhi automaticamente più velocità. Se il problema è una query lenta o un modulo inefficiente, aumentare la memoria di OPcache non elimina il collo di bottiglia.
7. Web server, hosting e risorse
Il web server e l'ambiente PHP rappresentano un altro livello dell'ottimizzazione server di PrestaShop.
A livello infrastrutturale possono diventare importanti:
- CPU disponibile;
- memoria RAM;
- velocità dello storage;
- prestazioni I/O;
- configurazione PHP-FPM;
- numero di processi PHP disponibili;
- web server;
- database;
- connessioni concorrenti;
- eventuali limiti imposti dall'hosting.
Per questo motivo, quando si sceglie un piano hosting non bisogna guardare esclusivamente allo spazio disco.
Per un e-commerce basato su PrestaShop è quindi importante valutare un ambiente coerente con le esigenze dell'applicazione. Puoi approfondire la proposta Hosting PrestaShop di HostingRelax e verificare quali caratteristiche dell'ambiente siano più adatte al tuo progetto.
La guida Come leggere le caratteristiche di un piano hosting e scegliere quello giusto può aiutare a comprendere quali caratteristiche dell'infrastruttura siano realmente importanti.
Un hosting più potente non risolve qualsiasi problema
Aumentare le risorse può essere la soluzione corretta quando il server è realmente sottodimensionato, ma non quando il problema si trova nell'applicazione.
Un modulo che esegue una query inefficiente, un tema molto pesante o una funzione personalizzata che consuma molta CPU continueranno a rappresentare un problema anche su una macchina più potente.
Prima di aumentare il piano è quindi opportuno capire se le risorse sono realmente il collo di bottiglia.
Se il problema è invece un'infrastruttura che non riesce più a sostenere il carico del negozio, può essere necessario valutare una soluzione con maggiori risorse, come un Cloud VPS o un server dedicato managed, in funzione delle esigenze reali del progetto.
Quando aumentare le risorse dell'hosting
Non esiste una quantità di RAM o CPU che renda automaticamente veloce qualsiasi PrestaShop.
L'aumento delle risorse ha senso quando l'analisi mostra che l'infrastruttura è effettivamente il limite.
Può essere necessario intervenire sull'hosting quando:
- la memoria disponibile è costantemente insufficiente;
- i processi PHP raggiungono frequentemente i limiti;
- la CPU rimane satura durante i periodi di maggiore traffico;
- il database necessita di maggiori risorse;
- lo storage non garantisce prestazioni adeguate;
- il numero di richieste contemporanee supera la capacità dell'ambiente attuale.
In altri casi è più efficace intervenire direttamente su PrestaShop.
La distinzione è importante perché ottimizzare un'applicazione e aumentare le risorse del server sono due interventi differenti.
8. Supporto tecnico per analizzare e ottimizzare PrestaShop
Non tutti i problemi di prestazioni possono essere risolti intervenendo esclusivamente sull'hosting.
In alcuni casi è necessario analizzare direttamente il comportamento di PrestaShop per individuare il componente responsabile della lentezza.
Come servizio extra, HostingRelax può fornire supporto tecnico sia nell'analisi della lentezza sia nelle successive attività di ottimizzazione. L'intervento può riguardare non soltanto l'infrastruttura server, ma anche la configurazione e il funzionamento del negozio, quando il problema lo richiede.
L'analisi può riguardare, in base al problema riscontrato:
- tempi di risposta del server;
- PHP e PHP-FPM;
- OPcache;
- database e query;
- cache e Smarty;
- moduli;
- tema;
- configurazione di PrestaShop;
- immagini e risorse frontend;
- web server;
- risorse dell'hosting;
- eventuali colli di bottiglia individuati durante i test.
L'obiettivo non è applicare una configurazione standard a tutti i negozi, ma individuare la causa della lentezza e intervenire sul componente che la determina.
Questo significa che, in alcuni casi, la soluzione può essere una configurazione più efficiente del server; in altri può essere necessario intervenire su un modulo, sul tema, sul database o su una specifica funzionalità di PrestaShop.
Se il tuo negozio PrestaShop è lento e non è chiaro dove si trovi il problema, puoi contattarci per valutare un'analisi tecnica. In base a quanto emerge dai test, possiamo indicare gli interventi di ottimizzazione più appropriati, sia lato server sia lato PrestaShop.
9. Conclusione
Velocizzare PrestaShop non significa applicare una serie di impostazioni predefinite. Le prestazioni dipendono dall'interazione tra applicazione, PHP, database, moduli, tema, frontend e infrastruttura.
Misurare → individuare il collo di bottiglia → intervenire → misurare nuovamente è il metodo più affidabile per capire cosa migliorare e verificare il risultato.
Questo permette di distinguere un problema di PrestaShop, database o frontend da un limite dell'ambiente hosting.
Un hosting adeguatamente configurato è una componente importante delle prestazioni, ma non può sostituire l'ottimizzazione dell'applicazione quando il problema nasce da codice, moduli, query o configurazioni inefficienti.
Allo stesso modo, ottimizzare PrestaShop non significa necessariamente aumentare le risorse: prima bisogna capire dove si trova il limite, poi scegliere l'intervento più adatto.
10. CDN e DNS: quando incidono sulle prestazioni
Una CDN, Content Delivery Network, permette di distribuire determinate risorse attraverso server geograficamente distribuiti.
Può essere particolarmente utile per contenuti statici come immagini, CSS, JavaScript, font e altri file che possono essere memorizzati in cache.
La CDN non deve però essere considerata una soluzione universale: è soprattutto uno strumento per la distribuzione e la cache di contenuti statici.
Se una richiesta PHP impiega molto tempo per elaborare una pagina dinamica, distribuire immagini e CSS attraverso una CDN non renderà automaticamente più veloce quella parte dell'applicazione.
Per capire meglio come funziona una CDN e quando conviene utilizzarla puoi consultare la guida CDN: come funziona e quando conviene usarla.
DNS: quando può incidere davvero
Il DNS interviene nella fase iniziale in cui il browser deve risolvere il nome del dominio e ottenere l'indirizzo del server.
Un'infrastruttura DNS lenta o configurata male può quindi aggiungere latenza nella fase iniziale della connessione, ma nella maggior parte dei casi non è il primo elemento da controllare quando un PrestaShop è lento.
Se il problema principale è un tempo di risposta PHP elevato, modificare il DNS non risolverà la causa.
Per questo motivo il DNS va considerato nel contesto corretto, soprattutto quando si analizzano i tempi delle prime connessioni o configurazioni che coinvolgono CDN e servizi distribuiti.
Per approfondire il funzionamento di questo componente puoi leggere Cos'è il DNS e a cosa serve.
11. Come capire se il problema è PrestaShop o il server
Per scegliere l'intervento corretto bisogna capire dove si trova il collo di bottiglia.
Il server impiega molto tempo prima di iniziare a rispondere
Analizza PHP, PHP-FPM, query database, moduli, codice PrestaShop, CPU, memoria, I/O e processi concorrenti.
Il server risponde rapidamente ma la pagina completa è lenta
È più probabile un problema frontend: controlla immagini, CSS, JavaScript, font, numero e dimensione delle risorse, tema e servizi esterni.
Solo alcune pagine sono lente
Se homepage e categorie sono rapide ma una scheda prodotto o il checkout sono molto più lenti, cerca una funzionalità, un modulo, una query o una personalizzazione specifica di quelle pagine.
Tutto il negozio diventa lento quando aumenta il traffico
Analizza processi PHP, CPU, memoria, I/O, database, connessioni simultanee e limiti del piano hosting.
Questa distinzione evita di intervenire sul componente sbagliato. Se possibile, conviene raccogliere i dati mentre il problema si manifesta e confrontare pagine e condizioni diverse, anziché basarsi su una singola prova.
12. Errori comuni nell'ottimizzazione di PrestaShop
Gli errori più comuni sono:
Aumentare le risorse senza individuare il problema
Un server più potente può aiutare se il problema è realmente la mancanza di risorse, ma non corregge automaticamente codice inefficiente, query lente o moduli problematici.
Attivare tutte le ottimizzazioni contemporaneamente
Modificare molte impostazioni insieme rende difficile capire cosa abbia funzionato e può introdurre problemi di compatibilità. Meglio procedere per interventi controllati.
Disattivare la cache per un negozio in produzione
La cache è fondamentale per ridurre elaborazioni ripetitive. Disattivarla può avere un impatto negativo significativo sulle prestazioni.
Utilizzare una versione PHP non compatibile
Una versione PHP più recente non è automaticamente migliore se tema e moduli non sono compatibili.
Installare un modulo per ogni problema
Esistono molti moduli che promettono di migliorare le prestazioni, ma aggiungere un ulteriore componente a un PrestaShop già complesso non è necessariamente una buona soluzione.
Pensare che una CDN risolva la lentezza del backend
Una CDN è molto utile per i contenuti statici, ma non sostituisce l'ottimizzazione di PHP, database e applicazione.
Modificare tutto senza una misurazione iniziale
Senza una baseline non è possibile stabilire con affidabilità se le prestazioni siano realmente migliorate.
13. Un metodo pratico per ottimizzare PrestaShop
Parti da una baseline ripetibile, modifica una sola area alla volta e confronta ogni risultato con il dato iniziale.
- Misura. Raccogli dati sulle prestazioni attuali del negozio.
- Individua il collo di bottiglia. Capisci se il problema riguarda backend, frontend, database, moduli, tema, server o rete.
- Controlla PHP. Verifica versione, compatibilità, configurazione e OPcache.
- Verifica cache e Smarty. Controlla che la configurazione sia adatta all'ambiente di produzione.
- Analizza moduli e tema. Individua componenti che introducono elaborazioni o risorse non necessarie.
- Controlla il database. Verifica query, dimensione delle tabelle, indici e attività svolte dai moduli.
- Ottimizza il frontend. Riduci il peso delle immagini e delle risorse CSS e JavaScript senza compromettere le funzionalità.
- Analizza l'infrastruttura. Controlla CPU, RAM, I/O, PHP-FPM, web server e database.
- Valuta CDN e distribuzione dei contenuti. Quando il progetto e il pubblico lo giustificano, distribuire le risorse statiche può ridurre il carico sull'origine.
- Misura nuovamente. Dopo ogni modifica significativa bisogna ripetere i test.