Fouten tegenkomen op je site is vaak een nachtmerrie die menig websitebeheerder de schrik aanjaagt. Gelukkig bevatten de meeste foutmeldingen meteen ook een aantal aanwijzingen over de oorzaak, waarmee ze je kunnen helpen om het probleem op te lossen. De 503-foutmelding is helaas niet zo vriendelijk en geeft je weinig informatie om je op weg te helpen.

Wat wél helpt is het begrijpen van de meest voorkomende oorzaken van de 503-foutmelding. Als je vervolgens methodisch te werk gaat in het oplossen van de foutmelding, wat in de praktijk het volgen van een aantal stappen betekent, dan heb je de oorzaak zo te pakken en is je site in mum van tijd weer online.

In dit artikel bespreken we wat de 503-foutmelding is en hoe deze zich doorgaans manifesteert. Daarna geven we je zes stappen waarmee je het probleem kan oplossen. Aan de slag!

Bekijk onze videogids voor het oplossen van verschillende soorten 500 fouten

Wat is een HTTP Error 503?

De Internet Engineering Task Force (IETF) definieert de 503 Service Unavailable als:

De statuscode 503 (Service Unavailable) geeft aan dat de server momenteel niet in staat is om het verzoek af te handelen vanwege een tijdelijke overbelasting of gepland onderhoud, dat waarschijnlijk na enige vertraging zal worden opgelost. De server KAN een veld Retry-After header verzenden die een geschikte hoeveelheid tijd voorstelt aan de client om te wachten voordat het verzoek opnieuw wordt geprobeerd.

Wanneer je een 503-foutmelding tegenkomt, betekent dat de betreffende server niet beschikbaar is. Dat kan zijn omdat het bijvoorbeeld te druk is of in onderhoud is. In tegenstelling tot andere soortgelijke foutcodes, betekent 503 dat je website online en actief is, maar op dit moment niet bereikbaar is.

Het irritante aan deze specifieke fout is dat deze je nauwelijks informatie geeft waarmee je het probleem op kan lossen. Meestal wordt het weergegeven met een bericht als ‘Service tijdelijk niet beschikbaar’ oftewel ‘Service temporarily unavailable‘. Dit zegt je net zoveel als wanneer je een restaurant opbelt en dat ze zeggen dat ze dicht zijn, maar je weigeren te vertellen wanneer ze weer open zijn.

Als je geluk hebt, trad de 503-foutcode op omdat je website in onderhoud is. WordPress zet in zulke gevallen de site voor een korte periode in onderhoudsmodus, bijvoorbeeld als je een plugin, een thema of de kernsoftware bijwerkt:

Onderhoudsmodus
Onderhoudsmodus

Meestal is deze time-out zo kort dat niemand het merkt. Echter, mocht de 503-foutmelding aanhouden, dan heb je een probleem. Niet alleen kunnen jouw bezoekers je site niet meer bezoeken, maar je hebt nu ook zelf geen toegang meer tot de WordPress admin. Je kan dus geen wijzigingen aanbrengen aan je site, dus als je het probleem op wil lossen, zal je met de bestanden zelf moeten omgaan.

Foutcode 503 service unavailable error
Fouttype Server-side fout
Foutvariaties 503 Service Unavailable
503 Service Temporarily Unavailable
HTTP Server Error 503
HTTP Error 503
Oorzaken fout Onverwachte verkeerspieken
Communicatieproblemen met de server
Uitputting van resources
DDoS aanval
Plugin of thema incompatibiliteit

Variaties op de 503-foutmelding

De 503-foutmelding kan op veel verschillende manieren op je scherm verschijnen. Bijna elke variant wordt echter vergezeld door de 503-code, dus de foutmelding is dus vaak makkelijk te herkennen.

Hier zijn een aantal variaties die je tegen kan komen, afhankelijk van de serverconfiguratie en browser:

  • 503 Service Unavailable
  • 503 Service Temporarily Unavailable
  • HTTP Server Error 503
  • HTTP Error 503
  • Error 503 Service Unavailable
  • The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Welke code je ook tegenkomt, het betekent vooral dat je snel wat moet doen, voordat je bezoekers er last van krijgen.

Wat veroorzaakt een HTTP Error 503?

Dit zijn de meest voorkomende redenen waarom een server een verzoek tijdelijk niet kan afhandelen:

  • Er wordt een groot aantal verzoeken naar de server gestuurd, waardoor alle beschikbare resources zijn uitgeput.
  • De server ondervindt technische problemen of onderhoudswerkzaamheden.
  • De server zou het slachtoffer kunnen zijn van een DDoS-aanval (Denial of Service).

Er zijn ook andere technische problemen die de 503 fout veroorzaken, zoals problemen met je WordPress plugins of thema. Daarover hieronder meer.

Hoe kun je de 503 fout herstellen?

Omdat je vaak geen idee hebt wat de 503-foutmelding in jouw geval heeft veroorzaakt, moeten we methodisch te werk gaan. De volgende zes secties behandelen elk een mogelijk oplossing, gericht op het oplossen van de verschillende mogelijke oorzaken.

Neem na elke stap even de tijd om naar je website te browsen om te kijken of de 503-foutmelding is verdwenen. Mocht dit zo zijn, dan is het probleem opgelost. Mocht het niet het geval zijn, volg dan de volgende stap.

1. Deactiveer tijdelijk je plugins

Een van de meest voorkomende oorzaken van de 503-foutmelding in WordPress is een probleem met compatibiliteit van plugins. Om te kijken of dit het geval is, kan je het best alle plugins op je site uitschakelen.

Omdat je door de 503-foutmelding niet meer in de admin kan komen, heb je een FTP-client nodig om deze stap uit te voeren. Als je nog niet een hebt, raden we FileZilla aan.

Zodra je FTP-client klaar is, kan je hiermee verbinding met je website en kan je naar de hoofdmap van je installatie gaan. Als je deze niet kan vinden, meestal heet deze public_html, html, public, www of is het simpelweg de naam van je site. Als je een klant van Kinsta bent, is dit je public-map.

Hoofdmap WordPress SFTP
Hoofdmap WordPress SFTP

Open die map en navigeer naar de map wp-content. Hier zie je een map genaamd plugins, die voor elke geïnstalleerde plugin (actief dan wel inactief) een submap bevat.

Wat je nu moet doen is met de rechtermuisknop op de map plugins klikken en deze een andere naam geven. We raden je aan om te kiezen voor iets als plugins.oud of plugins.inactief, zodat je de map later makkelijk kan herkennen.

De hernoemde WordPress plugins map
De hernoemde WordPress plugins map

Door de naamswijziging kan WordPress je plugins niet meer vinden. De plugins worden daardoor automatisch uitgeschakeld.

Probeer nu om toegang te krijgen tot je dashboard. Als de 503-foutmelding is verholpen, dan kan je ervan uitgaan dat een van je plugins de boosdoener was. Het enige dat je nu hoeft te doen is de schuldige plugin vinden.

Ga terug naar de map wp-content en geef de map plugins zijn oude naam terug. Vervolgens moet je alle plugins één voor één uitschakelen, totdat je de boosdoener hebt gevonden.

Om dit te doen, open je de map wp-content/plugins. Hierbinnen vind je voor elke plugin een bijbehorende map. Je volgt nu hetzelfde proces als eerder:

  1. Begin met de eerste map en hernoem het naar wat je maar wilt.
  2. Check vervolgens je website om te zien of de foutmelding is verdwenen.
  3. Als dit niet het geval is, ga dan terug naar de map die je net hebt hernoemd en geef deze zijn oude naam terug.
  4. Ga vervolgens door naar de volgende plugin en herhaal bovenstaande stappen.

Als je veel plugins hebt, kan dit even duren, maar het is van groot belang om elke plugin te controleren. Als je op enig moment nu de plugin tegenkomt die de foutmelding veroorzaakt, dan kan je deze verwijderen of vervangen door een andere tool.

Als je alle stappen hebt doorlopen zonder dat je site het weer doet, probeer dan de volgende oplossing.

2. Het website-thema deactiveren

Nu we zeker weten dat plugins niet de 503-foutmelding veroorzaken, is het tijd om te kijken of hetzelfde geldt voor jouw actieve thema. Jouw huidige thema kan namelijk net zo goed compatibiliteitsproblemen kunnen veroorzaken.

Helaas werkt het proces niet hetzelfde als die van hierboven. WordPress keert niet terug naar het standaardthema als je jouw themamap hernoemt. In plaats daarvan krijg je een foutmelding als ‘The theme directory “naam thema” bestaat niet.’ Als je in plaats daarvan de map met daarin alle thema’s hernoemt, dan krijg je een melding als ‘ERROR: The themes directory is either empty or doesn’t exist. Please check your installation.’

Foutmelding: de themamap bestaat niet
Foutmelding: de themamap bestaat niet

Willen we het probleem oplossen, dan zullen we dit dus via de WordPress-database moeten doen. Dit kan je doen door in te loggen in phpMyAdmin. Als je klant van Kinsta bent, kan je dit vinden in de ‘Info’-sectie in het MyKinsta-dashboard.

Het openen van phpMyAdmin in MyKinsta.
Het openen van phpMyAdmin in MyKinsta.

Eenmaal in phpMyAdmin, klik je op de “wp_options” tabel en vervolgens op het “Search” tabblad. Je zult willen zoeken onder de “option_name” voor template.

phpMyAdmin wp_options tabel
phpMyAdmin wp_options tabel

Onder de kolom ‘option_value’ zie je nu de naam van het huidige thema. Verander dit naar een van de standaardthema’s, zoals ’twentynineteen’.

wp_options sjabloonnaam
wp_options sjabloonnaam

Check nu nogmaals je website om te zien of de fout is hersteld. Als deze hersteld is, betekent dit dat er een probleem met je website-thema is. Je kan proberen deze opnieuw te installeren of herstellen naar de meest recente (werkende) back-up.

3. Tijdelijk je Content Delivery Network (CDN) uitschakelen

Soms wordt de 503-foutmelding niet weergegeven door een fout op je site, maar vanwege een probleem met je Content Delivery Network (CDN). Als je een CDN gebruikt, is een makkelijke manier om te kijken of dit de oorzaak is van de foutmelding om deze tijdelijk uit te schakelen.

Elke CDN moet een functie hebben waarmee je tijdelijk de dienst kan pauzeren. Als je Kinsta gebruikt, kan je de Kinsta CDN uitschakelen door naar CDN → ‘CDN uitschakelen’ te gaan binnen je MyKinsta-dashboard:

MyKinsta CDN in- en uitschakelen
MyKinsta CDN in- en uitschakelen

Hoe je je CDN uit kan schakelen, verschilt afhankelijk van de CDN die je gebruikt. Cloudflare staat erom bekend dat ze soms 503-foutmeldingen veroorzaken. Als je de optie om jouw CDN uit te zetten niet kan vinden, raadpleeg dan de kennisbank van de dienst. Vaak vind je hier de informatie die je zoekt.

Als je geen CDN gebruikt of als je site nog steeds niet werkt na het pauzeren van de CDN, dan zijn er nog een aantal oplossingen die we kunnen proberen. Vergeet niet om je CDN weer aan te zetten voordat je verdergaat.

4. Beperk de WordPress ‘Heartbeat’ API

De WordPress Heartbeat is een API die in WordPress is ingebouwd. Het platform gebruikt deze om content automatisch op te slaan, om plugin-notificaties te laten zien, maar laat je bijvoorbeeld ook zien wanneer iemand anders met een artikel bezig is.

Net als een normale hartslag werkt de API op de achtergrond in een hoge frequentie zodat deze niets mist. Je kan je wel voorstellen dat deze API veel server-resources verbruikt. Dat hoeft geen problemen op te leveren, maar kan in sommige gevallen wel degelijk de oorzaak zijn van een 503-error, als je server de belasting niet aankan.

De snelste methode om erachter te komen of de Heartbeat API de oorzaak van je problemen is, is om deze tijdelijk uit te schakelen. Om dit te doen, verbind je nogmaals met je WordPress-website via FTP. Open de map van je huidige thema en zoek naar het bestand functions.php dat hier zou moeten staan.

WordPress thema functions.php bestand
WordPress thema functions.php bestand

Klik met de rechtermuisknop op het bestand en selecteer de optie View/Edit. Als het goed is, wordt het bestand nu geopend in jouw lokale teksteditor. Zodra deze is geopend, moet je het volgende codefragment toevoegen:

add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

Deze drie coderegels geven WordPress de opdracht om de Heartbeat API uit te schakelen. Sla de wijzigingen op in het bestand functions.php, sluit het en probeer je website opnieuw te bereiken.

Als de 503-foutmelding is verdwenen, weten we dat de API het probleem was. De API voegt echter een hoop bruikbare functionaliteiten toe aan je website, dus uitschakelen zou zonde zijn. In plaats daarvan raden we aan om de Heartbeat te ‘vertragen’, zodat deze minder problemen veroorzaakt.

Verreweg de makkelijkste manier om dat te doen is door de plugin Heartbeat Control te installeren. Activeer de plugin en ga naar het gedeelte Settings > Heartbeat Control. Zoek naar de opties van Modify Heartbeat en zet de frequentie zo laag als je kan:

Heartbeat Control plug-in frequentie
Heartbeat Control plugin frequentie

Sla de wijzigingen op en ga terug naar het functions.php-bestand dat je een tijdje geleden hebt aangepast. Om de bovenstaande wijzigingen te laten werken, moet je de reeks code verwijderen die je eerder hebt toegevoegd en deze nieuwe wijzigingen opslaan in het bestand.

Als Heartbeat API inderdaad de foutmelding veroorzaakte, dan zou de 503 foutmelding nu opgelost moeten zijn. Als dat niet zo is, is het tijd om iets anders te proberen.

5. Verhoog de resources van je server

Als de 503-foutmelding, ondanks al onze pogingen, zich nog steeds voordoet, dan is de kans groot dat deze wordt veroorzaakt door een tekort aan server-resources. In de praktijk betekent dit dat je je hostingpakket moet upgraden om het probleem op te lossen. Dit is met name het geval als je gebruik maakt van goedkope WordPress-hosting, omdat deze er vaak een handje van hebben om resources te beperken.

Dit zullen we bij Kinsta nooit doen. Wij bieden geweldige Managed WordPress Hosting (evenals Application Hosting en Database Hosting).

Het upgraden naar een duurder pakket is niet zomaar een beslissing. Het beste is om contact op te nemen met de support van je hostingprovider en de 503-foutmelding met hun te bespreken. Vergeet daar niet bij om ze te laten weten welke stappen je al hebt doorlopen en wat je al geprobeerd hebt om het probleem op te lossen. Het supportteam zou in staat moeten zijn om de oplossing voor jou te vinden en je te adviseren of het nodig is om een duurder pakket aan te schaffen of niet.

6. Je logbestanden controleren en WP_DEBUG inschakelen

Vergeet niet om gebruik te maken van je error logs. Als je klant van Kinsta bent, kan je eenvoudig de foutmeldingen zien in de logboekviewer en in het MyKinsta dashboard WordPress debugmodus inschakelen. Hiermee kan je snel de oorzaak van het probleem lokaliseren, vooral als een plugin het probleem op je site veroorzaakt.

Het bekijken van het error.log bestand binnen het MyKinsta dashboard.
Het bekijken van het error.log bestand binnen het MyKinsta dashboard.

Als je host niet beschikt over een logging-tool, dan kan je de volgende code toevoegen aan het wp-config.php-bestand om logging in te schakelen:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Doorgaans zijn logbestanden te vinden in de map /wp-content. Zoek in deze map naar een bestand genaamd debug.log en open deze.

Bij sommige hosts staat dit bestand ergens anders. Zo hebben we bij Kinsta het bestand een eigen map gegeven, genaamd ‘logs’.

WordPress logs map (SFTP)
WordPress logs map (SFTP)

Bij het openen zie je vervolgens een enorme lijst waarvan je je misschien afvraagt hoe je in hemelsnaam zinvolle informatie uit kan halen. Gelukkig ziet het er moeilijk uit dan het daadwerkelijk is. In een notendop bevat het logboek in chronologische volgorde elke fout die op je site verschijnt. Het logboek toont welk bestand verantwoordelijk was voor elke foutmelding en geeft zelfs de specifieke coderegels aan die het probleem veroorzaakten.

Let op: je vindt geen directe verwijzingen naar de 503-foutmelding in je logboek. Maar ook al is dit zo, kan het logboek je de juiste richting wijzen door je te laten zien welke bestanden problemen veroorzaken. Op die manier weet je waar je je aandacht op moet richten. Zoals we in de vorige stap al vermeldden, is dit een goed moment om contact op te nemen met je hostingprovider, als je verdere hulp nodig hebt om dit probleem op te lossen.

Je kan ook de logboeken in Apache en Nginx bekijken. Deze zijn doorgaans hier te vinden:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Om hier meer over te lezen, lees dan ons artikel: Nginx vs Apache – welke webserver wint het duel?

Als je klant bij Kinsta bent, kan je ook gebruikmaken van onze analytics tool, zodat je een overzicht krijgt van het totale aantal 503-foutmeldingen en kan je zie hoe vaak en wanneer ze zich voordoen. Hiermee kan je er snel achter komen of het probleem zich al lang heeft voorgedaan of dat het zich inmiddels heeft opgelost.

Als de 503-foutmelding wordt weergegeven vanwege een fatale PHP-fout, kan je proberen PHP-foutrapportage in te schakelen. Voeg eenvoudig de volgende code toe aan het bestand dat de fout veroorzaakt. Meestal kan je het bestand vinden in het ‘Console’-tabblad Google Chrome DevTools.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

De kans bestaat je ook je php.ini-bestand moet wijzingen met het volgende:

display_errors = on

Samenvatting

Als je gelukt hebt, krijg je 503-foutmelding alleen maar te zien als je website tijdelijk in onderhoudsmodus zit. Echter, doet deze foutmelding zich voor zonder waarschuwing vooraf, dan rest er niets dan de mouwen op te stropen en zelf het probleem oplossen.

Om achter de oorzaak te komen van de 503-foutmelding, moet je deze zes stappen uitvoeren:

  • Deactiveer tijdelijk je plugins
  • Het website-thema deactiveren
  • Tijdelijk je Content Delivery Network (CDN) uitschakelen.
  • Beperk de WordPress ‘Heartbeat’ API.
  • Verhoog de resources van je server.
  • Je logbestanden controleren en WP_DEBUG inschakelen

Ben jij ooit de 503-foutmelding tegengekomen? Deel je ervaring met ons in de reacties hieronder!

Matteo Duò Kinsta

Hoofdredacteur bij Kinsta en content marketing consultant voor WordPress plugin-ontwikkelaars. Verbind met <a href="">Matteo op Twitter.