Ottimizzare Magento 2 per le performance richiede un intervento su più livelli: configurazione della piattaforma, frontend, caching, infrastruttura, immagini e monitoraggio. In questo articolo analizziamo le principali best practice per migliorare velocità, stabilità e qualità dell’esperienza utente di un eCommerce Magento.
Le performance incidono direttamente sull’esperienza di navigazione e sulla capacità dello store di gestire in modo efficiente traffico, catalogo e operazioni. Tempi di caricamento ridotti e una buona esperienza utente contribuiscono inoltre al raggiungimento di metriche Core Web Vitals soddisfacenti, importanti anche nell’ambito dell’ottimizzazione SEO.
Impostazione della corretta modalità applicativa
Magento prevede tre modalità operative:
- Default mode (Predefinita)
- Developer mode (Sviluppatore)
- Production mode (Produzione)
La modalità Developer è progettata per le attività di sviluppo e debugging e non deve essere utilizzata su un ambiente di produzione. Anche la modalità Default non è quella indicata per uno store Magento in produzione.
Per un sito live è necessario utilizzare la Production mode, specificamente ottimizzata per un ambiente di produzione. Questa modalità disabilita le funzionalità dedicate allo sviluppo e consente di utilizzare correttamente i meccanismi di compilazione e distribuzione delle risorse statiche previsti da Magento.
Utilizzo di un frontend ottimizzato per le performance
La scelta dell’architettura frontend ha un impatto significativo sulle performance di un eCommerce Magento. Il frontend tradizionale basato su Luma utilizza uno stack che può richiedere un importante lavoro di ottimizzazione, soprattutto nei progetti più complessi e nella navigazione da dispositivi mobili.
Oggi, per i nuovi progetti Magento, adottiamo Hyvä come soluzione frontend, grazie a un’architettura più leggera e a un uso significativamente ridotto di JavaScript rispetto allo stack Luma tradizionale.
La riduzione della complessità del frontend, del JavaScript eseguito dal browser e del numero di risorse necessarie al rendering delle pagine può contribuire a ottenere tempi di caricamento inferiori e migliori Core Web Vitals. Il risultato finale dipende naturalmente anche dalla qualità dell’implementazione, dalle estensioni utilizzate, dall’infrastruttura e dall’ottimizzazione complessiva dello store.
Aggiornamento della versione di Magento
Mantenere Magento aggiornato a una versione supportata è importante non soltanto dal punto di vista della sicurezza, ma anche per beneficiare delle evoluzioni tecnologiche, delle correzioni e dei miglioramenti introdotti nelle nuove release della piattaforma.
Le versioni più recenti di Magento e Adobe Commerce evolvono insieme allo stack tecnologico su cui si basano, introducendo il supporto alle nuove versioni di PHP, dei motori di ricerca, dei database e dei sistemi di caching. Per questo motivo è importante verificare sempre i requisiti di sistema ufficiali relativi alla specifica versione di Magento utilizzata.
Un aggiornamento Magento non consiste tuttavia nel semplice aggiornamento del core. È necessario verificare l’intero stack applicativo e infrastrutturale, comprese estensioni di terze parti, personalizzazioni, frontend, versione PHP, database, motore di ricerca e servizi di caching.
In particolare, durante un aggiornamento è opportuno verificare:
- Compatibilità delle estensioni: i moduli di terze parti devono essere compatibili con la nuova versione di Magento e con le relative dipendenze.
- Codice personalizzato: moduli e personalizzazioni custom devono essere verificati ed eventualmente adeguati.
- Frontend: tema, componenti e moduli che intervengono sull’interfaccia devono essere testati sulla nuova versione.
- Stack tecnologico: PHP, database, motore di ricerca, caching e altri servizi devono rispettare i requisiti della versione Magento adottata.
L’aggiornamento di Magento 2 richiede quindi un’attività di analisi e test dell’intera installazione, da eseguirsi prima su un ambiente di staging prima del rilascio in produzione.
Caching e Full Page Cache
Una corretta strategia di caching è fondamentale per ridurre i tempi di risposta del server e il carico sull’applicazione Magento.
Per la Full Page Cache in produzione, Varnish rappresenta la soluzione raccomandata da Adobe. Operando come reverse proxy HTTP, Varnish può servire direttamente le pagine memorizzate nella cache senza richiedere a Magento di rigenerarle a ogni richiesta, riducendo sensibilmente il tempo di risposta.
Per altre tipologie di cache e per la gestione delle sessioni possono essere utilizzati sistemi di caching in-memory compatibili con la specifica versione di Magento installata. Nelle versioni più recenti della piattaforma, Valkey è supportato come backend di cache compatibile con Redis.
La configurazione deve comunque essere definita sulla base della versione Magento utilizzata e dell’architettura dell’infrastruttura, evitando di applicare configurazioni standard senza considerare caratteristiche e carico effettivo dello store.
Impostazione della corretta modalità di reindicizzazione
L’indicizzazione è il meccanismo utilizzato da Magento per trasformare e organizzare i dati in modo da consentire alla piattaforma di recuperarli in maniera più efficiente.
Magento prevede principalmente due modalità di aggiornamento degli indici:
- Update on Save
- Update on Schedule
Con Update on Save, l’indice interessato viene aggiornato quando vengono apportate modifiche ai relativi dati. Su store con numerosi aggiornamenti, cataloghi estesi o carichi elevati, questa modalità può aumentare il lavoro eseguito durante le operazioni amministrative.
Con Update on Schedule, invece, gli aggiornamenti vengono elaborati in background attraverso i cron job. Adobe raccomanda questa modalità per migliorare le performance, soprattutto nei progetti caratterizzati da cataloghi ampi o frequenti aggiornamenti dei dati.
La configurazione degli indexer deve comunque essere valutata in funzione delle caratteristiche dello store e dei singoli indici.
Ottimizzazione di CSS e JavaScript
L’ottimizzazione delle risorse frontend è un altro aspetto importante per migliorare le prestazioni di Magento. Non si tratta soltanto di minificare CSS e JavaScript, ma di ridurre la quantità di codice trasferito ed eseguito dal browser e di limitare le risorse non necessarie durante il caricamento iniziale della pagina.
Tra gli aspetti da analizzare rientrano il peso complessivo di CSS e JavaScript, il codice inutilizzato, il caricamento delle risorse di terze parti, il lazy loading e la priorità assegnata alle risorse necessarie per visualizzare il contenuto principale della pagina.
Una strategia efficace deve quindi concentrarsi non soltanto sulla dimensione dei file, ma sull’intero processo di caricamento e rendering del frontend. Anche da questo punto di vista, l’adozione di un frontend più leggero come Hyvä contribuisce a ridurre la complessità del frontend e il carico di risorse sul browser.
Utilizzo di una CDN per i contenuti statici
L’utilizzo di una Content Delivery Network (CDN) può contribuire a ridurre la latenza nella distribuzione di immagini, CSS, JavaScript e altre risorse statiche, soprattutto quando lo store serve utenti distribuiti geograficamente.
Una CDN distribuisce i contenuti attraverso una rete di nodi geograficamente distribuiti, consentendo di servire le risorse da una posizione più vicina all’utente.
Soluzioni come Cloudflare possono inoltre offrire funzionalità aggiuntive di caching, ottimizzazione e sicurezza, comprese misure di protezione dal traffico automatizzato e da diverse tipologie di minacce.
Ottimizzazione delle immagini
Le immagini rappresentano spesso una parte significativa del peso complessivo delle pagine di un eCommerce, soprattutto nelle pagine prodotto, nelle categorie e nella homepage.
Una corretta strategia di ottimizzazione dovrebbe considerare compressione, dimensionamento corretto delle immagini, formati moderni e lazy loading, evitando di trasferire al browser file più grandi di quanto necessario per la loro effettiva visualizzazione.
L’ottimizzazione può essere gestita attraverso servizi dedicati o CDN che prevedono funzionalità di image optimization oppure attraverso moduli specifici per Magento.
Tra le possibili soluzioni rientrano servizi come Cloudflare Images e moduli Magento dedicati alla conversione e all’ottimizzazione delle immagini, come Magento 2 WebP Images di Magefan.
L’obiettivo è ridurre la quantità di dati trasferiti senza compromettere la qualità visiva delle immagini, con benefici sui tempi di caricamento e sulle metriche Core Web Vitals.
Ambiente di hosting performante
Le performance di Magento dipendono anche dall’infrastruttura sulla quale viene eseguita la piattaforma. Non esiste una configurazione hardware valida per tutti i progetti: le risorse devono essere dimensionate in funzione del catalogo, del traffico, del numero di store view, delle integrazioni, dei processi in background e dei picchi di carico previsti.
Oltre alla capacità di CPU e RAM, è importante considerare la velocità dello storage, la configurazione del database, il web server, PHP-FPM, il sistema di caching, il motore di ricerca e la distribuzione dei diversi servizi.
Per progetti con carichi elevati può inoltre essere opportuno separare alcuni componenti dell’architettura su servizi o server differenti, evitando che database, ricerca, caching e applicazione competano per le stesse risorse.
Il dimensionamento dell’infrastruttura deve quindi essere effettuato sulla base delle caratteristiche reali dello store e verificato attraverso monitoraggio e test di carico.
Utilizzo di strumenti di monitoraggio delle performance
L’ottimizzazione delle performance non è un’attività da eseguire una sola volta. Uno store Magento evolve continuamente attraverso aggiornamenti, nuove estensioni, modifiche al catalogo, integrazioni e variazioni del traffico.
Strumenti di Application Performance Monitoring come New Relic possono aiutare a individuare colli di bottiglia applicativi, query lente, errori e tempi di risposta anomali. Strumenti di profiling come Blackfire possono invece essere utilizzati per analizzare in dettaglio l’esecuzione dell’applicazione e individuare aree di ottimizzazione.
A questi strumenti è utile affiancare il monitoraggio delle performance frontend e dei Core Web Vitals, così da avere una visione complessiva sia del comportamento dell’infrastruttura sia dell’esperienza effettivamente offerta agli utenti.
Conclusione
L’ottimizzazione delle performance di Magento 2 richiede un approccio complessivo che coinvolge frontend, backend, caching, database, infrastruttura e modalità di distribuzione dei contenuti.
Non esiste quindi un singolo intervento in grado di rendere automaticamente veloce uno store Magento. I risultati migliori derivano dalla combinazione di una corretta configurazione della piattaforma, un frontend efficiente, un’infrastruttura adeguatamente dimensionata e un’attività continua di monitoraggio e ottimizzazione.
Le performance devono inoltre essere considerate insieme alla qualità complessiva dell’esperienza utente: velocità, usabilità, navigazione mobile e semplicità del percorso d’acquisto concorrono alla qualità di un eCommerce e possono incidere sulla capacità dello store di convertire i visitatori in clienti.
Advanced Logic è Adobe Solution Partner e dispone di un team specializzato nello sviluppo e nell’ottimizzazione di piattaforme Magento, con competenze che comprendono frontend, backend, infrastruttura e performance.