Magento: come velocizzare un e-commerce? [guida]

come migliorare la velocità di un ecommerce

A cosa serve velocizzare il sito e-commerce

Migliorare la risposta di un sito e-commerce ha fondamentalmente due motivazioni. Una in ambito Seo, l’altra in ambito User Experience.

Matt Cutts nel 2010 spiego come la velocità di un sito internet, sia un fattore di ranking https://www.mattcutts.com/blog/site-speed/

Se vuoi avere un sito ben posizionato è indispensabile migliorare la risposta alla navigazione.

Il secondo motivo riguarda l’user experience. L’esperienza d’uso è un fattore determinante per agevole l’acquisto.
Se vado a provare un’automobile e questa ha sedili scomodi e il motore loffio, la tua esperienza sarà negativa.
Stessa cosa per un sito internet. Attirare un cliente è molto complesso, perderlo è molto facile. Quindi, una pessima user experience potrebbe vanificare il lavoro fatto a monte.

Per migliorare la velocità di un sito e-commerce ci sono alcune semplici norme di buon senso e altre un pò più tecniche e complesse.
Tra le più semplci possiamo contare:

  • utilizzare immagini ottimizzate;
  • limitare l’uso di jquery o javascripts;
  • utilizzare in modo intelligente i megamenu;
  • sviluppare una home page pulita, senza troppe immagini e banner.

Tutte cose piuttosto comprensibli da capire. Forse solo il punto 3 ha bisogno di essere spiegano nel dettaglio.

Sai cos’è il megamenu? Molti e-commerce ne fanno uso. Alcuni ne abusano. Per il top menu molti siti utilizzando un plugin che permette di estendere le funzionalità per inserire immagini, mouse over, ecc… Penso sia necessario ricordare che l’utilizzo del mouse over sulle immagini richiede, quasi sempre, il precarico delle immagini. Ecco quindi un eccessivo utilizzo della banda. Senza contare che un menu troppo pieno risulta anche troppo complicato da usare e spesso dannoso. Se desideriamo un sito e-commerce funzionale, semplice e veloce bisogna evitare di inserire megamenu troppo carichi di elementi.

Ottimizzazione di un sito internet: argomentazioni tecniche

Passiamo ora invece al discorso più tecnico. Per migliorare la velocità di un e-commerce bisogna lavorare fondamentalmente su 4 aspetti:

    • unire file Javascript e Css;
    • abilitare l’uso della cache;
    • hosting e php.ini;
    • abilitare la modalita flat delle categorie.

Unire file Javascript e Css

Per farlo andiamo nel backend,
sistema → Configurazione → sviluppatore

magento merge javascript and css

Abilitare l’uso della cache

In sistemi complessi come Magento, bisogna cercare di velocizzare usando al massimo la cache. Magento ha un ottimo sistema di cache che, una volta finito lo sviluppo, va abilitata.

Per farlo:
Sistema → Gestione della cache → abilitare tutto

Certo, molti diranno che non è il massimo però è un inizio e per un sito normale, senza troppe pretese, è un’ottima soluzione.
In alternativa abbiamo altre soluzioni:
1. Varnish
2. Fpc
Non possiamo sicuramente mettere sullo stesso piano Varnish e Fpc. Il primo è un sistema serio, che va configurato. Il secondo è un plugin valido, ma rimane un plugin.

Personalmente, prima di installare altre cose sopra la macchina, preferisco testare il sistema per capire se le prestazioni sono già buone. Meglio non fasciarsi la testa prima di essersela rotta.

hosting e php.ini

Ogni server ha le sue peculiarità. Personamente utilizzo quasi sempre linux + php + apache
Il motivo è presto detto: amo linux. Il sistema operativo su cui lavoro normalmente è ubuntu. Le distribuzioni consigliate per Magento sono:
Sistema operativo: distribuzione di Linux (RHEL, Ubuntu, CentOS, Debian)
Personalmente sconsiglierei Ubuntu perchè adatto più ad uso ufficio.

Ogni server, per poter essere veloce, va ottimizzato. Il file su cui bisogna lavorare è:
php.ini

Non è altro che il file di configurazione di php.
Per rendere apache efficiente bisogna fare alcune modifiche:

realpath_cache_size = 64k
realpath_cache_ttl = 7200
max_execution_time = 120
max_input_time = 90
memory_limit = 256M
default_socket_timeout = 90
pdo_mysql.cache_size = 2000
output_buffering = 4096

Per capire tutte le righe nel dettaglio bisogna conoscere bene come lavora Apache. A grandi linee abbiamo aumentato la memoria di cache del server(php e mysql) e il tempo di escuzione degli scripts.
Bisogna considerare però anche le potenzialità del server. Se il server utilizzato non è abbastanza potente si potrebbe rischiare di passare dall’altra parte, cercando quindi di aumentare le richieste quando il computer potrebbe non starci più dietro. Consiglio di far eseguire le modifiche sempre da professionisti.

Abilitare la modalita flat delle categorie

Una delle peculiarità di Magento è la gestione EAV dei dati. EAV é l’acronimo di Entity–attribute–value model. Indica la modalità con cui Magento gestisce le tabelle del database. La caratteristica di questo sistema è la possibilità di inserire un numero potenzialmente infinito di attributi.
Quasi tutti le tabelle vengono gestite in questo modo. Se per il customer e gli shipping address non abbiamo scelta e bisogna usarlo, per le categorie prodotto è possibile usare la gestione tradizionale flat. Il mio consiglio, per prendere il sistema più agile, è di usare la modalita flat.
Per farlo:
Sistema → Configurazione → catalogo

magento-manage-flat-category

Conclusioni

Per velocizzare un e-commerce, al di là degli aspetti tecnici, è fondamentale un pò di buon senso e la macro conoscenza delle basi di un’architettura di un server.
Il mio consiglio è di appoggiarsi sempre a personale specializzato. Andare a mettere mano in determinati ambiti potrebbe essere rischioso per l’integrità del server.

alessandro gnola

About alessandro gnola

Consulente e-commerce. Mi occupo di sviluppo siti web e Ottimizzazione Seo.