Consigli sull'ottimizzazione della velocità del sito, da dove iniziare?


16

Mi è stato chiesto di provare a trovare una soluzione per il lento tempo di caricamento del nostro sito Magento. Ho eseguito un test Yslow e sembra che i più grandi trasgressori siano

  • Fai meno richieste HTTP
  • Usa un CDN
  • Aggiungi scadono le intestazioni
  • Metti Javascript in fondo
  • Minimizza jS e CSS
  • Configurare i tag ET
  • Ridurre le ricerche DNS
  • Evita il filtro AlphaImageLoader

Come manager di e-commerce cerco qualche consiglio su cosa posso fare dal mio ruolo all'interno dell'amministratore di Magento, strumenti per i webmaster, ecc. E cosa posso insegnare a uno sviluppatore a rendere il nostro sito conforme e notevolmente più veloce.

Ho anche esaminato un plugin chiamato GTMetrix che sembra fare molto per te all'interno dell'amministratore (combinare fogli CSS, ottimizzare immagini, ecc.) Qualcuno ha esperienza con questo? Di solito cerco di evitare troppe estensioni che raggiungono così in profondità le funzioni essenziali ma sembra che potrebbe essere una soluzione. http://gtmetrix.com/magento-optimization-guide.html

Il tuo consiglio sarebbe molto apprezzato, poiché faccio fatica a sapere da dove iniziare per avere il miglior impatto.

Grazie in anticipo.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Risposte:


27

(copiato dal mio blog all'indirizzo https://www.gui.do/post/101-ways-to-speed-up-your-magento-e-commerce-website )

A) Ambiente di hosting / Suggerimenti generali

  1. Ottieni un server dedicato.
  2. Ospita il tuo sito nel paese in cui si trovano i tuoi clienti.
  3. Non ospitare file sul tuo server Web che non usi, grandi o piccoli.
  4. Andare su MySQL Admin e selezionare tutte le tabelle e ripararle, quindi ottimizzarle.
  5. Usa un acceleratore PHP come APC, ZendOptimizer + o Xcache.
  6. Installa solo i moduli Apache necessari.
  7. Usa Apache mod_expires e assicurati di impostare il tempo di memorizzazione nella cache dei file. È possibile utilizzare l'esempio seguente per la configurazione del virtualhost Apache: # Attiva Scadenza e imposta il valore predefinito su 0 ScadenzaAttivo Attivo Scadenza predefinito A0 # Imposta la memorizzazione nella cache dei file multimediali per 1 anno (per sempre?) ScadenzaDefault A29030400 Intestazione append Cache-Control "public" # Imposta la memorizzazione nella cache dei file multimediali per 2 settimane ExpiresDefault A1209600 Appendice intestazione Controllo cache "pubblico" # Imposta la memorizzazione cache di 1 settimana su file aggiornati comunemente ScadeDefault A604800 Appendice intestazione Controllo cache "proxy-revalidate"
  8. Abilita la compressione Gzip in htaccess .
  9. Comprimi l'output, usa zlib.output_compression o mod_deflate.
  10. Utilizzare una rete di distribuzione dei contenuti (CDN) per il trasferimento parallelo di contenuti statici. Esiste un'estensione Magento che può aiutarti a farlo con le immagini di categoria e di prodotto: One Pica Image CDN . Ma ... (vedi il prossimo consiglio).
  11. Non utilizzare troppe fonti esterne diverse (per immagini, iframe, feed (twitter / facebook) ecc.) Perché ogni ricerca DNS richiede più tempo e si crea una dipendenza aggiuntiva (su alcuni server di terze parti) per il corretto caricamento del sito .
  12. Abilita KeepAlives Apache: assicurati che la configurazione Apache abbia KeepAlives abilitato. KeepAlives è un trucco in cui è possibile incanalare più richieste HTTP attraverso una singola connessione TCP. L'impostazione di ogni connessione TCP comporta tempi aggiuntivi, questo può ridurre significativamente il tempo necessario per scaricare tutti i file (HTML, JavaScript, immagini) per un sito Web. Maggiori informazioni su Apache.org . Attenzione però, ho sentito da alcuni che questo crea (molto) un carico extra sul server e potrebbe causare l'arresto anomalo del server nei momenti di traffico intenso!
  13. Riduci al minimo i reindirizzamenti.
  14. Rendi conforme il tuo output W3C. Gli errori rallentano il browser.
  15. Scambia Apache per NginX o Litespeed. Se questa non è un'opzione, scegli Zend Server (idealmente la versione non CE in modo da poter utilizzare la cache a pagina intera).
  16. Disattiva o almeno riduci la registrazione del server Web (riduce le scritture del disco).
    • Disabilita la registrazione del tempo di accesso. Magento Wiki : per i server Linux, se la registrazione del tempo di accesso è abilitata su una delle partizioni mysql, web server o cache, prova a disattivarla per un aumento delle prestazioni. Se stai usando ext3 o reiserfs potrebbero esserci metodi di scrittura journal più veloci che puoi usare. Per maggiori informazioni vedi Linux.com .
  17. Compilare MySQL dal sorgente anziché dal gestore pacchetti del sistema operativo.
  18. Aggiorna sempre all'ultima versione di Magento. Non solo otterrai più funzionalità e correzioni di bug e sicurezza, ma con ogni aggiornamento Magento offre prestazioni migliori.
  19. Query Cach size: Magento Blog : modifica la configurazione del tuo server MySQL per sfruttare al meglio la RAM del tuo server. La maggior parte delle distribuzioni Linux fornisce un pacchetto MySQL conservativo pronto per essere eseguito su una vasta gamma di configurazioni hardware. Se disponi di RAM sufficiente (ad es. 1 GB o più), puoi provare a modificare la configurazione. Di seguito è riportato un esempio di my.cnf, sebbene si desideri consultare la documentazione di MySQL per un elenco completo delle direttive di configurazione e delle impostazioni consigliate.
  20. imposta 'php_value memory_limit 128M' nella tua configurazione php o aggiungilo al tuo file .htaccess per assicurarti di non rimanere senza memoria.
  21. Utilizzare un file system basato sulla memoria per dati dinamici. Se si memorizzano dati dinamici ( var / cache , var / session ) su RAMdisk o tmpfs, l'I / O del disco diminuisce.
  22. Cambia realpath_cache_size in php.ini.
    realpath_cache_size = 1M ( attenzione , questo è  per processo di Apache )    realpath_cache_ttl=86400 (ok for production site) 
  23. Memcache (per l'hardcore) è documentato in http://www.magentocommerce.com/boards/viewthread/9037/ e altri suggerimenti da http://alexle.net/archives/275 per metterti in funzione.
  24. Disabilita la direttiva open_basedir di PHP. Leggi questo .
  25. Elimina le scansioni della struttura di directory per i file .htaccess.
  26. Consigliato innodb_buffer_pool_size.
    • Server web e db combinato, 6 GB RAM:  2-3 GB
    • Server di database dedicato, 6 GB RAM: 5 GB
    • Server di database dedicato, 12 GB RAM: 10 GB
  27. Cache query: query_cache_size: 64 MB, query_cache_limit: 2 MB
  28. Utilizzare un server back-end separato per gestire gli utenti amministratori, elaborare l'attività di back-end (cron), pre-generare cache a pagina intera e gestire query multimediali.
  29. Utilizzare più nodi Web (server frontend) per gestire la navigazione e il checkout.
  30. Usa la cache proxy inversa di Varnish, spiegazione di Magento di @alistairstead: vernicia il tuo negozio Magento, fallo volare !.
  31. Se hai un sito popolare che è fortemente sottoposto a scansione da motori di ricerca, puoi risparmiare alcune risorse modificando il tuo robots.txt.
  32. Prova alcune di queste estensioni della cache:
    • http://www.artio.net/magento-extensions/m-turbo-accelerator
    • http://www.aitoc.com/en/magento_booster.html
    • http://www.tinybrick.com/magento-modules/performance.html/
  33. Installa il componente aggiuntivo Yireo DisableLog. Impedisce a Magento di scrivere tonnellate di roba nel tuo database, il che è inutile quando stai già utilizzando qualcosa come Google Analytics.

B) Modello

  1. Ottimizza tutte le immagini (modello): la maggior parte, se non tutte, dovrebbero essere almeno inferiori a 10 kb.
    • Ritaglia lo spazio bianco usando l'editor di immagini.
    • Usa file PNG8 o ​​file GIF anziché Jpeg e non usare la trasparenza (dipende da quanti colori usi e da quanto è grande l'immagine, ma prova tu stesso).
    • Ridimensiona immagini: crea immagini nelle dimensioni necessarie e non ridimensionarle nell'editor.
    • Usa la compressione delle immagini (puoi usare smush.it per farlo per te).
    • Usa CSS Sprites, ci sono persino generatori CSS Sprite .
  2. Minimizza il tuo Css, rimuovi il codice inutilizzato .
  3. Ridurre al minimo l'uso di Javascript.
  4. Utilizzare un modello leggero come base per il modello. Ad esempio: il tema SEO vuoto Yoast .
  5. Specifica le dimensioni dell'immagine .
  6. Utilizza Block cache e output HTML nelle tue estensioni.
  7. Applicare Javascript Lazy Loader per il prototipo .

C) Configurazione Magento

  1. Disinstallare eventuali estensioni che non si utilizzano effettivamente.
  2. Disabilita i moduli che non usi:  Sistema -> Configurazione -> Avanzate -> Avanzate. ! [inserisci la descrizione dell'immagine qui] [1]
  3. Abilita tutte le cache Magento: Sistema -> Gestione cache.  
  4. Utilizza un tracker di statistiche fuori sede come Google Analytics e non uno in loco. La maggior parte di questi utilizzerà Javascript, ospiterà tu stesso il Javascript.
  5. Combina Javascript e Combina file CSS : Sistema -> Configurazione -> Avanzate -> Sviluppatore -> "Impostazioni Javascript" e "Impostazioni CSS" . Puoi anche considerare di utilizzare un'estensione per farlo come l' estensione Fooman Speedster , a seconda di quale funziona meglio per te.
  6. Prova alcune delle estensioni delle prestazioni di Magento.
  7. Abilita il Magento Flat Catalog, utile solo per cataloghi molto grandi per sentire i miglioramenti.
  8. Non utilizzare la navigazione a più livelli se non ne hai davvero bisogno, è ad alta intensità di risorse.
  9. Usa la funzione Compilation di Magento. È stato riferito che ti darà un aumento delle prestazioni del 25% -50%: Sistema> Strumenti> Compilazione. Modifica: Yoav Kutner (Magento CTO) mi fa sapere che " nelle versioni successive da quando abbiamo ottimizzato il catalogo EAV, la compilazione Magento non è realmente necessaria se si dispone di memorizzazione nella cache del codice byte e se è configurato correttamente ".
  10. Utilizzare l'archiviazione della sessione corretta, selezionare il file system o il database (durante l'installazione). La maggior parte delle installazioni dovrebbe usare il "file system" perché è più veloce e non fa crescere il database. Ma se il tuo sito verrà eseguito su più server, devi selezionare "database" in modo che i dati della sessione di un utente siano disponibili indipendentemente dal server da cui viene inviata la sua richiesta. Maggiori informazioni al riguardo da Ashley Schroder su Magebase.com.
  11. Limitare il numero di prodotti in una pagina di panoramica del prodotto.
  12. Impostare solo quelle proprietà del frontend degli attributi su "Sì" che verranno effettivamente utilizzate. Impostare tutti gli altri su "No". Non utilizzare in ricerca rapida, confronto ricerca avanzata, ecc. Ecc . : Catalogo -> Attributi -> Gestisci attributi -> Proprietà frontend.  
  13. Disabilita il registro Magento : Sistema -> Configurazione -> Avanzate -> Sviluppatore -> Impostazioni registro (l'impostazione predefinita è disabilitata).  

Unico consiglio per le aziende:

  • Disabilita Enterprise_CatalogEvent. Vai su Ammin. -> Sistema -> Configurazione -> Catalogo -> Eventi catalogo. Quindi si desidera disattivare le impostazioni per "Abilita funzionalità eventi catalogo" e "Abilita widget eventi catalogo".
  • Abilita la ricerca Solr, è più veloce rispetto all'impostazione predefinita, specialmente quando hai molti prodotti (> 10k).
  • Abilita memorizzazione nella cache a pagina intera.

D) Test di velocità, analisi, monitoraggio

  1. Metti alla prova il tuo sito Magento con Magento Speed ​​Test (di Ashley Schroder)
  2. Gestisci il tuo sito tramite websiteoptimization.com.
  3. Usa l'estensione Firefox di Google Page Speed ​​o Yahoo Yslow per alcuni suggerimenti da Google e Yahoo.
  4. Implementa le misurazioni della velocità di Google in Analytics: misura il tempo di caricamento della pagina con il rapporto di analisi della velocità del sito
  5. Monitoraggio della velocità e avvisi di inattività.
    • Mon.itor.us
    • Pingdom

Suggerimenti bonus

(perché in realtà non accelera il frontend ma solo il backend):

  • Usa K-Meleon se sei su Windows per il tuo lavoro di amministratore generale. Rende il pesante back-end JS di Magento significativamente più veloce di qualsiasi altro browser.
  • Utilizzare l' estensione GoogleGears da Yireo.com per memorizzare nella cache i file statici localmente.
  • Usa un'applicazione per PC / mac locale per gestire Magento (come  mag-manager.com ).

Mi rendo conto che probabilmente non puoi usare tutti i suggerimenti di cui sopra, ma non si tratta di usarli tutti, e a volte fai semplicemente la scelta di dare una funzionalità una priorità rispetto alle prestazioni e va bene. Se puoi applicarne solo alcuni, aumenterai comunque la velocità e aumenterai l'esperienza utente. E ricorda: poiché la velocità dipende da molte variabili, alcuni dei suggerimenti potrebbero non avere alcun impatto sul tuo sito Web, mentre altri possono avere un impatto enorme. Quindi prova sempre l'impatto di ogni passo che fai e intraprendi le azioni di conseguenza.


4
  1. Immagini: ho visto molti casi in cui la persona che carica immagini (prodotti, pagine CMS, ecc.) Non è addestrata su come ottimizzare le dimensioni delle immagini. Ci sono molti articoli disponibili online, ma molti sono solo buonsenso.

    • Non usare immagini per il testo.
    • Usa JPEG / GIF / PNG in modo appropriato (ad es. Generalmente non usi PNG per immagini fotografiche)
    • Usa gli sprite per le immagini di piccole dimensioni poiché puoi raggruppare un mucchio di immagini di piccole dimensioni in un unico file, offrendo una sola richiesta HTTP anziché dozzine o più. Potresti considerare anche le icone dei caratteri.
    • Salvare le immagini con la qualità più bassa possibile rimanendo comunque accettabili. Trovo che il punto debole sia spesso di circa 50-60 qualità per JPEG. A volte una qualità di 20 è perfettamente accettabile e potresti ridurre un'immagine da 300Kb a 30Kb. Questo è un grande risparmio.
    • Considera il caricamento lento su pagine pesanti dell'immagine.
  2. Richieste HTTP - Un altro grande offensore. A volte non c'è molto che puoi fare per ridurre le richieste, ma dovresti sempre cercare di farlo il più basso possibile. Magento fornisce alcune funzionalità per aiutarti a risolvere questo problema (unendo CSS / JS).

  3. Ricerche DNS aggiuntive: direi che questo è molto importante per il processo di carrello / checkout. Molti negozi avranno varie integrazioni API che chiamano servizi. Anche se non puoi fare molto per rendere molto più veloce una risposta API da un fornitore di servizi di spedizione, puoi almeno identificare servizi lenti che altrimenti non sarebbero prontamente evidenti. Pensa al tempo aggiuntivo che potrebbe richiedere un pagamento se stai effettuando chiamate a UPS, FedEx, USPS, fornitori di aliquote fiscali, fornitori di pagamenti, siti affiliati, ecc.

  4. Altri fattori: alcuni degli altri fattori citati nel rapporto probabilmente non avranno un impatto tanto grande quanto le richieste di immagini e HTTP. Può certamente valerne la pena minimizzare CSS e Javascript, ma i guadagni del mondo reale sono davvero notevoli solo nell'aggregato a lungo termine. Inoltre, una CDN può davvero aiutare, soprattutto se stai offrendo prodotti scaricabili.


Penso che spesso ci sia troppa importanza sull'hosting da solo. In passato, mi è stato assegnato il compito di eseguire alcune modifiche al server per i siti per migliorare la velocità, solo per scoprire che la home page sta caricando 20 Mb di risorse.

Allo stesso modo, il white paper Magento sulle prestazioni del server non sarà di alcuna utilità se il tuo sito è costruito in modo sciatto con troppa pressione. Se il tuo obiettivo è migliorare la velocità del tuo sito, il primo passo dovrebbe essere guardare le pagine stesse per trovare inefficienze. Solo dopo aver determinato che il tuo sito è snello e cattivo come lo desideri, dovresti iniziare a prendere in considerazione l'aggiornamento del tuo hosting.

Per la cronaca, un sito che gestisco ha utilizzato un SIP-200 su Nexcess per circa cinque anni circa e riceve una media di 5000 visite al giorno (è stagionale, quindi supera i 10k alla fine della primavera / inizio autunno). Non ho assolutamente alcuna lamentela riguardo a questo tipo di server per questo sito e stiamo eseguendo una versione abbastanza disponibile di Magento CE con migliaia di prodotti in dozzine di categorie.


2

Le immagini sono un grosso problema su Internet, quasi un grosso problema come javascript. La prima cosa che devi fare è ottimizzare le tue immagini.

  • Configurare una rete di distribuzione dei contenuti
  • Ottimizza le tue immagini
  • Usa un Image LazyLoader

Ora sui tuoi file Javascript :

  • Comprimili e combinali
  • Elimina ulteriori ricariche di pagina utilizzando più ajax
  • Rilascia i tuoi file JS nel piè di pagina
  • Carica i tuoi file JS da un dominio diverso

Cache come un matto

  • Abilita la memorizzazione nella cache di MySql e aumenta le dimensioni del pool di memoria
  • Abilita la memorizzazione nella cache APC in modo che PHP non debba riapprendersi ogni volta
  • Abilita la memorizzazione nella cache a pagina intera di Magento e utilizza la cache di Apache
  • Abilita GZIP per consegnare i tuoi file all'utente più velocemente.
  • Abilita le intestazioni di scadenza appropriate in modo che anche gli utenti stiano memorizzando nella cache

Magento ha anche una serie di meccanismi di memorizzazione nella cache interna:

  • Abilita l'evidente cache di Magento
  • Abilita la compressione e la compilazione CSS e JS dall'amministratore
  • Abilita il catalogo e i prodotti Flat per velocizzare le chiamate mysql
  • Abilita il compilatore Magento per velocizzare il caricatore automatico PHP

Se vuoi maggiori dettagli, ho preso le informazioni da questa knowledge base .


0

Ecco cosa suggerirei per accelerare il sito Magento:

  1. Eseguire il controllo delle estensioni di terze parti e il controllo TTFB. Alcuni plugin personalizzati rallentano Magento. Ottieni un elenco di tutti i moduli di terze parti e disabilitali uno per uno. Velocità di benchmark con www.webpagetest.org. Quando identifichi un abusatore contatta il suo fornitore per farglielo sapere. Per eseguire il controllo TTFB installare un programma gratuito xhprof o utilizzare NewRelic .

  2. Scopri se le tue risorse di hosting sono sufficienti per eseguire Magento. Installa una nuova copia di Magento la stessa versione sul tuo hosting. Confronta la sua velocità con il sito live. Se è significativamente più veloce del tuo sito, allora il tuo hosting è OK. Se è lento come il tuo sito live, il tuo hosting non è buono.

  3. Esegui varie ottimizzazioni di frontend. Questi includono: ottimizzazione dell'immagine, compressione gzip, minimizzazione CSS / JS. Puoi ottenere un rapporto su ciò che devi fare eseguendo il tuo sito su Google PageSpeed ​​Insights .

Tratto dal mio articolo .


Qual è il modo migliore per eseguire il controllo delle estensioni di terze parti? Grazie. @Konstantin Gerasimov
Gemma

0
  • Devi concentrarti sia sull'ottimizzazione del tuo sito Web (struttura, CSS, immagini, ecc.) Sia sulla ricerca di un host davvero veloce.

  • Ti suggerirei di cercare un host che offra spazio di archiviazione SSD e Cloudflare CDN e quali servizi di hosting siano appositamente ottimizzati per un sito Web basato su Magento.

  • Attualmente sto usando il cosiddetto piano "popolare" per il mio sito Web e per fare un ottimo lavoro.

  • Ecco le sue specifiche complete: https://www.bgocloud.com/hosting/we website - cpanel / popular - plan .

Se ritieni che queste funzionalità non siano adatte a te, puoi dare un'occhiata agli altri piani o alla pagina dei server dedicati.


-1

Ho trovato la cosa più importante per la velocità del sito e Magento è il tuo server. Sei su un host dedicato? Devi essere. Soprattutto uno con unità SSD. La parte più lenta di Magento è come elabora effettivamente PHP e rende la pagina, e l'unico modo per combattere è un server migliore. Anche una cache di pagina intera, prova Lesti FPC.


Ciao grazie per la tua risposta. Ho avuto la sensazione che la nostra configurazione del server potrebbe non essere ciò di cui abbiamo bisogno, ma sono nuovo qui e sto solo imparando il loro sistema e non ho mai dovuto approfondire troppo il lato amministrativo dei sistemi del lavoro prima. Ho estratto la nostra ultima fattura (supponendo che questo sia il server su cui stiamo eseguendo Magento): 18636 Dual Xeon E5-2609 (E52609) RAM: 16GB Hard Drive 1: 500GB SATA Hard Drive 2: 500 GB SATA Hard Drive 3: 64GB Samsung 830 Disco rigido SSD 4: Nessuno Controller disco rigido: Controller integrato
Brandon

Non posso essere d'accordo con questa risposta. Se il tuo sito è impantanato da grandi immagini, tonnellate di richieste HTTP e richieste a servizi di terze parti (UPS, ricerche fiscali, ecc.), Il miglior host dedicato al mondo non farà nulla per te. Avvia il sito correttamente per iniziare e quindi considera l'aggiornamento dell'hosting, se applicabile.
pspahn,

FYI Brandon. Samsung 830 è un'unità disco progettata per computer domestici, non per server. Non sembra affatto che il tuo server sia un server.
Choco-Loo,

-1

C'è la risposta lunga e la risposta breve, come già sottolineato da Guido, questi sono i passaggi che devi seguire per la tua configurazione. Dovrai trovare alcune risorse competenti per eseguire tutte le combinazioni per trovare la soluzione migliore, è piuttosto dispendioso in termini di tempo ma è necessario eseguire il processo standard che i siti Magento devono eseguire. C'è anche una risposta breve, ma lavoriamo con un incubatore e usano tecniche aziendali principalmente per piattaforme di fascia alta, tuttavia lo hanno portato su Magento ma non sarà rilevante qui. Dovrai trovare l'equilibrio esatto tra hardware, fpc, memorizzazione nella cache, requisiti aziendali, l'unico problema è una volta che hai completato l'esercizio se cambi materialmente qualcosa di cui avrai bisogno per eseguirlo nuovamente.


-1

Oppure salta tutto ciò, usa lo stesso stack tecnologico di Etsy, lo stesso hosting di Very con multi-nodi, salta il fpc, vicino a fpc ttfb, 1-2s carichi dinamici e usa Pagespeed tutto sommato dandoti Come su tutta la linea . Ora, se hai aggiunto programmatori ed estensioni zelanti ci sono dei limiti. Dipende se vuoi prendere la strada della tecnologia e passare attraverso tutto all'ennesima potenza in cui i programmatori non saranno d'accordo con l'azienda, o prendi la visione aziendale e trovi la soluzione migliore a prescindere dalle proteste tecnologiche, spesso con conseguente riduzione della tecnica opera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.