Nu e nici un secret ca viteza unui magazin online este un ucigas bun al vanzarilor. Sunt studii care arata ca 42% din clienti vor parasi website-ul daca incarcarea dureaza peste 3 secunde. De asemenea, 47% din vizitatorii unui magazin online au asteptarea ca o pagina sa fie incarcata in cel mult 2 secunde. Un studiu interesant este prezentat aici – in limba engleza.
Magento este o platforma foarte puternica si extensibila… dar nu e chiar atat de rapida fara mici ajustari. Asa ca… incepem?
9 sfaturi pentru un magazin online Magento rapid
1. Planul de gazduire al magazinului
Cand vine vorba de performanta host-ului ai urmatoarele cerinte: Ai nevoie de minim un vps. Gazduirea shared nu o sa faca fata unui magazin online serios.
De asemenea, serverul trebuie sa fie aproape de clientii tai, din punct de vedere geografic.
Memorie ram(macar 1/2gb daca nu ai multe produse) si procesor puternice, iar ca stocare daca bugetul o permite, SSD.
2. Mentinerea magazinului la ultima versiune
De-a lungul timpului, cu fiecare update, Magento s-a tot imbunatatit. Atat ca si optiuni si facilitati, dar si ca performanta. Cele mai importante lucruri de tinut la zi sunt: Magento, versiunea de PHP(preferabil 5.5), versiunea de Apache sau Nginx si versiunea MySql. Am vazut cazuri in care o simpla actualizare a versiunii PHP( 5.3 > 5.5) a avut imbunatatiri dramatice asupra timpilor de incarcare.
3. Configuratia magento bine facuta
Ai cateva lucruri pe care trebuie sa le faci ca sa te asiguri ca magazinul tau se va misca rapid:
– activeaza toate cache-urile din: System > Cache Management
– activeaza ‘Flat catalogs’ din: System > Configuration > Catalog > Frontend: ‘Use flat catalog category’ si ‘Use flat catalog product’.
– dezactiveaza toate modulele nenecesare/care nu le folosesti. Acestea iti incetinesc magazinul chiar daca nu sunt afisate si trebuiesc dezactivate complet.
4. Optimizari fisier .htaccess
– activeaza compresia gzip editand fisierul .htaccess din folderul root al instalatiei tale Magento, astfel incat sa arate asa:
############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip
# Insert filter on all content
SetOutputFilter DEFLATE
# Insert filter on selected content types only
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don’t compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
– toate componentele unei pagini ar trebui sa aiba o data de expirare specificata. Browserele isi dau seama pe baza acestei setari cat timp ar trebui sa tina in cache un fisier; deci folosind aceasta setare imbunatatesti simtitor timpii de incarcare a unui vizitator care revine la magazinul tau/o pagina din magazin si a 2a oara. Activeaza functia care seteaza un timp de expirare in headerele fiserelor modificand fisierul .htaccess astfel:
############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires
ExpiresActive On
ExpiresDefault „access plus 1 year”
– ETags sunt niste metode de validare a componentelor din cache la fiecare vizita. In multe cazuri, mai ales intr-un mediu pe clustere, poate incetini performanta. Ar trebui optimizate astfel – tot in fisierul .htaccess:
############################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags
FileETag none
5. Uneste fisierele CSS si Javascript
– din panoul de administrare, System > Configuration > Developer > Merge Javascrip si Merge CSS files trebuie activat. Atentie insa, pot aparea erori in urma acestor operatiuni. Ideal ar fi, daca apar, erorile sa fie rezolvate si aceste doua setari sa ramana active pentru a minimiza numarul de requesturi.
6. Configureaza corect fisierul php.ini care contine setarile PHP
– memory_limit ar trebui setat astfel: memory_limit = 256mb
– realpath_cache_size=32k si realpath_cache_ttl=120 deoarece magento are o structura destul de stufoasa
7. Configureaza corect fisierul my.ini/my.conf al Mysql
– query_cache_size=64m deoarece Magento are query-uri greoaie ce pot incetini performanta grav. Query cache rezolva de cele mai multe ori astfel de probleme intr-un mod eficient.
– query_cache_limit = 2M
– table_cache = 1024
– join_buffer_size = 8M
– tmp_table_size = 256M
– read_buffer_size = 2M
– read_rnd_buffer_size = 16M
Atentie, aceste setari sunt minimale si foarte generaliste. Ar trebui sa va imbunatateasca performanta vs o configuratie standard. Dar, este de preferat sa fie facute optimizari specifice in functie de configuratia serverului si a magazinului dumneavoastra pentru a obtine rezultate cat mai bune. Aveti doua optiuni: incepeti cu un Google si acceptati timpul pe care il veti ‘pierde’ pana gasiti setarea perfecta pentru magazinul dumneavoastra, sau apelati la cineva care se ocupa cu astfel de optimizari. – si noi putem sa te ajutam.
8. Activeaza compilatia
-din System > Tools > Compilation poti activa aceasta compilatie pentru a imbunatati substantial performanta magazinului.
Atentie! Aceasta setare, odata activata, trebuie dezactivata pentru a putea aduce modificari aspectului sau functionalitatii magazinului pentru a evita erori. Deci, este recomandata activarea ei in momentul in care tot magazinul este terminat si urmeaza doar sa vindeti.
9. Intretinere periodica asupra bazei de date
– puteti intretine performanta bazei de date golind log-urile generate de Magento o data la ceva vreme ruland urmatorul query, pe baza de date Magento in phpmyadmin:
TRUNCATE log_customer;
TRUNCATE log_quote;
TRUNCATE log_summary;
TRUNCATE log_summary_type;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE log_visitor_online;
TRUNCATE report_viewed_product_index;
TRUNCATE report_compared_product_index;
Concluzii
Daca ti s-au parut utile aceste idei pentru a imbunatati viteza magazinului tau online bazat pe Magento, da-i un like si un share articolului pentru a-i ajuta si pe altii.
Pentru optimizari de magazine online Magento mai avansate si alte servicii legate de Magento, nu ezita sa apelezi la noi.