Prestashop optimalisatie
Prestashop is momenteel het meest gebruikte open source webwinkel pakket. Prestashop is gemakkelijk te begrijpen en gemakkelijk te installeren. Helaas is prestashop soms traag. Dit is niet alleen vervelend maar kost uiteindelijk klanten !
In dit artikel zullen wij bespreken wat je kunt doen om een prestatshop installatie sneller te laten draaien. Een snellere pagina betekent meer pageviews, een betere user experience en meer omzet.
Dit artikel gaat uit van een geavanceerde kennis van php, de webserver, de unix shell en html. Indien u deze kennis niet paraat heeft kan webcijfers u helpen uw prestashop installatie te optimaliseren en te versnellen.
Prestashop cache instellingen en performance
Prestashop kent een aantal verschillende caching mechanismen waaromder smarty caching met code compressie. Smarty caching zorgt er voor dat de losse en trage smarty templates omgezet worden in pure php code dat sneller geserveerd kan worden door de server. Compressie zorgt er voor dat de html code kleiner is en daardoor sneller verstuurd kan worden.
De volgende opties geven de beste performance van de webpagina.
Compileren forceren: kies Nee
Cache: kies ja
Smart Cache voor CSS: kies CCC voor CSS gebruiken.
Smart Cache voor JavaScript: kies CCC voor JavaScript gebruiken.
HTML minimaliseren: kies HTML minimaliseren na de "smarty compiler" uitvoering.
Comprimeer inline JavaScript in HTML: kies Comprimeer inline JavaScript in HTML na "smarty compiler" uitvoering
High risk HTML compression: kies Behoud W3C validatie
De laatste high risk compression wordt op dit moment niet aanbevolen omdat de opbouwtijd van de pagina bij een niet gevalideerde pagina hoger is dan andersom !
APC is sneller dan memcached
Prestashop biedt een ingebouwde caching functie. Deze cache bestand kunnen opgeslagen worden op schijf of in het geheugen (via memcached). Wij raden het gebruik van memcached af omdat APC vaak een sneller alternatief is.
APC slaat gecompileerde php bestanden op in het geheugen van de server waardoor php pagina's niet meer worden gecompileerd (dat kost veel rekenwerk) en er geen schijftoegang meer nodig is. Memcache elimineert alleen de schijftoegang waardoor APC vaak sneller is.
Snelle hardware maakt het verschil
De meeste prestashop installaties draaien op een shared hosting account. Dat is een betaalde oplossing waarbij een website samen met (heel veel andere) websites op 1 machine draaien. De kosten zijn laag maar de performance is vaak dramatisch waardoor op piekuren prestashop traag laadt.
Als jouw prestashop een serieuze bron van inkomsten is adviseren wij ook serieus naar een goede hosting oplossing te zoeken. Een snelle managed server is vaak een prima keuze om de snelheid dramatisch op te krikken. Een ander goedkoper alternatief is een virtuele server. Een virtuele server is een server die niet fysiek bestaat maar draait op een grotere server samen met andere virtuele servers. Processorkracht, geheugen en harde schijf worden dan gedeeld met enkele andere gebruikers.
Gebruik zo min mogelijk modules
Prestashop kent de mogelijkheid om een pagina modulair op te bouwen. Modules geven prestashop een enorme flexibiliteit en zijn voor een programmeur simpel om te bouwen zonder dat er aan het hoofdsysteem zelf (prestashop) gesleuteld hoeft te worden. Het nadeel van modules is dat ze vaak langzaam zijn doordat het systeem veel meer taken op moet starten per pagina. Veelgebruikte prestashop modules zoals homepage links, fabrikanten etc zijn simpel te vervangen door veel snellere statische html in de template.
Ajax zoeken kan de site vertragen
Prestashop bouwt een bij toevoegen van producten een tijdelijke tabel waar alle mogelijkze zoekwoorden in staan. Deze tabel kan er groot worden en zoeken kan traag worden. Waneer ajax zoeken ingesteld staat zal prestashop bij iedere letter die in het zoekveld wordt ingevuld opnieuw gaan zoeken. Voor een zoekopdracht van 20 letters is er dus niet 1 maar 20 zoekopdrachten nodig. Bij hele grote sites met veel produkten is dit al voldoende om de site aanmerkelijk te vertragen.
Als prestashop soms erg traag is is dit een goede plek om te beginnen met zoeken. Vraag aan de serverbeheerder of 'mytop' geïnstalleerd kan worden op de server. Mytop is een simpel programma dat laat zien waar mysql zoals mee bezig is. Als mytop laat zien dat er veel queries vanuit PS_search_words en PS_search_index komen is de zoektabel waarschijnlijk de bottleneck.
Laat de webserver doen waar het goed in is !
Apache (waarschijnlijk de webserver die wordt gebruikt) is goed in het serveren van dynamische content zoals de pagina's van prestashop. Apache is niet zo goed in het serveren van plaatjes en kleine stukjes script zoals css en javascript.Het goed instellen van apache kan er voor zorgen dat prestashop een stuk sneller wordt.
Zorg daarvoor dat apache deze scripts en paatjes maar 1 keer per bezoekers serveert. Apache kent een aantal instellingen die standaard niet aan staan die hiervoor zorgen.
bespreek met de serverbeheerder dat apache een zogeheten 'expires-header' zet die ver in de toekomst ligt voor deze statische content. Voor druk bezochte sites raden wij zelf aan om apache pas in te zetten waar het echt nodig is en nginx als reverse caching proxy in te stellen voor statische content.
Hoe lang wil je je bezoekers tracken
Prestashop gebruikers kunnen er voor kiezen statistieken bij te houden over hun gebruikers. Als deze statistieken lang bewaard worden kan de database enorm groeien en bij berkeerd gebruik de gehele site vertragen. Bedenk dus goed hoe lang je je bezoekers echt wilt volgen. Een goed en snel alternatief voor de ze statistieken is google analytics. Let wel op dat je hiervoor niet de 'trage' analytics module gebruikt. De snelste oplossing is om de analytics code in de head te zetten van het template. Het bestand dat je hiervoor aan moet passen is header.tpl.
Mysql staat vaak niet optimaal ingesteld
Mysql is de database waar prestashop al haar data in opslaat. Standaard staat mysql niet optimaal ingesteld voor een prestashop installatie. Het gevolg hiervan is de veel lees en schijfbewerkingen op de harde schijf door de database wat de prestaties behoorlijk kan vertragen.
Om dit te verbeteren en prestashop sneller te maken kun je mysqltuner gebruikern. Mysqltuner is een handig programma dat de statistieken van de database server uit kan lezen en daarop advies opver de instellingen kan geven. Uw server beheerder kan mysqltuner voor u instellen en de suggesties implementeren.
Waar gaat uw website over ?
| Vul hieronder het domein van uw website in. Wij analyseren dan automatisch de inhoud van de site. |

