Ottimizzare la velocità di Prestashop e farlo super veloce!

Ottimizzare la velocità di Prestashop e farlo super veloce!

Condividi
velcocizzare prestashop

Non elencheremo i vantaggi di un sito web più veloce perché probabilmente li conosci già…

Partiamo subito dalle Impostazioni base

Prestashop opzioni della Performance

CCC (Compressione e Cache)

Queste opzioni sono, semplicemente, fantastiche! Hai tutto il tuo CSS su una singola riga di codice. Lo stesso vale per JS e HTML.

In questo modo la dimensione dei file è più piccola e ogni pagina Web viene caricata più velocemente.

È una delle prime cose che abbiamo notato su Prestashop ed è uno dei primi motivi per cui ci siamo innamorati.

Prestare attenzione quando si sposta JavaScript in basso!

Probabilmente è il posto migliore, ma dovresti controllare che tutto funzioni senza problemi dopo aver controllato questa opzione.

Abbiamo riscontrato un problema con lo script di retargeting dinamico di Google. Ha smesso di funzionare dopo aver spostato gli JS in linea nella parte inferiore della pagina.

Comunque non preoccuparti facciamo dei Test!

Ecco i punteggi per una normale pagina di prodotto. (Non preoccuparti di questi numeri orribili! Lavoreremo per migliorarli mentre esaminiamo questo articolo.)

PunteggioSenza CCCCon CCC
GTmetrix PageSpeed8294
GTmetrix Yslow9074
Google Pagespeed Mobile6466
Google Pagespeed Desktop7173
Pingdom Score8686

Ma aspetta! Questo significa che il sito web è in realtà più lento con CCC? Beh, potrebbe essere.

È fantastico avere tutti i CSS / JS / HTML su linee singole, ma questo sta mettendo a dura prova il server.

La pagina sarà più veloce, ma ci vorrà un po’ di più per il server per dare una risposta

Il modo migliore per fare la minimizzazione è sul lato server. Google ha avuto un servizio eccellente chiamato PageSpeed ​.

Puoi comunque installare i loro moduli sul tuo server, comunque. Entrambi i plugin Apache e Nginx faranno il loro lavoro!

Se non ti senti sicuro al 100%, puoi provare una di queste alternative fornite sul blog KeyCDN.

Troveremo il metodo migliore

Molto Utile

  • usa Rijndael con mcrypt (è più veloce)
  • non perdere tempo con acceleratori PHP come Xcache o APC (da non confondere con APCu); puoi usare OPcache per accelerare PHP

Cosa non fare (non sabotarti da solo!)

  • non attivare la cache del filesystem integrata
    • anche se all’inizio potrebbe sembrare una buona idea, il sito web diventerà più lento in quanto aggiunge più pagine alla cache
  • non usare i moduli delle statistiche Prestashop
    • riempiono il tuo database abbastanza velocemente
    • dovresti fare affidamento su Google Analytics per fare le statistiche per fare statistiche corrette
      • assicurati di avere un modulo che integri i dati di e-commerce per Analytics
  • non usare troppi file da fonti esterne (caratteri, file CSS / JS)
    • non hai il controllo su di loro e Prestashop non può includerli nel motore di minify
  • non utilizzare troppi script di tracciamento esterni
    • se vuoi avere 100/100 nel punteggio dei test di Pagespeed (da Google, GTmetrix o qualsiasi altra cosa), dovrai scaricare ogni script esterno localmente; anche Google Analytics
      • Anche se Google non lo consiglia, esiste un modo per aggiornarlo ogni 12 ore.
      • un’alternativa unica è un servizio chiamato Segmento; collega tutti i tipi di diversi servizi di tracciamento in un unico posto (tutti i tuoi script esterni saranno spariti, l’API del segmento invierà i dati a tutti loro)

Ricordarsi di controllare gli indicatori di velocità per ogni tipo di pagina principale (categoria, prodotti, CMS, ecc.). Molto probabilmente le inserzioni e le pagine dei prodotti ricevono la più alte quantità di traffico. Queste sono le chiavi per non infastidire i tuoi visitatori.

Modulo della Cache

Quanto è importante un modulo Cache?

Diamo un’occhiata a questo test LoadImpact di un sito Prestashop senza un modulo cache.

LoadImpact without cache


* simula fino a 25 utenti contemporaneamente

Wow! Il tempo di caricamento della home page è sceso sotto i quattro secondi

Almeno non ci sono stati tempi morti.

Se il sito web fosse stato su un piano di hosting condiviso o anche su un VPS a basso rendimento, si sarebbe arrestato in modo anomalo prima di raggiungere 25 utenti.

Ecco come appare con un modulo di cache delle pagine attivo.

LoadImpact cache active

Grande differenza! Il tempo di caricamento è al di sotto di un secondo. Più vicino a 500 ms con 50 utenti simultanei presenti.

E la parte migliore e il carico del tuo server sarà quasi inesistente. L’offerta di pagine memorizzate nella cache agli utenti richiede risorse minime.

Ecco tre buone opzioni per la cache Prestashop:

Cerca di stare lontano dai moduli gratuiti. Il caching non è qualcosa su cui vuoi risparmiare.

Suggerimento avanzato: riscaldamento della cache

Affinché la cache sia attiva su una singola pagina, qualcuno deve prima visitarla. Quella persona non avrà la possibilità di provare la versione di caricamento veloce.

Non sarebbe la fine del mondo, ma ogni visitatore conta. Ti dico quanto segue ogni volta che possiamo avere una possibilità: il tuo obiettivo principale è capire come servire meglio il cliente.

Quindi, come possiamo fornire la versione cache direttamente ? Dobbiamo visitarlo noi stessi. Bene, non è proprio cosi..

Creiamo un cron job per simulare una visita ad ogni pagina. Il momento migliore per farlo è durante la notte quando il traffico è al livello più basso.

Prima di tutto, hai bisogno di un elenco di tutti gli URL del tuo sito. Sitemap è quello che ti serve.

In secondo luogo, hai bisogno di uno script bash che vada su ogni pagina.

Per ultimo, devi configurare i lavori cron. Ecco l’ordine:

  1. cancella la cache dal tuo modulo
  2. Rigenera sitemap
  3. Fai partire il riscaldamento della cache

Puoi eseguire i primi due dal modulo “Cron task manager” di Prestashop se è più semplice per te, oppure chiedere a noi come impostarlo sul server.

Il terzo passo è uno che richiederà del tempo. Raccomandiamo di farlo a livello di server.

Abbiamo questa linea nella nostra lista crontab:

45 02 * * * bash /home/admin/warmcache.sh

ogni notte ad un certo orario.

Una configurazione del server dal futuro

Molte persone pensano che più grande è il server, più veloce sarà il sito web.

No sbagliato.

Chi ti sta dicendo o è inesperto o vuole pagare di più per un server che non ti serve.

Quindi quelo che conta di più? La configurazione!

Non è il tuo database quotidiano

Non entreremo in dettagli molto tecnici, solo alcune buone pratiche da conoscere.

L’utilizzo di Percona Server o MariaDB invece dello standard MySQL (ora di proprietà di Oracle) potrebbe portare a risultati migliori.

Entrambe sono le forcelle migliorate di MySQL, progettate per una migliore scalabilità, e entrambe utilizzano un motore di archiviazione potenziato chiamato XtraDB.

Ottimiziamo il database

Se stai utilizzando un database MyISAM, il tweak principale richiesto dal database è la cache della query.

La memorizzazione nella cache delle query è un buon modo per alleviare la pressione del server per i siti con Prestashop

Tutto quello che devi fare è aggiungere queste tre righe al file my.cnf e riavviare il servizio MySQL.

Ecco le impostazioni più comuni:

query_cache_size = 134217728
query_cache_limit = 1048576
query_cache_type = 1

Abbiamo assegnato 128 MB di memoria per la cache di query MySQL con un limite di query di 1 MB.

Se sembra troppo complicato, chiedi al tuo fornitore di servizi di hosting di aiutarti. Non dovrebbe richiedere più di 5 minuti.

Noterai subito le differenze di velocità.

Per i database InnoDB, la dimensione del pool buffer è l’impostazione più importante.

Devi stare molto attento a non rompere nulla, ma lo sai già.

Uso della Memcache

Pensa alla Memcache come a un livello aggiuntivo tra il sito web e il database.

Memcache (abbreviazione della memoria cache) memorizza i dati e gli oggetti nella memoria RAM del server.

In questo modo allevi molta pressione dal database.

Redis è una buona alternativa a Memcache. Alcuni lo considerano un motore di caching più potente.

È un po ‘più difficile da configurare su Prestashop. Molto probabilmente avrai bisogno di un modulo personalizzato per poterlo integrare.

Una soluzione più leggera per la cache utente è APCu (da non confondere con APC). Un po ‘complicato da installare a volte, ma una soluzione solida per siti single-server.

Consigli utili:

  • fai attenzione alla tabella ps_connections (tende a riempirsi rapidamente)
  • l’utilizzo di un server / VPS separato per MySQL potrebbe essere una buona idea se si dispone di una quantità elevata di traffico
  • ottimizza il database di volta in volta utilizzando il modulo Database Cleaner gratuito (fai attenzione a non cancellare i tuoi ordini o i dati del catalogo)

Il web server

Nginx or Apache server

I due più popolari sono Apache e Nginx.

Justin Ellingwood di DigitalOcean ci offre alcune informazioni tecniche su di loro.

Raccomanda di usare entrambi allo stesso tempo. In questo modo fai uso della velocità di Nginx ed evita i suoi limiti usando Apache.

Stiamo assistendo a miglioramenti significativi Prestashop quando ci si sposta da Apache a Nginx. I due sembrano andare molto d’accordo!

La versione PHP – Perché è importante?

PHP Speed & Security

Bene, è importante per sicurezza e velocità.

Se stai leggendo questo articolo, probabilmente sei interessato alla velocità. Anche se non è male avere un sistema sicuro!

Le versioni precedenti di PHP non supportano le nuove funzioni necessarie al tuo sito, sono piene di bugs e terribilmente lente.

Quali sono le buone versioni di PHP?

5.5 e 5.6 sono molto solidi. Qualunque cosa sia più vecchia diventerà presto obsoleta.

Il nuovo Magento (2.0) ha abbandonato il supporto per le versioni di PHP inferiori alla 5.5.22.

Immagino che Prestashop seguirà presto.

Il nuovo PHP (7) dovrebbe essere un passo avanti per quanto riguarda la velocità. È molto più veloce di una qualsiasi delle vecchie versioni.

Ma, per sfruttare appieno le sue capacità, le app web dovrebbero utilizzare le sue nuove funzionalità.

La maggior parte delle piattaforme open source come WordPress, Prestashop, Magento, sono state create per i vecchi PHP.

Perché vada tutto per il meglio, ogni app web dovrebbe migliorare il loro codice per PHP 7.

Un’ottima alternativa da Facebook

HHVM

Sì, hai letto bene!

Facebook non è solo un posto in cui tenersi in contatto con i tuoi amici; Facebook crea software open source.

Come forse saprai, Facebook usa PHP (tra gli altri) come linguaggio di programmazione.

Essendo uno dei siti web più visitati al mondo, aveva bisogno di un PHP più veloce. Uno che può servire più richieste contemporaneamente senza utilizzare quantità folle di CPU.

Così hanno costruito HHVM (acronimo di Hip-Hop Virtual Machine).

Fondamentalmente, richiede codice PHP e lo trasforma in Virtual Machine

HHVM è veloce e può servire molte richieste con precisione, ma ha bisogno di memoria. Quindi, se hai solo 1 GB di RAM sul tuo host, potresti considerare di aumentarlo.

La cosa bella è che puoi sempre impostare il PHP come backup nel caso succeda qualcosa.

Trucco avanzato: usa uno script che riavvia il processo HHVM ogni volta che consuma molta memoria.

Ecco un esempio di codice da usare quando si usa più del 35% di RAM su un server Ubuntu:

#!/bin/bash

percentAllowed=35
used=$(expr $(free | grep "\-\/+" | sed -r 's/[^0-9]+/\t/g' | cut -f2) \* 100 / $(top -n 1 -b | grep "KiB Mem:" | sed -r 's/[^0-9]+/\t/g' | cut -f2))

if [ $used -gt $percentAllowed ]
    then
        service hhvm restart
fi

Varnish accelerator

Varnish è un incredibile acceleratore di applicazioni web!

Ciò che lo rende estremamente veloce è l’utilizzo della memoria RAM effettiva per l’archiviazione della cache HTML.

Quello che ci piace di più, è che Varnish sembra capire da solo dove sono le pagine più viste sul sito web. Quelli sono quelli che sono i più veloci. In qualche modo, dà la priorità ai contenuti più richiesti e lo rende incredibilmente veloce.

Sebbene sia progettato per funzionare al meglio per le applicazioni con un numero elevato di richieste, potrebbe funzionare per siti Web di piccole e medie dimensioni.

Ma, Varnish porta il massimo valore sui siti Web ad alto traffico.

Lo svantaggio principale è che non è così facile da configurare. Soprattutto su Prestashop.

Poiché trasforma gli elementi in parti statiche, devi fare molta attenzione a non memorizzare nella cache oggetti dinamici sulla pagina come carrelli, liste dei desideri, blocchi di account, pagine di checkout e così via.

Bene spero di essere stato abbastanza esauriente sulle varie opzioni di velocità per Prestashop.

Se avete dei dubbi contattateci pure in Live Chat!

Grazie !