Een standaard “kale” Magento 2 installatie laadt honderden Javascript bestanden, een handje vol CSS-bestanden en vaak tientallen afbeeldingen in. Het kost tijd om al die bestanden te downloaden, te initialiseren en weer te geven. Elke extra plugin, module of maatwerk toevoeging vergroot dit en dat alles is van invloed op de performance.
In de meeste gevallen kunnen een aantal simpele tweaks in Magento 2 tot grote verbeteringen leiden.
In deze stap van het optimalisatieproces komt Google PageSpeed (en haar zusterproject Google Lighthouse) aan bod. Deze tools helpen ons namelijk om op te sporen welke afbeeldingen groter zijn dan nodig en welke Javascripts onterecht worden ingeladen. Daarnaast geven zij inzicht in de impact van de aangebrachte wijzigingen op de performance. Breng je veranderingen aan? Zorg dan voor een aantal voor- en nametingen om een goed beeld te krijgen van de verbeteringen.
Zorg dat Magento en bijbehorende modules up-to-date zijn
Elke nieuwe versie van Magento betekent in de meeste gevallen een verbetering in performance. De grootte van deze verbetering verschilt per update en hoewel dit blog zich focust op de performance van de webshop aan de voorkant, worden ook aan de achterkant zaken als de admin omgeving en bijbehorende processen verbeterd en versneld. Wanneer de back-end van je installatie snel is, zal er meer ruimte op de server beschikbaar zijn voor je bezoekers.
Schakel onnodige modules uit
In iedere Magento installatie zitten standaard modules en features van Magento of derde partijen die niet persé noodzakelijk zijn. Wanneer je deze functies niet of nauwelijks gebruikt, kun je kijken of het uitschakelen ervan leidt tot een verbeterde performance. Mis je de functionaliteit van de module of feature niet? Schakel deze dan standaard uit.
Magento’s documentatie bevat een hele sectie over best practices voor optimale performance. De meeste zaken in deze documentatie zullen in de volgende paragrafen ter sprake komen. Echter, we kunnen je Magento configuratie wel alvast optimaal volgens deze documentatie van Magento configureren. Er zijn wat ons betreft wel wat op- en aanmerkingen op deze documentatie:
- Een valkuil is de paragraaf over ‘Client side optimization settings’. Deze instellingen kunnen namelijk alleen aangepast worden via de developer mode of via de command line. Het activeren van de instellingen (zoals beschreven in de tabel) levert wat ons betreft een slechtere performance.
- Het activeren van Javascript Bundling in een standaard Magento installatie heeft niet onze voorkeur. De implementatie van bundling zoals bedacht door Magento zelf is op zijn best een fallback en realistisch gezien niet heel goed. Voor de opties merge CSS, merge JS, en Minify HTML raden wij aan om te experimenteren. Afhankelijk van je hosting en je shop kan dit een goed of juist slecht effect hebben op de overall performance.
- Wij raden aan om de Minify CSS en Minify JS instellingen te activeren. Omdat de webshop moet worden gemeten in Production modus, adviseren wij om deze modus pas te activeren nadat deze instellingen zijn aangepast. Zorg er altijd voor dat je de performance van je shop voor en na de wijzigingen vergelijkt.
Optimaliseer de afbeeldingen in je shop
Afbeeldingen maken een webpagina aantrekkelijk maar kunnen tegelijkertijd ook de grootste vertragende factor zijn. De bestandsgrootte van afbeeldingen is vaak veel groter dan nodig. Een goede afbeelding-optimalisatietool kan afbeeldingen tot wel 80% kleiner maken zonder zichtbaar verschil in kwaliteit. Dit betekent automatisch dat de bezoeker 80% minder data hoeft te downloaden waardoor het laden een stuk sneller zal gaan. Daarnaast heeft het optimaliseren van afbeeldingen als bijkomend voordeel dat de schijfruimte op de server minder benut wordt, waardoor je misschien shop in het uiterste geval op een kleiner hostingpakket kan draaien.
Natuurlijk is deze 80% een best case scenario; de daadwerkelijke besparing hangt van een groot aantal factoren af zoals het soort afbeeldingen dat gebruikt wordt (sommige afbeeldingen kunnen makkelijker gecomprimeerd worden dan andere) en de mate van compressie die er op de afbeeldingen zit.
Het verkleinen van afbeeldingen kan handmatig door gebruik van afbeeldingen met een kleine bestandsgrootte, maar je kunt er ook tools voor gebruiken, zoals de hypernode-image-optimizer. Daarnaast zou je ook voor een ander formaat kunnen kiezen. Veruit de meeste afbeeldingen die op dit moment op het web worden gebruikt zijn JPEG of PNG-afbeeldingen. Google heeft sinds 2010 haar eigen WebP welke tot wel 30% kleiner JPEG of PNG-afbeeldingen. Belangrijk detail: Internet Explorer ondersteunt WebP niet en het is nog niet mogelijk om WebP zonder extra modulen up te loaden in Magento 2. Onze verwachting is dat support voor WebP afbeeldingen gaat groeien.