Ladíme Magento pro výkon

V dnešní době by stránka měla být kompletně vykreslená do 2 vteřin. Pokud se tak nestane pak netrpělivost zákazníka roste a zvyšuje se šance je opuštění.

Nějaký ten pátek (cca 3 roky) zpět jsem položil na SO (http://stackoverflow.com/questions/9216743/tweaking-magento-for-performance) dotaz co všechno je potřeba poladit a nastavit, aby člověk dostal z hostingu a Magenta co nejrychleší odezvu a minimalizoval šanci, že zákazník z webu odejde jinam.

Následuje shrnutí co je dobré vzít v úvahu při lazení pro výkon. Body nejsou setřízené.

Serverová konfigurace

MySQL konfigurace

  • zapnout query cache

Magento konfigurace

  • určitě mít zaplý flat catalog
  • pokud je to možné tak použít full-page-caching
  • zapnutý compiler mode
  • spojení všech CSS souborů do jednoho a JS souborů do jednoho souboru (merge)
  • smazat všechny website+store view, které nepoužíváte
  • smazat všechna nepoužívaná košíková pravidla
  • používat rozumně veliké obrázky
  • minimalizujte počet skupin zákazníků
  • všechny plánované úlohy by měly běhat špičku pokud je to možné
  • ujistěte se, že cron promazáva logy uložené v databázi
  • odstraňte Admin notification modul.

Magento coding style

  • odstranit všechny moduly a rozšíření, která se nepužívají odstraněním XML souborů (v app/etc/modules. Zakázat modul přes backend nestačí
  • používat ajax, kde to je jenom možné
  • načís CMS blok zabere více času než Magento blok a zpracování šablony, vyhněte se použítí CMS bloků, pokud nemá být obsah nijak modifikován
  • nepoužívejte $collection->count() a místo toho použiteje $collection->getSize()
  • minimalizujte počet atributů dostupných ve vyhledávání
  • použijte Apache SORL, toto je dostupné v EE verzi, CE verze vyžaduje rozšíření
  • použijte getChildHtml(‘childName’) namísto vytváření bloku přímo v .phtml šabloně, protože toto zkontroluje zda výstup není již uložený v magento cache
  • zkontrolujte layout xml na bloky, které jsou umístěné v default handle, ale vykreslují se pouze pro specifický layout handle. Takové bloky přesuňte z defaultu do specifických.

CSS/HTML coding style

  • používat css sprite pro obrázky
  • HTML výstup by měl být W3C compliant (validní), né vždy lze tohoto dosáhnout, např. google page speed generuje nevalidní html5 kvůli úspoře každého bajtu

Další doporučení

  • použijte rozumně content delivery network (CDN)