Google користи резултате брзине учитавања сајта као једно од мерила за рангирање и о томе смо говорили у ранијим текстова на нашем блогу. Брзина је битна и оптимизација сајта у том правцу је циљ који мора бити зацртан и остварен уколико желимо да будемо у рангу добро постављених сајтова. Битно је напоменути да се оптимизације не ради ради Google-а, већ увек ради побољшања UX-а (енгл. User Experience), односно, ради побољшања сервиса у коме уживају корисници.
Ако говоримо о удобности на интернету, брзина је најтраженија, па уколико корисници честу буду изложени чекању на учитавање сајта на које нису навикли, велика је вероватноћа да ће се окренути конкуренцији (прочитати: SEO грешке које треба избегавати, ставка 2).
Шта је са Magento платформом?
Ако сте зацртали високе циљеве у водама e-commerce-а, 9 од 10 пута Magento ће бити бољи избор када се захтевају могућности и флексибилност. Међутим, може се рећи да зачкољице постоје па се говори да је Magento мало спорији систем, а као што смо на почетку написали, то није добро за UX.
Највећи број жалби су у потпуности оправдане (јер Magento ће сигурно бити спор ако га сместите на јефтин дељени хостинг уз двеста других веб-сајтова). Технички и у теорији, Magento је out-of-box најбржи у својој класи, али се и поред тога много још може поправити како би се то и показало исправним у пракси. Ево и списка прекорука које ће вам помоћи да убрзате и побољшате UX на Magento платформи:
Magento и хостинг
1. Закупите dedicated сервер. Адриахост понуду dedicated сервера можете видети овде: Адриахост Dedicated Сервери.
2. Хостујте ваш сајт на локацији која је физички најближа вашим клијентима и ово такође спада у погодности које пружа Адриахост (у понуди су локације: Њујорк, Сан Франциско и Амстердам).
3. Немојте хостовати датотеке које нећете користити.
4. Идите у MySQL Admin, одаберите све табеле и урадите репарацију и оптимизацију.
5. Користите PHP ацелераторе као што су: APC, ZendOptimizer+ или Xcache.
- APC – http://pecl.php.net/package/APC, Увећајте APC.shm.size на 128 да би се више података кеширало од стране APC-а.
- Xcache – http://xcache.lighttpd.net/
6. Инсталирате само неопходне Apache модуле.
7. Користите Апацхе mod_expires и обавезно водите рачуна о томе колико дуго ће датотеке бити кеширане. Можете корисити пример који се налази испод за Apache виртуалхост поставке:
# Turn on Expires and set default to 0 ExpiresActive On ExpiresDefault A0 # Set up caching on media files for 1 year (forever?) ExpiresDefault A29030400 Header append Cache-Control "public" # Set up caching on media files for 2 weeks ExpiresDefault A1209600 Header append Cache-Control "public" # Set up 1 week caching on commonly updated files ExpiresDefault A604800 Header append Cache-Control "proxy-revalidate" # Force no caching for dynamic files ExpiresActive Off Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" Header set Pragma "no-cache"
8. Омогућите Gzip компресију преко htaccess-а.
9. Компресујте излаз (output), користите zlib.output_compression или mod_deflate.
10. Користите CDN или паралелни трансфер за статичне садржаје (Прочитајте наш текст о CDN бесплатним решењима). Постоји Magento додатак који вам може помоћи: One Pica Image CDN, али прочитајте обавезно и следећи ставку.
11. Немојте користити превише различитих спољних извора (за слике, iframe-ове, Twitter/Facebook фидове и слично) јер свака додатна DNS претрага одузима још времена.
12. Укључите Apache KeepAlive поставке. KeepAlive је трик који омогућава да се неколико HTTP захтева спроведу кроз једну TCP конекцију. Подешавање сваке TCP конекције одузима време па зато овај начин може редуковати време потребно за преузимање свих датотека (HTML, JavaScript, слике..). Овде треба бити и опрезан јер у неким случајевима може доћи до закрчења сервера у тренуцима великог броја посета.
13. Сведите број редирекција на минимум.
14. Потрудите се да W3C излаз буде компатибилан. Грешке успоравају интернет прегледаче.
15. Замените Апацхе са NginX или Litespeed. Ако ово није опција, пробајте са Zend сервером.
16. Искључите или макар редукујте белешке које веб сервер прави (logging). То ће у одређеној мери редуковати исписивање по диску.
- Искључите Acces Time Logging. Са Magento викија: За Linux сервере, ако иматеccess Time Logging укључен на било ком MySQL-у, веб серверу или кеш партицијама, пробајте да га искључите ради побољшања перформанси. Ако користите ext3 или reiserfs, размислите о бржим journal методама које могу бити употребљене.
17. Комплајлирајте MySQL из извора.
18. Увек користите најновију Magento верзију. Нећете тако добити само још више могућности и исправке грешака, већ Magento у свакој новијој верзији постаје све бржи.
19. Query Cach величина: Модификујте поставке вашег MySQL сервера да боље искористи серверски RAM. Већина Linux дистрибуција подразумевано обезбеђује штедљиви MySQL пакет ради компатибилности са што већим бројем хардверских конфигурација. Ако имате довољно RAM-a(1GB+) можда ћете желети да преправите поставке.
20. Подесите ‘php_value memory_limit 128M’ у php поставкама или htaccess датотеци како би били сигурни да нећете остати без меморије.
21. Користите memory-based датотечне системе за динамичне податке (енгл. dynamic data). Ако чувате ове податке (var/cache, var/session) на RAM диску или у tmpfs-у, I/О на диску је мањи.
22. Изменити realpath_cache_size у php.ini.
realpath_cache_size=1M (careful, this is per apache process) realpath_cache_ttl=86400 (ok for production site)
23. Memcache је документован и објашњен овде: http://www.magentocommerce.com/boards/viewthread/9037/
24. Искључити PHP open_basedir директиву.
25. Елиминисати скенирање структуре директоријума за .htaccess датотеке.
26. Препоручене вредности за innodb_buffer_pool_size:
- Комбиновано web и db сервер, 6 GB RAM: 2-3 GB
- Dedicated сервер базе података, 6GB RAM: 5 GB
- Dedicated сервер базе података, 12 GB RAM: 10 GB
27. innodb_thread_concurrency:
- 2 * [numberofCPUs] + 2
28. Query Cach: query_cache_size: 64MB, query_cache_limit: 2MB
29. Користити backend сервер за админ кориснике, backend активне процесе (cron), генерисање кеширања целих страница и за медијске упите.
30. Користити вишеструке веб чворове (за frontend сервере) за ношење са прегледањем и проверама.
31. Користити Varnish reverse proxy caching, за Magento објашњено од @alistairstead: Varnish your Magento store, make it fly!.
32. Ако имате популаран сајт који је често прегледан од стране претраживачких машина, можете уштедети ресурсе изменом поставки у robots.txt.
33. Испробајте неке од ових додатака:
- M Turbo accelerator
- Magento Booster
- Tinybrick
34. Инсталирајте Yireo DisableLog додатак. Спречићете исписивање тоне података од стране Magento-а у бази података.
Template
35. Оптимизујте све слике (template). Већина њих треба да буде максимално 10kb.
- Исеците бели простор користећи уређивач слика
- Користите PNG8 или GIF формате за слике, радије него JPEG, и немојте корисити транспарентност у сликама
- Скалирајте слике: Увек правите слике у димензијама које су вам потребне на сајту
- Користите компресију за слике
- Користите CSS Sprites.
36. Минимизујте CSS, уклоните некоришћени код.
37. Минимално користите Javascript.
38. Користите лакше шеме (template) као основу за вашу шему.
39. Тачно дефинишите димензије слика.
40. Користите Block cache и HTML output између осталих додатака.
41. Примените Lazy Loader као прототип.
Magento поставке
42. Уклоните сваки додатак који заправо не користите.
43. Угасите модуле које не користите: System -> Configuration -> Advanced -> Advanced.
44. Укључите комплетно Magento кеширање: System -> Cache Management.
45. Користити offsite Stats Tracker као што је Google Analytics, никако оне типа onsite. Већина њих ће користити Javascript, па сами хостујте и Javascript.
46. Комбинујте Javascript и CSS датотеке: System ->Configuration ->Advanced ->Developer ->‘Javascript settings’ и ‘CSS Settings’. Можете користити и екстензије које ће вам обавити овај посао: Fooman Speedster extension.
47. Испробајте неке од Magen додатака за боље перформансе.
48. Укључите Magento Flat Catalog, али имајте у виду да се најбољи резултати виде тек код јако великих каталога.
49. Немојте користити слојевиту навигацију (layered navigation) јер може бити захтевна када су ресурси у питању.
50. Користите Magento Compilation опцију. Забележено је да даје 25%-50% боље перформансе: System > Tools > Compilation. (није неопходно ако имате byte code caching постављен исправно)
51. Користите исправно складиште за сесије, одаберите (током инсталације) датотечни систем(File system) или базу података. Већина инсталација треба да користи File system зато што је бржи и не изазива раст базе података. Уколико ће ваш сајт радити на наколико сервера, одаберите опцију database како би кориснички подаци о сесији били независни од сервера са ког се услужују. Више података видите овде: Ashley Schroder на Magebase.com.
52. Ограничите број производа укупно и број производа на страници која се прегледа.
53. Поставите атрубуте за фронтенд опције на “Yes” уколико ћете их заиста и користити. Остале поставите на “No”. Не користите их у брзим претрагама, напредно поређење у претрагама и сл. : Catalog -> Attributes -> Manage Atributes -> Frontend Properties.
54. Онемогућите Magento log: System -> Configuration -> Advanced -> Developer -> Log Settings (подразумевано је онемогућено – Disabled).
Тестирање брзине, анализа, мониторинг
55. Тестирајте Magento сајт са Magento Speed Test (by Ashley Schroder)
56. Покрените скенирање вашег сајта преко websiteoptimization.com.
57. Користите Google Page Speed Firefox extension или Yahoo Yslow за предлоге у вези са Google-ом или Yahoo-ом.
58. Имплементирајте Google Speed мерења у Аналитици: Site Speed Analytics Report.
59. Пратите брзину сајта и будите обавештени уколико се јави downtime:
- Mon.itor.us
- Pingdom
Backend убрзање
60. Користити K-Meleon ако користите Windows за опште Админ послове. Рендерује брже Magento захтевнији JS back-end од било ког другог прегледача.
61. Користити GoogleGears extension from Yireo.com за кеширање статичних датотека локално.
62. Користити локалну pc/mac апликацију за управљење Magento-ом (нпр. mag-manager.com).
Жртвовати Magento перформансе ради функционалности?
Уколико желите да жртвујете перформансе ради реалне функционалности коју ваша конкуренција нема, можете то урадити и то неће бити проблем. Корисници не иду увек и по сваку цену на сајтове који брже послужују своју понуду, највећи део њих трага за добром и функционалном претрагом, опцијама за разврставање или визуелно усклађеним прегледом. Сигурно је да нећете моћи да примените све ове препоруке изнад и јако је битно нагласити да сваки сајт тражи посебне поставке у зависности од функције, хардвера и идентитета. Међутим, свака од ставки изнад може бити добра полазна тачка код решавања многих проблема и захтева.
0 Comments