Met meer PHP geheugen wordt mijn WordPress site sneller! Toch ?

Inhoudsopgave van: Met meer PHP geheugen wordt mijn WordPress site sneller! Toch ?

Categorie: The quest for speed | Tags: geheugen, laadtijd, memory, meten, PHP, plugin, plugins, RAM, snelheid

Veelgehoord "Ik heb meer PHP geheugen nodig, want mijn site is traag". Wij leggen uit hoe het nu echt zit.

Hoe werkt PHP geheugen?

Schrik niet, we gaan niet te diep op de techniek in 🙂

Ok, komt ie: PHP is de programmeertaal die het mogelijk maakt dat WordPress werkt. In PHP staat beschreven wat er gedaan moet worden om iets op je scherm te krijgen of om bijvoorbeeld een mailtje te laten sturen van een nieuw commentaar.
Al deze instructies (van WordPress zelf, maar ook van plugins) staan in losse bestanden (de .php bestanden zoals wp-login.php die je wel eens gebruikt om in te loggen).

Als je je WordPress site in je browser ophaalt of als je een bericht aan het werken bent gebeurt er onder water het volgende, in deze globale volgorde:

  1. De standaard WordPress onderdelen worden voor je verzameld en ingeladen
  2. Eventuele mu-plugins en multisite netwerk-geactiveerde plugins worden verzameld en ingeladen
  3. Alle plugins die actief zijn worden verzameld en ingeladen
  4. Je thema wordt ingeladen

Noot: Voor de geek onder ons: open wp-settings.php maar eens in je favoriete editor.

Je ziet dus dat er aardig wat stappen nodig zijn om alles wat WordPress nodig heeft om (bijvoorbeeld) je berichten en pagina's op te halen mogelijk te maken. Al deze php bestanden en instructies worden in het tijdelijke server geheugen ingeladen (ook wel RAM genoemd).
Ook kan het zijn dat de php instructies alvast data uit je database gaan opvragen en dat tijdelijk willen opslaan om te kunnen gebruiken. Dat kost je ook weer extra PHP geheugen. De options tabel wordt overigens ook standaard ingelezen, daarin staat bijvoorbeeld je sitenaam en je site beschrijving.

Dus: Hoe meer plugins je extra installeert, hoe meer PHP geheugen er nodig zal zijn.


Plus: Over het algemeen heeft het aantal revisies en berichten niet veel invloed op je geheugengebruik. Al nemen ze wel ruimte in in je database zelf en wordt de inhoud ervan doorgaans enkel opgehaald indien je een bericht toont of bewerkt.
Daarnaast: Het kan heel goed dat jouw tien plugins met maar een paar simpele php instructies net zoveel geheugen nodig hebben vergeleken met twee "zwaardere" plugins. Aantallen plugins kun je daarom niet vergelijken. Maar je kunt wel meten hoeveel PHP geheugen je gebruikt.

Hoeveel geheugen gebruikt mijn site eigenlijk? Meten is weten.

Gelukkig hoef je hier geen programmeer kennis voor nodig te hebben, er is een simpele plugin voor.
Ga naar Plugins en klik op "Voeg toe", vervolgens zoek je op "memory" en installeer je deze kleine plugin : "Server IP & Memory Usage Display"

Plugin Server IP & Memory Usage Display
Na het installeren kun je in je WordPress admin onderaan zien hoe het zit.

Ik heb hier een standaard WordPress installatie bij ons gebruikt, met enkel de plugin "Server IP & Memory Usage Display" aan, onze eigen plugins en het (licht oudere) thema TwentyFourteen aan.
Dit is een stukje van de tekst die hij aangeeft:

Memory: 21.57 of 128 MB (17%) | WP LIMIT: 40 MB

Wat kunnen we hieruit afleiden?

Het is vrij normaal dat je voor een gemiddelde website met een reeks plugins zo rond de 45 megabyte PHP geheugen nodig hebt. Let daar dus bij op bij het kiezen van je WordPress hostingprovider. Wij garanderen minimaal 92 MB PHP geheugen op al onze pakketten.

Welke plugins gebruiken veel laadtijd?

Noot: dit lijstje is niet compleet, en kan per plugin afhankelijk zijn van de mogelijkheden van je WordPress hostingprovider.
Deze plugins kunnen relatief veel PHP geheugen gebruiken of vertragen je site flink. Gelukkig maakt het gebruik van (object) caching sommige plugins wel sneller.

Wat gebeurt er als je meer dan de beschikbare megabytes geheugen nodig hebt?

Dan kan WordPress niet alle plugins of data inladen en krijg je op je site een "fatal error: php memory exhausted" melding. En dat komt vaak voor, op google kan ik al een half miljoen hits vinden op deze zoekterm.

php memory exhausted

Dat moet je dus voorkomen, je hebt dan 2 keuzes: Bij je webhost regelen dat je meer PHP geheugen krijgt of optimaliseren. Vanuit snelheidsoogpunt is optimaliseren altijd beter. Maar hoe verminder je je PHP geheugen?

Geheugengebruik verminderen

Doorgaans de simpelste en snelste optie: Verwijder WordPress plugins of gebruik een beter thema. Een beter thema betekent hier: eentje die efficienter met PHP geheugen omgaat.
Gebruik je een bepaalde plugin niet meer? Zet hem dan uit (en verwijder hem ook ivm veiligheid).
Gaat het puur om snelheid, kijk dan ook eens naar de plugin: P3 (Plugin Performance Profiler), die kan meten hoeveel laadtijd iedere plugin van je server vraagt.

Ook in de database kun je winst halen: Kijk eens naar je options tabel in de database, staan daar hele grote waarden in die autoload = yes hebben? Je kunt ze gerust op autoload = no zetten, dat voorkomt dat bij ieder verzoek alles wordt ingeladen. Ben je bang dat je site dan kapot gaat? Daar hoef je niet bang voor te zijn, mocht er een optie nodig zijn die niet standaard ingeladen is, dan wordt deze alsnog in een klein los verzoek opgehaald en zo blijft alles werken.
Ook de transients die op autoload = yes  staan kun je op no zetten. Het is overigens ook veel beter om transient / object caching te doen middels memcached of APC. Dat kun je bewerkstellingen door W3TotalCache te gebruiken.

Wat je ook doet: blijf meten wat het verschil is. Doorgaans is een site sneller als hij minder PHP geheugen gebruikt. Dat komt omdat hij minder instructies hoeft in te laden. Maar daarmee is niet alles gezegd, stel een kleine plugin moet onder water informatie ophalen van een andere site en dat duurt iedere keer 10 seconden dan kun je alsnog een trage site hebben èn weinig PHP geheugen gebruiken.

Ook zin om je site sneller te maken? Bij ons krijg je standaard objectcaching en W3TotalCache werkt echt op zijn snelst bij ons, zelfs in combinatie met WooCommerce. Ook denken we heel graag met je mee om je site te optimaliseren. Buiten je PHP geheugen nalopen kunnen we je helpen met het versnellen laadtijden zodat bezoekers en zoekmachines weer blij worden.

Ik wil ook een snelle site

Schrijf je in voor onze nieuwsbrief

Ontvang ook onze laatste handige tips en WordPress nieuwtjes.

  • Maximaal 1x per week
  • Makkelijk uitschrijven

Schrijf je in voor onze nieuwsbrief




Een ogenblikje



Bedankt voor je inschrijving!


 

Geef je reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *



Als je dit artikel leuk vond, dan moet je deze speciaal geselecteerde artikelen ook lezen!


Ervaringen van anderen