Je website toont de foutmelding "Maximum execution time of 30 seconds exceeded" of je pagina laadt eindeloos zonder resultaat. Dit is een PHP timeout error — je script duurt langer dan de toegestane maximale uitvoertijd. In deze handleiding leggen we uit wat dit betekent en hoe je het oplost.

Wat is een PHP timeout error?

PHP heeft een ingebouwde tijdslimiet voor het uitvoeren van scripts. Standaard is dit 30 seconden (soms 60 of 120 seconden, afhankelijk van je hostingconfiguratie). Als een script langer duurt, stopt PHP de uitvoering en toont de volgende foutmelding:

Fatal error: Maximum execution time of 30 seconds exceeded in /path/to/file.php on line 123

Deze tijdslimiet bestaat als bescherming — het voorkomt dat vastgelopen scripts je hele server overbelasten. Maar bij legitieme operaties (grote imports, database-migraties, zware berekeningen) kan de standaardlimiet te laag zijn.

Veelvoorkomende oorzaken:

  • Grote database queries — queries die duizenden rijen verwerken
  • Bestandsuploads — grote bestanden uploaden of verwerken
  • Plugin of thema operaties — updates, imports of exports die lang duren
  • Externe API calls — verbindingen met trage externe services
  • Oneindige loops — programmeerfouten die een script laten vastlopen
  • Zware beeldverwerking — grote afbeeldingen schalen of converteren

PHP timeout als website-eigenaar oplossen

Volg onderstaande stappen om de PHP timeout te verhogen of het onderliggende probleem op te lossen.

1. Verhoog max_execution_time via php.ini

De meest directe manier om de timeout te verhogen is via het php.ini configuratiebestand:

max_execution_time = 300

Dit verhoogt de limiet naar 300 seconden (5 minuten). Op shared hosting kun je vaak een .user.ini bestand aanmaken in de root van je website met dezelfde instelling.

2. Verhoog de limiet via wp-config.php

Bij WordPress kun je de tijdslimiet ook instellen via wp-config.php:

set_time_limit(300);

Of voeg deze PHP-instelling toe:

ini_set('max_execution_time', 300);

Plaats deze regel boven de regel /* That's all, stop editing!*/ in je wp-config.php.

3. Verhoog via DirectAdmin PHP Selector

Op DirectAdmin hosting kun je de PHP-instellingen aanpassen via het controlepaneel:

  1. Log in op DirectAdmin
  2. Ga naar Advanced Features → Select PHP Version (of PHP Selector)
  3. Klik op "Switch to PHP Options
  4. Zoek max_execution_time en stel deze in op 300
  5. Klik op "Save

4. Verhoog via .htaccess

Op Apache-servers kun je de instelling ook via .htaccess wijzigen:

php_value max_execution_time 300

Let op: Dit werkt alleen met mod_php, niet met PHP-FPM of FastCGI. Bij PHP-FPM moet je de php.ini of pool-configuratie aanpassen.

5. Optimaliseer het onderliggende probleem

Het verhogen van de tijdslimiet is een workaround. De echte oplossing is vaak het optimaliseren van het script dat te lang duurt:

  • Database queries optimaliseren — voeg indexen toe, beperk het aantal resultaten met LIMIT, gebruik paginering
  • Batch verwerking — verwerk grote datasets in kleine batches in plaats van alles tegelijk
  • Caching inschakelen — sla resultaten van zware berekeningen op in cache (Redis, Memcached)
  • Achtergrondtaken gebruiken — verplaats zware operaties naar een queue of cronjob
  • Externe calls versnellen — stel timeouts in voor API calls en gebruik async verwerking

6. Controleer op oneindige loops

Als de timeout steeds terugkomt, ook na het verhogen van de limiet, kan er een programmeerfout zijn:

  • Schakel WP_DEBUG in om de exacte regel te vinden
  • Controleer of er while/for loops zijn zonder correcte exit-conditie
  • Controleer recursieve functie-aanroepen op een ontbrekende base case
  • Deactiveer recent geïnstalleerde plugins om de boosdoener te vinden

Gerelateerde PHP-instellingen

Naast max_execution_time zijn er meer PHP-instellingen die tijdgerelateerd zijn:

InstellingStandaardFunctie
max_execution_time30Maximale uitvoertijd per script (seconden)
max_input_time60Maximale tijd voor het parsen van input (seconden)
memory_limit128MMaximaal geheugengebruik per script
upload_max_filesize2MMaximale upload bestandsgrootte
post_max_size8MMaximale grootte van POST data

Bij een VPS heb je volledige controle over al deze instellingen. Op shared hosting zijn sommige instellingen beperkt door je hostingprovider.

Veelgestelde vragen over PHP timeout errors

Wat betekent "Maximum execution time of 30 seconds exceeded"?

Deze foutmelding betekent dat een PHP-script langer dan 30 seconden heeft gedraaid en is afgebroken door de server. De limiet van 30 seconden is de standaardwaarde van de PHP-instelling max_execution_time. Je kunt deze limiet verhogen via php.ini, wp-config.php of het controlepaneel van je hostingpakket.

Is het veilig om max_execution_time te verhogen?

Ja, het verhogen naar 120-300 seconden is veilig voor de meeste websites. Stel de limiet echter niet onbeperkt in (0 = geen limiet), want dit kan ervoor zorgen dat vastgelopen scripts je hele server overbelasten. Een waarde van 300 seconden (5 minuten) is een goede balans tussen functionaliteit en bescherming.

Waarom krijg ik een PHP timeout bij WordPress updates?

WordPress plugin en thema updates moeten bestanden downloaden, uitpakken en installeren. Bij trage internetverbindingen, grote updates of overbelaste servers kan dit langer duren dan de timeout toestaat. Verhoog de max_execution_time tijdelijk naar 300 seconden en probeer de update opnieuw. Overweeg ook een upgrade naar snellere webhosting als dit regelmatig voorkomt.

Last van PHP timeouts door trage hosting? Bekijk onze webhostingpakketten met LiteSpeed en NVMe SSD voor de snelste PHP-uitvoering. Of kies een VPS met volledige controle over alle PHP-instellingen.