U opent uw website en ziet in plaats van uw homepage een witte pagina met één zin: “There has been a critical error on this website.” Soms staat eronder “Learn more about troubleshooting WordPress”, soms niets. Het beheer doet het ook niet meer. Voor de meeste ondernemers is dit het moment van lichte paniek, zeker als het net voor een campagne of op vrijdagmiddag gebeurt.
Het goede nieuws: een critical error in WordPress is bijna nooit een hack en bijna nooit dataverlies. Het is een fatale PHP-fout, en WordPress laat die zien in plaats van een wit scherm zodat u weet dat er iets mis is. In dit artikel leggen we uit wat de melding betekent, wat de gebruikelijke oorzaken zijn, en hoe u het stap voor stap oplost, ook als u niet meer kunt inloggen.
Wat de melding precies betekent
WordPress is geschreven in PHP. Elke keer dat iemand een pagina opent, voert de server een reeks PHP-bestanden uit: de kern, het thema en alle actieve plugins. Als daar ergens iets gebeurt waar PHP niet mee verder kan, stopt de uitvoering. Dat heet een fatal error. Sinds WordPress 5.2 wordt die niet meer als een leeg scherm getoond maar als deze melding, en er wordt een e-mail gestuurd naar het beheerdersadres van de site.
De melding zelf zegt dus niet wat er mis is. Ze zegt alleen: ergens in de code is het misgegaan. De echte informatie staat in die e-mail of in het foutenlog van de server. De eerste stap is altijd om daar te kijken voordat u iets aanpast.
De vijf meest voorkomende oorzaken
- Een plugin- of thema-update die niet samengaat met de rest. Veruit de meest voorkomende. De nieuwe versie gebruikt een functie die de PHP-versie op uw server niet kent, of botst met een andere plugin.
- Een PHP-versie die is bijgewerkt door de hostingpartij. Hostingbedrijven zetten oude PHP-versies uit. Een oud thema of een verlaten plugin die nog code uit PHP 5 gebruikt, valt dan om.
- Het geheugen is op. Een zware plugin of een import die meer geheugen vraagt dan de server toestaat. De foutmelding noemt dan “Allowed memory size exhausted”.
- Een handmatige aanpassing in functions.php of wp-config.php. Eén vergeten puntkomma of accolade is genoeg. Dit gebeurt vaak direct na het plakken van een stukje code van een forum.
- Een half mislukte update. De verbinding viel weg tijdens het bijwerken, waardoor een plugin half oud en half nieuw op de server staat.
De critical error stap voor stap oplossen
Stap 1: lees de herstelmail
Zoek in de mailbox van het beheerdersadres naar een bericht met als onderwerp iets als “Your Site is Experiencing a Technical Issue”. Daarin staat welke plugin of welk thema de fout veroorzaakt, welk bestand en welke regel, en een speciale link naar de herstelmodus. Die link werkt een beperkte tijd en laat u inloggen terwijl de schuldige plugin tijdelijk is uitgeschakeld.
Bent u ingelogd via de herstelmodus, dan ziet u bovenaan een melding met de veroorzaker. U kunt de plugin uitschakelen, en de site werkt weer. Daarna kunt u rustig uitzoeken of er een nieuwere versie is, of de plugin vervangen moet worden.
Is er geen mail? Controleer eerst het spamfilter. Komt hij er echt niet, dan is het beheerdersadres mogelijk verouderd, of verstuurt de site geen e-mail. Ga dan door naar stap 2.
Stap 2: kijk in het foutenlog
Elke hostingpartij houdt een foutenlog bij, meestal bereikbaar via het hostingpaneel onder een naam als “Error log” of “Logs”. Zoek naar de meest recente regel met “PHP Fatal error”. Daarin staat het pad van het bestand dat de fout veroorzaakte. Staat er ergens “/wp-content/plugins/naam-van-plugin/”, dan weet u welke plugin het is. Staat er “/wp-content/themes/”, dan is het het thema. Meer over het lezen van zo’n log staat in dit artikel over de debug-modus, die u ook tijdelijk kunt inschakelen om de fout op het scherm te tonen.
Stap 3: schakel de veroorzaker uit zonder in te loggen
Als u niet kunt inloggen, kunt u een plugin uitschakelen via de bestanden op de server. Dat gaat met FTP of met de bestandsbeheerder van uw hostingpaneel.
- Ga naar de map wp-content/plugins.
- Hernoem de map van de verdachte plugin, bijvoorbeeld van plugin-naam naar plugin-naam-uit. WordPress ziet de plugin dan niet meer en schakelt hem uit.
- Herlaad de site. Werkt hij weer, dan heeft u de veroorzaker gevonden.
Weet u niet welke plugin het is, dan kunt u de hele map plugins tijdelijk hernoemen. Werkt de site dan, dan zit het in een plugin; zet de naam terug en hernoem daarna de plugins één voor één. Is het thema verdacht, hernoem dan de themamap; WordPress valt dan terug op een standaardthema. Een uitgebreider stappenplan om de boosdoener onder meerdere plugins te vinden, staat in dit artikel over pluginconflicten.
Is de oorzaak het geheugen, dan kunt u de limiet verhogen in wp-config.php met een regel als define(‘WP_MEMORY_LIMIT’, ‘256M’);. Dat helpt alleen als de hosting die ruimte ook toestaat.
Stap 4: herstel definitief
De site werkt weer, maar de plugin die u uitzette deed wel iets nuttigs. Nu heeft u drie opties: een nieuwere versie installeren die het probleem oplost (kijk in het wijzigingenoverzicht van de plugin), terug naar de vorige versie die wel werkte, of de plugin vervangen door een alternatief. Bij een PHP-versieconflict kunt u de PHP-versie in het hostingpaneel tijdelijk een stap terugzetten, maar zie dat als uitstel, niet als oplossing.
Maak altijd een back-up voordat u een oplossing doorvoert. Ook als de site nu net weer werkt; juist dan.
Zo voorkomt u het de volgende keer
- Werk plugins niet allemaal tegelijk bij, maar in kleine groepen, en controleer de site na elke groep.
- Test grote updates eerst op een staging-kopie.
- Controleer of het beheerdersadres van de site nog klopt en of de site e-mail kan versturen, zodat de herstelmail aankomt.
- Vervang plugins die al een jaar of langer niet zijn bijgewerkt voordat de hosting de PHP-versie verhoogt.
Wie hier geen tijd voor heeft of het na stap 3 niet vertrouwt, kan het laten oplossen. Een kapotte site door een critical error is een van de vaakst voorkomende reparaties die WordPress-specialisten uitvoeren, en de meeste zijn binnen een uur verholpen. WebMaintor doet dit tegen een vast starttarief, maar welk bureau u ook belt: geef ze de herstelmail of de regel uit het foutenlog mee, dan bespaart u iedereen zoektijd.



