Come misurare il reale impatto prestazionale del tuo tema PrestaShop
Il tuo tema è probabilmente più lento di quanto pensi
Ogni proprietario di un negozio PrestaShop ha un'opinione sulla velocità del proprio tema, ma pochissimi dispongono di dati concreti. Dire "il mio negozio sembra veloce" è privo di significato quando Google sta misurando i tuoi Core Web Vitals al millisecondo e utilizza quei numeri per determinare il tuo posizionamento nella ricerca. Per comprendere il reale impatto prestazionale del tuo tema, hai bisogno di un approccio di misurazione sistematico che isoli il contributo del tema dalle prestazioni del server, dall'overhead dei moduli e dalle condizioni di rete.
Questo articolo illustra una metodologia completa di misurazione delle prestazioni. Imparerai come utilizzare Lighthouse, WebPageTest, Chrome DevTools e il monitoraggio degli utenti reali per quantificare esattamente quanto il tuo tema costa in termini di tempo di caricamento, interattività e stabilità visiva. Ancora più importante, imparerai come separare le prestazioni del tema da tutto il resto, così da poter prendere decisioni informate sull'ottimizzazione o la sostituzione.
Perché le prestazioni del tema contano più di quanto pensi
Il tuo tema controlla l'intera esperienza front-end. Determina quali file CSS vengono caricati, quanto JavaScript viene eseguito, come vengono renderizzate le immagini, come vengono caricati i font e come viene costruito il layout. Un tema mal costruito può aggiungere 2-5 secondi al tempo di caricamento della pagina, indipendentemente dalla velocità del server o dalla qualità del codice dei moduli.
I Core Web Vitals di Google misurano direttamente aspetti dell'esperienza utente che il tuo tema controlla. Il Largest Contentful Paint (LCP) misura quanto velocemente il contenuto principale diventa visibile. Il First Input Delay (FID) e il suo successore Interaction to Next Paint (INP) misurano quanto velocemente la pagina risponde all'interazione dell'utente. Il Cumulative Layout Shift (CLS) misura la stabilità visiva durante il caricamento della pagina. Tutte e tre le metriche sono fortemente influenzate dall'architettura del tema.
L'impatto sul business è concreto. Le ricerche mostrano costantemente che ogni secondo aggiuntivo di tempo di caricamento della pagina riduce i tassi di conversione del 7-10%. Un tema che aggiunge 2 secondi di tempo di caricamento non necessario potrebbe costarti il 15-20% delle vendite potenziali. Questo rende la misurazione delle prestazioni del tema non un esercizio tecnico ma un'analisi critica per il business.
Configurazione dell'ambiente di test
Prima di iniziare a misurare, hai bisogno di un ambiente di test controllato. Misurare le prestazioni sul tuo negozio live mentre i clienti navigano e il carico del server fluttua produrrà risultati inconsistenti. Devi minimizzare le variabili.
Idealmente, configura una copia di staging del tuo negozio PrestaShop. Questa dovrebbe essere una copia identica del tuo negozio di produzione in esecuzione sullo stesso hardware del server o su una configurazione simile. Installa gli stessi moduli, importa gli stessi prodotti e utilizza la stessa configurazione del tema. L'unica differenza dovrebbe essere che nessun cliente reale vi sta accedendo.
Se un ambiente di staging completo non è possibile, esegui i test durante le ore di basso traffico quando il carico del server è minimo. Esegui ogni test almeno tre volte e calcola la media dei risultati per tenere conto della variabilità di rete e del server.
Disabilita qualsiasi proxy di caching (come Cloudflare) per i test, oppure utilizza l'URL di staging che bypassa il CDN. Il caching del CDN maschera le reali prestazioni del tuo tema servendo contenuti memorizzati nella cache. Vuoi misurare cosa succede quando un visitatore raggiunge il tuo server di origine con una cache del browser vuota.
Documenta la tua configurazione di base. Annota la versione PHP, la versione di PrestaShop, i moduli attivi, le impostazioni CCC (Combine, Compress, Cache) e le specifiche del server. Avrai bisogno di queste informazioni per riprodurre i risultati e confrontare le misurazioni nel tempo.
Lighthouse: il tuo punto di partenza
Google Lighthouse è integrato in Chrome DevTools e fornisce l'audit delle prestazioni più accessibile disponibile. Simula un dispositivo mobile su una connessione limitata e misura le metriche chiave che Google utilizza per il posizionamento nella ricerca.
Per eseguire un audit Lighthouse, apri Chrome DevTools (F12), naviga fino alla scheda Lighthouse, seleziona "Prestazioni" come categoria, scegli "Dispositivo mobile" come dispositivo e clicca su "Analizza caricamento pagina". Lighthouse ricaricherà la pagina in un ambiente simulato e genererà un report dettagliato.
Il punteggio Prestazioni (0-100) è un composito ponderato di sei metriche: First Contentful Paint (10%), Speed Index (10%), Largest Contentful Paint (25%), Total Blocking Time (30%), Cumulative Layout Shift (25%). Nota che Total Blocking Time e Largest Contentful Paint insieme rappresentano il 55% del punteggio, quindi queste sono le metriche più probabilmente influenzate dalla qualità del tema.
Esegui l'audit su almeno quattro tipi di pagina: la tua homepage, una pagina di categoria, una pagina prodotto e la pagina carrello o checkout. Ogni tipo di pagina ha una complessità DOM e requisiti di risorse diversi, e il tuo tema potrebbe comportarsi in modo molto diverso tra di essi.
Avvertenza importante: Lighthouse funziona in un ambiente simulato con throttling di CPU e rete. I numeri assoluti che produce non corrispondono alle prestazioni del mondo reale. Sono utili per il confronto (prima vs dopo, tema A vs tema B) ma non dovrebbero essere presi come l'esperienza effettiva dei tuoi clienti. Per i numeri del mondo reale, hai bisogno del Real User Monitoring, trattato più avanti in questo articolo.
Registra ogni risultato di Lighthouse in un foglio di calcolo. Includi l'URL testato, la data e l'ora, il punteggio complessivo delle Prestazioni e il valore di ogni singola metrica. Questo crea una baseline a cui puoi fare riferimento mentre apporti modifiche.
WebPageTest: analisi approfondita
WebPageTest (webpagetest.org) è uno strumento gratuito che fornisce molti più dettagli rispetto a Lighthouse. Utilizza browser reali su hardware reale da posizioni in tutto il mondo, offrendoti un quadro più accurato di ciò che i tuoi clienti sperimentano.
Avvia un test inserendo l'URL del tuo negozio, selezionando una posizione di test vicina al tuo pubblico principale e scegliendo una velocità di connessione. Per i negozi europei, utilizza una posizione di test a Francoforte o Londra con un profilo di connessione Cable o 4G. Esegui almeno tre test per ottenere risultati mediani.
Il grafico a cascata è l'output più prezioso di WebPageTest. Mostra ogni singola risorsa che la tua pagina carica, in ordine cronologico, con il tempo che ogni risorsa impiega per essere scaricata. Questa visualizzazione rende immediatamente evidente quali risorse bloccano il rendering e quali vengono caricate inutilmente.
Cerca questi pattern nel grafico a cascata. CSS e JavaScript che bloccano il rendering appaiono come barre lunghe nella parte superiore del grafico prima che qualsiasi contenuto venga renderizzato. File font di grandi dimensioni che si scaricano prima del contenuto critico indicano una strategia di caricamento dei font inadeguata. Richieste di terze parti (analytics, widget social, plugin di chat) che bloccano o ritardano le risorse del tema.
WebPageTest fornisce anche una visualizzazione filmstrip che mostra screenshot della tua pagina a intervalli di 100ms durante il caricamento. Questo è incredibilmente utile per comprendere l'esperienza visiva di caricamento. Puoi vedere esattamente quando appare il testo, quando vengono renderizzate le immagini e quando si verificano gli spostamenti del layout.
La vista "Content Breakdown" mostra il peso totale della tua pagina suddiviso per tipo di contenuto: HTML, CSS, JavaScript, immagini, font e altre risorse. Per un tema ben ottimizzato, il CSS dovrebbe essere sotto i 100KB compressi, il JavaScript sotto i 150KB compressi e i font sotto i 50KB. Se i tuoi numeri sono significativamente più alti, il tuo tema porta peso in eccesso.
Chrome DevTools - Scheda Performance: analisi fotogramma per fotogramma
La scheda Performance in Chrome DevTools fornisce l'analisi più granulare disponibile. Registra una timeline dettagliata di tutto ciò che il browser fa durante il caricamento della pagina, inclusa l'esecuzione di JavaScript, i calcoli del layout, le operazioni di paint e il compositing.
Per utilizzarla, apri DevTools (F12), vai alla scheda Performance, seleziona "Screenshot" e "Web Vitals", seleziona il throttle di rete "Slow 3G" e il throttle CPU "4x slowdown", poi clicca sul pulsante di registrazione e ricarica la pagina. Ferma la registrazione una volta che la pagina si è completamente caricata.
La timeline risultante mostra diverse corsie di informazione. La corsia Network mostra le richieste delle risorse. La corsia Frames mostra gli screenshot nei momenti chiave. La corsia Main mostra l'esecuzione di JavaScript sul thread principale. I marcatori Web Vitals mostrano esattamente quando si verificano gli eventi FCP, LCP e CLS.
Concentrati sulla corsia del thread Main. I blocchi gialli lunghi sono esecuzioni JavaScript. Cerca task JavaScript che impiegano più di 50ms, poiché questi sono "long task" che bloccano l'interazione dell'utente e contribuiscono al Total Blocking Time. Identifica quali script causano questi long task cliccando su di essi per vedere lo stack delle chiamate. Se i long task provengono dai file JavaScript del tuo tema, quello è un problema di prestazioni del tema.
I blocchi rossi nella corsia Main indicano layout thrashing, dove il browser è costretto a ricalcolare il layout più volte in rapida successione. Questo accade spesso quando JavaScript legge proprietà del layout (offsetHeight, getBoundingClientRect) e poi modifica il DOM in un ciclo. Il codice del tema che causa layout thrashing è una fonte comune di punteggi INP scarsi.
Le schede "Bottom-Up" e "Call Tree" sotto la timeline ti permettono di ordinare l'esecuzione JavaScript per tempo totale o tempo proprio. Questo ti mostra quali funzioni specifiche consumano più tempo CPU durante il caricamento della pagina. Se le funzioni del tema dominano questa lista, il tuo tema è il collo di bottiglia delle prestazioni.
Analisi del waterfall di rete per le risorse del tema
La scheda Network nei DevTools fornisce una vista diversa del caricamento delle risorse. Filtra per tipo di risorsa (CSS, JS, Font, Img) per isolare le risorse specifiche del tema e comprendere il loro impatto.
Inizia identificando tutte le risorse che appartengono al tuo tema. Queste vengono tipicamente caricate da percorsi come /themes/nome-tema/assets/ o simili. Annota il numero totale e la dimensione combinata. Poi identifica le risorse caricate dai moduli (dai percorsi /modules/) per comprendere separatamente il contributo dei moduli.
Abilita la casella "Disabilita cache" e ricarica. Questo simula un visitatore alla prima visita. Annota la dimensione totale del trasferimento e il tempo per DOMContentLoaded e gli eventi Load. Poi ricarica senza la casella per vedere l'esperienza con cache (visitatore di ritorno). La differenza ti dice quanto il tuo tema beneficia della cache del browser.
Guarda la colonna "Initiator" per comprendere la catena di dipendenze. Un file CSS caricato dal template head del tuo tema è una risorsa critica che blocca il rendering. Un file JavaScript caricato con l'attributo async o defer non è bloccante. Comprendere queste dipendenze ti aiuta a identificare quali risorse del tema sono sul percorso critico e quali potrebbero essere differite.
Utilizza la colonna "Priority" (abilitala tramite il menu contestuale dell'intestazione della colonna) per vedere come il browser prioritizza ogni risorsa. Le risorse con priorità "Highest" o "High" sono quelle che il browser considera più importanti. Se il tuo tema carica risorse non critiche ad alta priorità, quella è un'opportunità di ottimizzazione.
Il confronto con e senza tema
Per isolare davvero l'impatto prestazionale del tuo tema, hai bisogno di un confronto. L'approccio più rigoroso è testare il tuo negozio con il tema attuale e poi passare al tema predefinito minimale di PrestaShop e testare nuovamente.
Nel tuo ambiente di staging, esegui un set completo di misurazioni con il tema attuale attivo. Registra tutte le metriche. Poi cambia il tema con il tema Classic di PrestaShop (o Hummingbird se sei su PrestaShop 8.x+) e esegui le stesse misurazioni. La differenza rappresenta l'impatto incrementale del tuo tema rispetto a quello predefinito.
Questo confronto non è perfetto perché il tema predefinito non ha le tue personalizzazioni e l'output visivo è diverso. Ma ti fornisce un tetto massimo per quanto miglioramento prestazionale è possibile attraverso l'ottimizzazione del tema. Se il tuo tema attuale ottiene 30 punti in meno del tema predefinito su Lighthouse, sai che c'è un margine significativo per il miglioramento.
Un confronto più controllato implica la disabilitazione progressiva delle funzionalità del tema. Inizia con tutte le funzionalità abilitate, misura, poi disabilita i font personalizzati e misura nuovamente. Disabilita gli effetti JavaScript del tema e misura. Rimuovi il font di icone del tema. Ogni passaggio ti mostra il costo incrementale di quella specifica funzionalità.
Core Web Vitals: cosa misura effettivamente Google
I Core Web Vitals sono le tre metriche che Google utilizza per scopi di posizionamento. Vengono misurati sugli utenti reali attraverso il Chrome User Experience Report (CrUX), non attraverso strumenti di laboratorio come Lighthouse. Comprendere la differenza tra le misurazioni di laboratorio e quelle sul campo è fondamentale.
Le misurazioni di laboratorio (Lighthouse, WebPageTest) utilizzano condizioni simulate. Le misurazioni sul campo (CrUX, Real User Monitoring) catturano le esperienze effettive degli utenti su diversi dispositivi, reti e posizioni. Il tuo punteggio Lighthouse potrebbe essere 75, ma se la maggior parte dei tuoi clienti utilizza telefoni più vecchi con connessioni lente, i dati sul campo potrebbero raccontare una storia molto diversa.
Per vedere i tuoi dati sul campo, utilizza il report Core Web Vitals di Google Search Console o PageSpeed Insights (pagespeed.web.dev). PageSpeed Insights mostra sia i dati di laboratorio che quelli sul campo quando disponibili. Se il tuo sito ha traffico sufficiente, vedrai i dati degli utenti reali accanto alla simulazione di Lighthouse.
Le soglie per buoni Core Web Vitals sono: LCP sotto i 2,5 secondi, INP sotto i 200 millisecondi e CLS sotto 0,1. Google valuta il 75° percentile dei tuoi utenti, il che significa che il 75% dei tuoi utenti deve avere una buona esperienza perché una metrica sia classificata come "buona". Questa è una barra alta perché i visitatori con le peggiori prestazioni (telefoni vecchi, reti lente) influenzano pesantemente il 75° percentile.
Il tuo tema influisce direttamente su tutte e tre le metriche. L'LCP è influenzato dalla dimensione dei file CSS (che bloccano il rendering), dalla strategia di caricamento dei font e dall'implementazione dell'immagine hero. L'INP è influenzato dall'esecuzione JavaScript, dall'efficienza dei gestori di eventi e da come il tema risponde ai clic e allo scorrimento. Il CLS è influenzato dai segnaposto delle immagini, dall'inserimento di contenuti dinamici e dal caricamento dei font.
Real User Monitoring: la verità sul campo
Il Real User Monitoring (RUM) cattura i dati sulle prestazioni dai tuoi visitatori effettivi mentre navigano nel tuo negozio. Questa è la misura più accurata dell'impatto prestazionale del tuo tema nel mondo reale perché riflette i dispositivi, le reti e i pattern di utilizzo effettivi del tuo pubblico.
Google Analytics 4 cattura automaticamente i Core Web Vitals se hai lo snippet gtag.js sul tuo sito. Puoi visualizzare questi dati in GA4 sotto Report, Esperienza utente, oppure creando un'esplorazione personalizzata.
Per un RUM più dettagliato, servizi dedicati come SpeedCurve, Datadog o la libreria JavaScript gratuita web-vitals forniscono dati granulari. La libreria web-vitals (disponibile su npm) è particolarmente utile perché puoi aggiungerla al tuo tema e inviare i dati sulle prestazioni a qualsiasi endpoint di analytics.
Con i dati RUM, puoi segmentare le prestazioni per tipo di dispositivo (mobile vs desktop), browser (Chrome vs Safari vs Firefox), paese e tipo di pagina. Questa segmentazione spesso rivela che il tuo tema si comporta in modo molto diverso per diversi segmenti di pubblico. Un tema potrebbe ottenere buoni risultati per gli utenti desktop Chrome ma scarsi per gli utenti mobile Safari a causa delle differenze nelle prestazioni del motore JavaScript o nel rendering CSS.
Monitora i dati RUM nel tempo per correlare i cambiamenti di prestazioni con gli aggiornamenti del tema, le installazioni di moduli o le modifiche alla configurazione. Se il tuo LCP aumenta improvvisamente di 500ms, controlla cosa è cambiato nel tuo stack di tema o moduli in quella data.
Profilazione lato server: separare il backend dal frontend
A volte le scarse prestazioni della pagina vengono attribuite al tema quando il vero problema è il tempo di elaborazione lato server. Prima di ottimizzare il tema, verifica che il server stia generando l'HTML rapidamente.
PrestaShop include un profiler integrato che puoi abilitare nel back office sotto Parametri avanzati, Prestazioni, Modalità debug. Il profiler aggiunge una barra di debug nella parte inferiore di ogni pagina che mostra il conteggio delle query SQL, il tempo di esecuzione SQL, il tempo di generazione della pagina e l'utilizzo della memoria.
Un'installazione PrestaShop ben configurata dovrebbe generare la maggior parte delle pagine in meno di 500ms lato server. Se la generazione del server richiede più di un secondo, il problema non è il tuo tema ma il server, le query al database o gli hook dei moduli. Correggere il tema non aiuterà se il server impiega 3 secondi solo per generare l'HTML.
Puoi anche misurare il tempo di risposta del server (Time to First Byte, TTFB) dalla scheda Network nei DevTools. Clicca sulla richiesta del documento HTML e guarda la sezione Timing. Il valore "Waiting (TTFB)" mostra quanto il browser ha atteso la risposta del server. Sottrai la latenza di rete (che puoi stimare dal valore "Connection") per ottenere il tempo di elaborazione approssimativo del server.
Se il tuo TTFB è alto ma le risorse del tema sono veloci, concentrati sull'ottimizzazione del server (PHP OPcache, cache delle query MySQL, Redis/Memcached, object caching di PrestaShop) piuttosto che sull'ottimizzazione del tema. Se il tuo TTFB è veloce ma la pagina si carica comunque lentamente, il tema è probabilmente il collo di bottiglia.
Il framework di benchmarking prima/dopo
Quando apporti modifiche alle prestazioni del tema, hai bisogno di un confronto prima/dopo rigoroso per verificare che la modifica abbia effettivamente aiutato. Ecco un framework che produce risultati affidabili.
Prima di apportare qualsiasi modifica, esegui cinque audit Lighthouse su ogni pagina target e registra il punteggio mediano e le singole metriche. Esegui anche tre test WebPageTest e registra i valori mediani. Salva i report completi, non solo i punteggi, perché potresti dover esaminare i dettagli in seguito.
Apporta la tua modifica. Svuota tutte le cache, inclusa la cache Smarty di PrestaShop, l'OPcache e qualsiasi cache CDN. Attendi almeno 60 secondi perché l'OPcache si resetti completamente se hai modificato file PHP.
Esegui gli stessi cinque audit Lighthouse e tre test WebPageTest sulle stesse pagine. Confronta i risultati mediani. Una modifica è significativa se produce un miglioramento coerente in tutti i test. Se alcuni test mostrano miglioramento e altri regressione, l'impatto della modifica rientra nel margine di errore della misurazione.
Sii scettico riguardo ai piccoli miglioramenti. I punteggi Lighthouse possono variare di più o meno 5 punti tra esecuzioni identiche a causa della variabilità del throttle simulato di rete e CPU. Una modifica che migliora il punteggio da 62 a 65 potrebbe non essere un miglioramento reale. Una modifica da 62 a 75 quasi certamente lo è.
Per il confronto più rigoroso, utilizza la funzione di confronto visivo di WebPageTest. Inserisci il tuo URL di staging (prima della modifica) e l'URL di produzione (dopo la modifica), oppure esegui lo stesso URL in momenti diversi e confronta i test salvati. WebPageTest genera un filmstrip affiancato ed evidenzia le differenze.
Problemi comuni di prestazioni del tema e come rilevarli
Attraverso la misurazione, identificherai problemi di prestazioni specifici. Ecco i problemi più comuni legati al tema e le metriche che li rivelano.
Il CSS che blocca il rendering appare come un FCP e LCP elevati con un lungo intervallo tra TTFB e FCP nel waterfall. La soluzione è inserire inline il CSS critico e differire i fogli di stile non critici. Il JavaScript eccessivo si manifesta come TBT elevato e punteggi INP scarsi. I long task nella timeline della scheda Performance confermano questo. Il caricamento non ottimizzato dei font si manifesta come FOIT (testo invisibile) nel filmstrip o un intervallo tra FCP e il momento in cui il testo appare effettivamente. Gli spostamenti del layout causati da immagini senza dimensioni o contenuti inseriti dinamicamente appaiono come punteggi CLS elevati.
Ogni problema ha una firma di misurazione specifica. Imparare a leggere queste firme è ciò che trasforma il lavoro sulle prestazioni da supposizioni in ingegneria. Misura prima, diagnostica sulla base dei dati, correggi il problema specifico, poi misura di nuovo per verificare che la correzione abbia funzionato.
Costruire una routine di monitoraggio delle prestazioni
La misurazione delle prestazioni non dovrebbe essere un'attività una tantum. Costruisci una routine che individui le regressioni prima che influenzino i tuoi clienti e il posizionamento nella ricerca.
Settimanalmente, esegui Lighthouse sui tuoi quattro tipi di pagina chiave e registra i risultati. Mensilmente, esegui un'analisi completa con WebPageTest e confronta con il mese precedente. Dopo ogni aggiornamento del tema o installazione di moduli, esegui un confronto prima/dopo. Configura il monitoraggio dei Core Web Vitals in Google Search Console e rivedilo mensilmente.
Considera l'automazione con strumenti come Lighthouse CI (per esecuzioni automatizzate di Lighthouse nella tua pipeline di deployment) o SpeedCurve (per il monitoraggio continuo con avvisi). Questi strumenti ti notificano immediatamente quando le prestazioni peggiorano, permettendoti di identificare e correggere la causa prima che influisca sul tuo posizionamento nella ricerca.
L'obiettivo non è un punteggio Lighthouse perfetto. L'obiettivo è capire esattamente dove vanno il tuo tempo e le tue risorse ad ogni caricamento di pagina, e prendere decisioni deliberate e basate sui dati su cosa ottimizzare, cosa mantenere e cosa rimuovere.
Questa risposta ti è stata utile?
Hai ancora domande?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.