Under Construction Thumbnail

Je WordPress-site uitschakelen of in onderhoudsmodus zetten

Als je een live WordPress-site moet bijwerken, opnieuw ontwerpen of repareren, mogen bezoekers geen kapotte of halfafgemaakte pagina zien. Een onderhoudsscherm kan de openbare site een korte tijd verbergen. Maak eerst een back-up en gebruik waar mogelijk een stagingkopie, zodat je een weg terug hebt als iets misgaat.

Belangrijk: WordPress-core biedt in wp-config.php geen constante WP_MAINTENANCE_MODE. Het toevoegen van define( 'WP_MAINTENANCE_MODE', true ); doet op zich niets en toont geen onderhoudspagina. Als je die regel na ouder advies hebt toegevoegd, kun je hem veilig verwijderen.

Hoe je een WordPress-site in onderhoudsmodus zet

WordPress heeft tijdens updates wel degelijk een echte, automatische onderhoudsmodus, maar die is slechts tijdelijk. Voor gepland werk dat langer duurt dan een paar minuten gebruik je een onderhouden plugin van WordPress.org, of — als je geen plugin kunt gebruiken — een kort, verwijderbaar fragment in een child theme.

1. Aanbevolen: een onderhoudsmodus-plugin gebruiken

De eenvoudigste aanpak voor beginners is een plugin uit de officiële WordPress-pluginmap. Twee gevestigde opties zijn Maintenance van WebFactory en LightStart van Themeisle (deze plugin heette vroeger WP Maintenance Mode). Bekijk de huidige vermelding voordat je installeert en volg het instellingenscherm van de plugin zelf — knopnamen kunnen tussen versies veranderen.

Typische stappen, gebaseerd op de installatienotities van die plugins op WordPress.org:

  1. Maak een back-up van de site en test indien mogelijk op staging.
  2. Blijf ingelogd als beheerder. Ga in wp-admin naar Plugins → Nieuwe plugin, zoek de plugin op naam, installeer en activeer die.
  3. Open de instellingenpagina van de plugin. Maintenance voegt een item toe aan het hoofdmenu van de admin; LightStart gebruikt een Settings-pagina. Pas het openbare bericht aan met de bedieningselementen die de plugin biedt.
  4. Schakel de onderhoudsmodus pas in wanneer je klaar bent. De vermelding van LightStart merkt op dat het activeren van de plugin de site meteen in onderhoudsmodus kan zetten, terwijl gebruikers met voldoende rechten de voorkant blijven zien.
  5. Als het werk klaar is, zet je onderhoud uit in de plugininstellingen, wis je eventuele paginacache en bekijk je de site in een privé- of incognitovenster terwijl je uitgelogd bent, om te bevestigen dat de openbare pagina’s terug zijn. Pas daarna deactiveer je de plugin als je die niet meer nodig hebt.

De FAQ van LightStart waarschuwt dat cacheplugins tijdens onderhoud verouderde pagina’s kunnen serveren. Als een cacheplugin actief blijft, verwijder dan de cache nadat je de onderhoudsmodus in- of uitschakelt.

De plugin Maintenance kan een HTTP 503-respons («Service temporarily unavailable») sturen zodat zoekmachines de onderbreking als tijdelijk behandelen. Houd dat venster kort. Een langdurige 503 kan nog steeds beïnvloeden hoe de site wordt gecrawld.

2. Wat WordPress zelf doet tijdens updates

Wanneer WordPress de core, een thema of een plugin bijwerkt, maakt het tijdelijk een bestand .maintenance aan in de WordPress-hoofdmap. Dat bestand slaat een tijdstempel op in een variabele $upgrading. Core beschouwt de site alleen als in onderhoudsmodus zolang die tijdstempel minder dan ongeveer 10 minuten oud is. Na ongeveer 10 minuten beschouwt WordPress het onderhoud als afgelopen, zelfs als het bestand er nog staat.

Tijdens dat korte venster stuurt WordPress HTTP 503 met een header Retry-After: 600 en toont het de melding “Briefly unavailable for scheduled maintenance. Check back in a minute.” Je kunt dat korte scherm vervangen door een optioneel drop-inbestand genaamd maintenance.php in wp-content, maar dat bestand geldt alleen terwijl de core-onderhoudsmodus daadwerkelijk actief is.

Maak niet zelf een statisch .maintenance-bestand als blijvende schakelaar «gesloten wegens onderhoud». Het is geen duurzame handmatige bediening: na ongeveer 10 minuten zien bezoekers de live site weer, en een achtergebleven bestand na een mislukte update kan een verwarrende melding achterlaten tot je het verwijdert. Als het onderhoudsscherm na een update blijft hangen, maak je via FTP of de bestandsbeheerder van je host verbinding en verwijder je .maintenance uit de WordPress-hoofdmap.

WordPress documenteert dit in wp_is_maintenance_mode(), wp_maintenance(), de notities over een vastgelopen onderhoudsscherm in veelvoorkomende WordPress-fouten en in Updating WordPress.

3. Optioneel: een tijdelijk fragment in een child theme

Als je geen plugin kunt gebruiken, voeg dan het volgende toe aan de functions.php van een child theme — niet van een parent theme dat updates overschrijven. De hook template_redirect draait alleen op de openbare site, zodat wp-admin en het inlogscherm beschikbaar blijven. Ingelogde gebruikers die opties kunnen beheren, zien de site nog steeds. Iedereen anders ontvangt HTTP 503 en een header Retry-After, hetzelfde patroon dat WordPress-core tijdens updates gebruikt. Verwijder het fragment om de openbare site te herstellen.

add_action( 'template_redirect', function () {
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
        return;
    }

    header( 'Retry-After: 3600' );
    wp_die(
        'This site is temporarily unavailable for scheduled maintenance. Please check back soon.',
        'Maintenance',
        array( 'response' => 503 )
    );
} );

Gebruik dit alleen als korte, tijdelijke maatregel en probeer het eerst op staging. Nadat je de code hebt verwijderd, wis je caches en controleer je of de openbare site weer laadt terwijl je uitgelogd bent. Laat een 503-respons niet langer staan dan nodig.

Conclusie

Om een WordPress-site tijdens gepland werk te verbergen, gebruik je een onderhouden onderhoudsplugin, schakel je die uit wanneer je klaar bent, en controleer je de openbare pagina’s. Het bestand .maintenance van WordPress is slechts een kort, automatisch schild tijdens updates — ongeveer 10 minuten —, geen blijvende handmatige schakelaar, en er is geen regel WP_MAINTENANCE_MODE die je in wp-config.php moet toevoegen. Maak eerst een back-up, houd de downtime kort en herstel en controleer daarna de livesite.

Laat een reactie achter

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