Performance verbeteren

Heeft u het idee dat uw website traag of niet optimaal is? Bekijk hier eerst de verschillende pagina’s met tips voor het verbeteren van de performance van uw website.

Inhoud

Algemeen

Wanneer uw website minder snel laadt dan u zou willen, is de oorzaak in de meeste gevallen al te vinden met het stappenplan hieronder. Controleer tenminste de volgende mogelijke oorzaken:

Uw eigen internetverbinding

Deze kan door tijdelijke drukte trager zijn dan u gewend bent. Kabelinternet is tijdens piekbelasting vaak traag. Ook als u of een collega grote bestanden aan het downloaden is kan dit invloed hebben op de snelheid. speedtest.net kan inzicht verschaffen in uw huidige internetsnelheid.

Externe factoren, zoals het gebruik van andere gegevensbronnen

Haalt uw site informatie van andere sites die mogelijk traag zijn? Is er sprake van embedded filmpjes, widgets, live webcams en dergelijke? Ook een extern statistiekprogramma zoals Netstat kan vertraging veroorzaken.

Controleer uw site dus allereerst op een andere PC of internetaansluiting om de verbinding te testen. Kijk daarna naar mogelijke problemen in de configuratie van uw site, of binnen uw hostingomgeving. Mogelijke interne factoren bespreken we verder hieronder.

Interne factoren, zoals fouten in de server-side programmacode

Vaak ontstaan er problemen met de snelheid van uw site door overmatig gebruik van plugins binnen uw CMS-systeem. Wees sowieso kritisch en zuinig in het gebruik van plugins en begin vooral bij uw plugins met het zoeken naar de mogelijke oorzaak. Mischien is er ook sprake van een loop in een stuk code of, wanneer er een database draait op uw site, loopt er mischien een "wild query", waardoor het gehele systeem vertraagd wordt.

Geavanceerde tips

Hieronder een aantal tips om uw website-performance aanzienlijk te verbeteren. Enkele tips vergen wel een ingrijpende aanpassing aan de configuratie van uw site en dienen dus niet op de live versie van uw site te worden uitgevoerd, of dan alleen op het moment dat u een mogelijke downtime accepteert. Neem contact op met Greenhost voor instellingen die u niet zelf, via het Service Centre of het beheerpaneel van uw CMS, kunt aanpassen.

7 algemene tips voor veel snelheidswinst

Kies het juiste hostingpakket

Bij Greenhost is de limiet van beschikbaar PHP-geheugen gekoppeld aan het type hostingpakket. Dit betekent dat een zware, complexe site op een van onze Personal paketten mogelijk traag of anderzins niet goed draait.

Gebruik recente softwareversies

Zorg ervoor dat u in staat bent altijd de laatste updates te installeren van uw CMS pakket, of zorg ervoor dat uw site automatisch update. Verder kan het verstandig zijn om modules, add-ons of plug-ins die langer dan een jaar niet zijn geüpdatet te verwijderen en/of te vervangen.

Kijk kritisch naar geïnstalleerde modules

Controleer of u alle modules die u heeft geïnstalleerd ook werkelijk nodig heeft. Alle modules die u installeert zorgen voor extra overhead en zijn dus een mogelijke bron van vertraging. Bovendien zijn sommige exotische modules vaak niet goed geprogrammeerd of kunnen ze fouten bevatten, waardoor uw webshop minder stabiel wordt. Sommige modules zorgen eventueel voor een performance-winst, maar kunnen ook dubbelop zijn. Als u uw caching goed heeft geconfigureerd, is het installeren van een extra caching module vaak niet zinvol.

Schakel over op de nieuwste PHP-versie

Het gebruik van de nieuwste PHP versie zal vaak een aanzienlijke snelheidswinst voor uw site betekenen. Controleer hierbij of er op uw site geen problemen ontstaan. Zie ook deze helpdeskpagina.

Stel mod_deflate in om content te comprimeren

Via de apache module mod_deflate kunt u uw content comprimeren voordat ze naar de browser gaat. Dit kan resulteren in een aanzienlijke snelheidswinst. Voeg de volgende regels toe aan uw .htaccess config bestand (andere verwijzingen naar mod_deflate verwijderen!):

.htaccess

1
2
3
4
5
6
7
8
9
10
11
12
<IfModule mod_deflate.c>
    # Insert filter on all content
    SetOutputFilter DEFLATE
    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # Don't compress images (or gzipped files....)
    SetEnvIfNoCase Request\_URI \.(?:gif|jpe?g|png|gz)$ no-gzip dont-vary
</IfModule>

Stel expiry headers in voor betere cache control

Standaard wordt er geen gebruik gemaakt van browser-caching. Dit kunt u inschakelen via mod_expires. Voeg de volgende configuratieregels toe aan het .htaccess bestand in de root-directory van uw site (andere verwijzingen naar mod_expires verwijderen!):

.htaccess

1
2
3
4
5
6
7
8
9
10
<IfModule mod_expires.c>
    <FilesMatch \.(png|gif|jpg|js|css|js\.css)$>
    # Enables generation of 'Expires' and 'Cache-Control' headers
    ExpiresActive On
    # Sets default expiration time
    ExpiresDefault "access plus 1 month"
    # Disables entity tags (ETags)
    FileETag None
    </FilesMatch>
</IfModule>

Stel JavaScript aggregatie in

Het samevoegen (aggregate) en kroppen (minifi) van JavaScript-bestanden is bij sites gebouwd met een CMS zoals Wordpress of Magento geen overbodige luxe. Magento biedt de mogelijkheid om JavaScript bestanden samen te voegen tot een groter bestand voordat het naar uw browser wordt gezonden. In combinatie met gzip-compressie (stap 7) kan dit tot aanzienlijke snelheidswinst leiden. Voor WordPress of andere CMSpakketten dient u en geschikte plug-in of add-on te vinden.

+5 extra (Magento only) tips

Caching en Indexes (Magento only)

U moet bij iedere installatie van Magento altijd caching en indexes aanzetten. Dit kunt u doen door in uw Magento beheer paneel onder system > cache management en system > index management alles aan te vinken en de wijzigingen op te slaan.

Stel een flat catalog category in (Magento only)

In uw Magento beheer paneel kunt u onder system configuration > catalog de optie 'Use flat catalog category' aanvinken. Dit zorgt voor een indexatie van uw product-categorieën. Pas als u een grote webwinkel heeft (minstens 1000 producten), zorgt het aanvinken van 'Use flat catalog product' ook voor snelheidswinst – anders kunt u deze liever uit laten staan. NB : bij oudere versies van Magento < 1.4.x moet u onder Cache Management ook nog klikken op rebuild catalog index.

Vertraging na verloop van tijd? (Magento only)

In Magento versies < 1.4.x zit een bug waardoor het beheer paneel steeds trager gaat functioneren. De workaround voor dit probleem is om met SFTP in te loggen en alles onder de directory /domains/uw/shop/var/cache/* te wissen. Daarmee veegt u de gehele cache schoon. Let er goed op dat u zich in de juiste directory bevindt! Soms kan deze actie ook nuttig zijn als u de indruk heeft dat de frontend trager is geworden.  Het kan geen kwaad, ongeacht de versie van Magento, om de cache van tijd tot tijd te wissen. Vervolgens kunt u via uw Magento beheer paneel onder 'Cache management' en 'Index management' de indexes opnieuw genereren en caches refreshen.

Sla sessies op in de database (Magento only)

Sla sessies op in de MySQL database en niet als bestanden. Dit zorgt voor een snellere afhandeling van sessies. Verander in het bestand app/etc/local.xml de regel(s):

app/etc/local.xml (oud)

1
2
3
<session_save>
    <![CDATA[files]]>
</session_save>

in

app/etc/local.xml (nieuw)

1
2
3
<session_save>
    <![CDATA[db]]>
</session_save>

Cronjob instellen voor Magento onderhoud (Magento only)

Dit zorgt niet direct voor een snelheidswinst, maar laat Magento automatische onderhoudstaken verrichten. Ga in het Greenhost service center naar het onderdeel 'Periodieke taken (crontab)' en voeg de volgende taak toe die ieder kwartier moet draaien:

/usr/bin/php7 /domains/uwdomein/subdomein/pad-naar-shop-root/cron.php

Als eerste argument geeft u dus het volledige pad naar het cron.php bestandje in uw shop root weer.

Algemene wijsheid: gebruik ook webdeveloper-tools en onze Apache-logs

U kunt eindeloos uw website-installatie blijven tweaken, maar vaak zit slechte performance in een andere hoek. Laadt uw site bijvoorbeeld externe elementen van een andere site? Gebruikt u images met een grotere filesize dan nodig, ingewikkelde database queries in customised PHP code? Zijn er JavaScript errors bij het laden van uw site? Inspecteer kritisch ieder onderdeel van uw website waarbij vooral tools zoals GTmetrix of Firefox Web Developer zeer nuttig zijn.

In het Service Centre van Greenhost kunt u onder Hosting -> Logs bij 'Webserver foutmeldingen' ook de Apache error logs bekijken, waarin soms nuttige meldingen kunnen staan die mogelijke problemen met uw site aangeven.

Geavanceerd: full page caching voor de poweruser

Ervaren webontwikkelaars kunnen gebruik maken van een zogenaamde full page cache module. Zo'n cache module probeert de laadsnelheid van uw website te verbeteren door niet dynamische elementen eenmalig te genereren en direct naar de browser te zenden. Daarbij moet u vaak zelf nog aangeven welke elementen u wel of niet in zo'n cache wilt hebben. Daarom kan dit proces niet worden geautomatiseerd. Als u zich hier echter in verdiept kunt u op dit vlak nog meer winst boeken. Via een zoekmachine kunt u meerdere full page cache extensies vinden voor Magento. Enkele daarvan zijn gratis.