terug naar blogs

Magento 2 Optimalisatie

Afbeelding voor Magento 2 Optimalisatie
avatar van Danny
auteur
Danny
auteur
avatar van Danny
Danny
Magento 2 Optimalisatie
4 november 2022 leestijd 5-7 minuten

Uit o.a. een onderzoek uit 2019 van Portent blijkt dat de performance van een webshop direct invloed heeft op de conversie. De beste resultaten worden behaalt tussen de 0.2 en 4 seconden. Iedere seconde extra laadtijd zorgde daarbij voor een verlies van bijna 5% conversie. Hieruit blijkt hoe belangrijk de performance voor een webshop is! Onlangs schreven we een blog over de optimalisatie van WordPress, deze keer is Magento 2 aan de beurt.

Updates

Net als bij de meesten CMS’en is het updaten van Magento en de eventuele plugins die je gebruikt zowel de makkelijkste stap als de belangrijkste. Door up to date te blijven zorg je ervoor dat je security en compatibility risico’s minimaliseert. Sinds de overname van Adobe worden nieuwe PHP versies vrij snel meegenomen in de Magento requirements. Voor Magento 2.4 heb je minimaal PHP 8.1 en MariaDB 10.4 of MySQL 8 nodig. Om up to date te blijven moet je hosting partij dus ook deze server onderdelen tijdig updaten en beschikbaar stellen. Rootnet klanten kunnen daarom via Projects met één klik op de knop van PHP versie wisselen.

Production Mode & Cache Enabled

Magento 2 heeft een eigen fullpage caching feature. Deze feature kan je gebruiken wanneer er geen betere cache alternatieven op de server aanwezig zijn. Om deze te gebruiken dient de applicatie in productie modes te draaien. Om de status te controleren kan je het volgende commando gebruiken;
magerun2 deploy:mode:show

Mocht productie modus zijn uitgeschakeld gebruik je de het volgende commando om deze weer in te schakelen;
magerun2 deploy:mode:set production

Vervolgens controleer je de status van de caching;
magerun2 cache:status

Om de caching in te schakelen voer je het volgende commando in;
magerun2 cache:enable

Varnish Caching

Magento 2 bied standaard ondersteuning voor Varnish cache. Wanneer je hosting provider net als wij Varnish aanbied dan wordt aangeraden hier gebruik van te maken in plaatst van de eigen fullpage cache. Het voordeel van Varnish is dat dit een caching laag boven de applicatie legt waardoor deze een snellere Time To First Byte (TTFB) kan opleveren dan de caching in de applicatie zelf.

Om Varnish correct te gebruiken schakelen we de full page caching om naar de Varnish cache;
magerun2 config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2

Belangrijk daarbij is dat de cache correct gepurged wordt zodat je de juiste content blijft zien;
magerun2 setup:config:set --http-cache-hosts=<hostname of IP>:<listen port>

Redis Caching

Redis caching kan voor zowel de front-end als back-end gebruikt worden. Wanneer je Varnish al voor de front-end gebruikt dan heeft het geen meerwaarde om hier ook Redis voor te gebruiken. Voor Rootnet klanten is Redis standaard beschikbaar en wordt dit voornamelijk gebruikt voor backend caching. Dit verbetert merkbaar de performance in de backend.

Om Redis voor backend caching te activeren kun je het volgende commando gebruiken:
magerun2 setup:config:set --cache-backend=redis --cache-backend-redis-server=<hostname of IP> --cache-backend-redis-port=<listen port> --cache-backend-redis-db=<database>

Redis activeren voor de frontend gaat met het volgende commando:
magerun2 setup:config:set --page-cache=redis --page-cache-redis-server=<hostname of IP> --page-cache-redis-port=<listen port> --page-cache-redis-db=<database>

L2 Caching

In het geval van een grote webshop kan er soms veel interne traffic gegenereerd worden welke een flinke druk kan leggen op de Redis cache. Op de Redis te ondersteunen kan daarbij L2-cache gebruikt worden. Door L2-cache te activeren binnen je Magento 2 shop wordt er data opgeslagen binnen /dev/shm/. Voor het toepassen van L2 cache kan je de documentatie van Adobe raadplegen.

CSS en JS samenvoegen

Om het aantal verzoeken dat de website nodig heeft om zichzelf op te bouwen te verminderen is het samenvoegen en verkleinen van CSS- en Javascript-bestanden aan te raden.

Navigeer naar Stores > Configuration > Advanced > Developer > CSS Settings
zet Merge CSS Files naar Yes
zet Minify CSS Files naar Yes

Cover voor

Navigeer naar Stores > Configuration > Advanced > Developer > JS Settings
Zet Merge JavaScript Files naar Yes
Zet Minify JavaScript Files naar Yes

Cover voor

Cloudflare

Ook Magento 2 heeft baat bij Cloudflare. Ongeacht welke caching je gebruikt kan je dit toevoegen om de performance nog een stapje verder te krijgen. Specifiek voor de /static/ en /media/ directory wil je hierbij een page rule instellen dat deze altijd gecached wordt om zo de statische bestanden te serveren. Rootnet klanten kunnen gebruik maken van onze automatisch Cloudflare integratie.

Hosting

Magento 2 is zowel CPU als RAM heavy. Dit wil zeggen dat dit CMS veel vraagt van de onderliggende server. De tips hierboven zoals caching, minify en Cloudflare verlichten deze druk maar het blijft belangrijk om voldoende resources zoals CPU en RAM op de server beschikbaar te hebben. Sinds Magento 2.4 is bijvoorbeeld Elastic Search 7.17 een requirement om de zoekopdrachten en filtering binnen de webshop sneller en soepeler te laten verlopen. Sterke hardware en de juiste inrichting van de server zijn daarom bij Magento 2 nog belangrijker dan bij een willekeurig ander CMS.

Beter kan altijd

Magento webshops zijn geen kleine jongens. Er moet namelijk bij de aanbouw al redelijk geïnvesteerd worden om een kwaliteit webshop te bouwen. Logischerwijs heeft zo’n flinke webshop dan ook stevige hosting en expertise nodig. Bij ons ben je daarvoor aan het juiste adres. Neem contact met ons op om de mogelijkheden te bespreken of vul het onderstaande formulier in.

"*" geeft vereiste velden aan