Snel, sneller, snelst

WordPress als basis voor je CMS of blog is natuurlijk altijd langzamer dan een exact op maat geprogrammeerde website. WordPress haalt namelijk veel meer gegevens op uit de database dan je altijd nodig hebt. Ook kan door het gebruik van slecht geprogrammeerde plugins de werking van WordPress vertraagd worden.

Maar wat is snelheid? Voor een gemiddelde bezoeker maakt het niet zoveel uit als een pagina in 0.07 seconden of 0.7 seconden wordt samengesteld. Maar voor de server waar de site op draait is het wel een factor 10. Daarnaast is het aantal verbindingen met de server van belang. Elke afbeelding, elk javascript bestand vraagt om een verbinding, een zogenaamd http request. Bij elk verzoek van de browser om zo’n bestand op te halen worden ook de cookies weer meegestuurd. Als een pagina 50 plaatjes en scripts laat ophalen, worden er door de browser dus zo’n 50 verbindingen tegelijk gelegd. As de server zodanig is ingericht dat er 100 gelijktijdige verbindingen mogelijk zijn, kunnen er slechts 2 personen tegelijk een pagina bekijken.

In de praktijk valt het allemaal reuze mee. De bezoekers van je website komen vrijwel nooit exact op hetzelfde tijdstip maar verspreid over de hele dag, of de hele avond. En mocht het de spuigaten uitlopen, dan moet je eerder investeren in hardware dan om die laatste byte van je javascript bestanden af te halen. Websites als Fok.nl bijvoorbeeld zijn niet geschikt om te draaien in een shared host, die heeft zelf meerdere servers nodig voor al die bezoekers.

Optimalisatie

Toch is het absoluut niet verkeerd om je site eens door te kijken op punten om te optimaliseren. Hoe sneller je site wordt, hoe prettiger je bezoekers het vinden. Een request van 3 seconden is nog wel acceptabel voor een keertje, maar als je 20 pagina’s gaat lezen op een avond, en je moet elke keer 3 seconden wachten, dan haak je snel af.

Op Lorelle at WordPress staat een artikel over een aantal mogelijkheden om de site sneller te maken. Daarvan is er slechts één tip erg interessant, de overige niet zo. De tip om PHP code uit je templates te halen omdat die nooit veranderen, is nauwelijks de moeite waard. Mocht er snelheidswinst te halen vallen, dan is het pas meetbaar bij miljoenen bezoekers en dan heb je er meer aan om betere en snellere servers aan te schaffen. Zie bijvoorbeeld dit verhaal over dubbele en enkele aanhalingstekens bij het echoën in PHP.

Het is juist jammer om PHP uit je templates te halen. Ook al verandert bijvoorbeeld de titel van je site nooit, of het pad naar je template, je hebt er meer werk aan om je template weer aan te passen als er wel veranderingen zijn (of als je je template aanbiedt aan anderen) dan dat er winst te behalen valt. En je raakt de voordelen van PHP kwijt.

Wel kun je kijken naar het database gebruik. Maak zoveel mogelijk gebruik van een kale WordPress installatie en voeg plugins alleen toe als je die op een andere plek (je testserver thuis bijvoorbeeld) uitgebreid hebt getest. Veel plugins slaan een hoop instellingen op in WordPress die bij elke pagina request automatisch uit de database geladen wordt, zelfs al zijn de plugins alweer verwijderd. Door veel plugins uit te proberen en weer te verwijderen, loopt de hoeveelheid data behoorlijk op wat WordPress alleen al aan opties uit de database haalt. Dat is al snel meer dan een megabyte. En voor het tonen van één pagina is dat wel erg veel.

Ook zijn er veel plugins die alle door WordPress opgehaalde content bekijken of er codewoorden in voor komen, om deze dan te vervangen door bijvoorbeeld een contactformulier. Als je deze plugins niet gebruikt of slechts heel beperkt, overweeg dan om ze niet te gebruiken. Voor veel plugins zijn ook andere plugins mogelijk.

Je templates kun je wel optimaliseren door het gebruik van afbeeldingen en javascript te beperken. Verschillende javascript bestanden kunnen goed gecombineerd worden in één bestand en er zijn zelfs online obfuscator tools om de bestanden te comprimeren.

Eén van de betere oplossingen is om foto’s en andere afbeeldingen niet vanaf de eigen server te halen maar hiervoor gebruik te maken van bijvoorbeeld Google Picasaweb of Flickr. Het is vrij eenvoudig om een gratis account aan te maken en hiernaar de foto’s te uploaden. De servers die de foto’s dan verstrekken zijn er vast beter op ingericht dan de server waar je website draait en het scheelt enorm veel eigen webspace, zeker als je veel foto’s wilt tonen.

En misschien zijn er nog wel meer oplossingen voor het verbeteren van snelheid. Maar probeer altijd af te vragen of het nut heeft om iets te doen. Soms is de winst nauwelijks de moeite waard, en als je het maximale van je webserver bereikt, heb je vaak meer aan andere oplossingen.

About the Author

Na een jarenlange ervaring in programmeren en webdesign wordt deze blog gevuld met artikelen die gerelateerd zijn aan internet. Daarnaast bij vlagen een column of een mooie foto.