Is meer PHP geheugen nodig, omdat mijn site traag is? 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 uw 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 u wel eens gebruikt om in te loggen).

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

  1. De standaard WordPress onderdelen worden voor u 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. Uw thema wordt ingeladen

📌 Noot: Voor de geek onder ons: open ‘wp-settings.php’ maar eens in uw favoriete editor.

U ziet dus dat er aardig wat stappen nodig zijn om alles wat WordPress nodig heeft om (bijvoorbeeld) uw 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 uw database gaan opvragen en dat tijdelijk willen opslaan om te kunnen gebruiken. Dat kost u ook weer extra PHP geheugen. De options tabel wordt overigens ook standaard ingelezen, daarin staat bijvoorbeeld uw sitenaam en uw site beschrijving.

Dus: Hoe meer plugins u 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 uw database zelf en wordt de inhoud ervan doorgaans enkel opgehaald indien u een bericht toont of bewerkt.
Daarnaast: Het kan heel goed dat uw tien plugins met maar een paar simpele php instructies net zoveel geheugen nodig hebben als twee “zwaardere” plugins. Aantallen plugins kunt u daarom niet vergelijken. Maar u kunt wel meten hoeveel PHP geheugen u gebruikt.

Hoeveel geheugen gebruikt mijn site eigenlijk? Meten is weten.

Gelukkig heeft u hier geen programmeer kennis voor nodig, er is een simpele plugin voor.
Ga naar Plugins en klik op “Voeg toe”, vervolgens zoekt u op “memory” en installeert u deze kleine plugin: ‘Server IP & Memory Usage Display’.

Plugin Server IP & Memory Usage Display
Na het installeren kunt u 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 dat hij aangeeft:

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

Wat kunnen we hieruit afleiden?

  • Puur om een standaard WordPress installatie in te laden + wat kleine plugins hebt u 21.57 megabytes server PHP geheugen nodig.
  • De server waar ik deze test op doe heeft een maximum toekenning van 128 MB PHP geheugen per aanroep.
  • En, er zit een foutje in de plugin, ondanks dat er maximaal 128 MB gebruikt mag worden geeft hij een limiet van 40 MB aan. Dat kunt u negeren.

Het is vrij normaal dat u 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 uw 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 uw WordPress hostingprovider.
Deze plugins kunnen relatief veel PHP geheugen gebruiken of vertragen uw site flink. Gelukkig maakt het gebruik van (object) caching sommige plugins wel sneller.

  • WPML
  • Jetpack
  • Woocommerce (zeker in gebruik met WPML)
  • Yet Another Related Posts Plugin
  • WP-PostViews
  • WP-slimstat

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

Dan kan WordPress niet alle plugins of data inladen en krijgt u op uw 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 u dus voorkomen, u hebt dan 2 keuzes: Bij uw webhost regelen dat u meer PHP geheugen krijgt of optimaliseren. Vanuit snelheidsoogpunt is optimaliseren altijd beter. Maar hoe vermindert u uw 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 efficiënter met PHP geheugen omgaat.
Gebruikt u 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 uw server vraagt.

Ook in de database kunt u winst halen: Kijk eens naar uw options tabel in de database, staan daar hele grote waarden in die autoload = yes hebben? U kunt ze gerust op autoload = no zetten, dat voorkomt dat bij ieder verzoek alles wordt ingeladen. Bent u bang dat uw site dan kapot gaat? Daar hoeft u 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 kunt u op no zetten. Het is overigens ook veel beter om transient / object caching te doen middels memcached of APC. Dat kunt u bewerkstellingen door W3TotalCache te gebruiken.

Wat u 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 kunt u alsnog een trage site hebben èn weinig PHP geheugen gebruiken.

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

Ik wil ook een snelle site