Under Construction Thumbnail

Comment désactiver votre site WordPress ou activer le mode maintenance

Lorsque vous devez mettre à jour, refondre ou réparer un site WordPress en production, les visiteurs ne devraient pas voir une page cassée ou à moitié terminée. Un écran de maintenance peut masquer le site public pendant un court moment. Faites d’abord une sauvegarde et, lorsque c’est possible, travaillez sur une copie de préproduction afin d’avoir une issue de secours si quelque chose tourne mal.

Important : le cœur de WordPress ne fournit pas de constante WP_MAINTENANCE_MODE dans wp-config.php. Ajouter define( 'WP_MAINTENANCE_MODE', true ); ne fait rien à lui seul et n’affichera pas de page de maintenance. Si vous avez ajouté cette ligne à la suite d’un ancien conseil, vous pouvez la retirer sans risque.

Comment passer un site WordPress en mode maintenance

WordPress dispose bien d’un mode maintenance réel et automatique pendant les mises à jour, mais ce mode n’est que temporaire. Pour un travail planifié qui dure plus de quelques minutes, utilisez une extension maintenue depuis WordPress.org ou, si vous ne pouvez pas utiliser d’extension, un court extrait amovible dans un thème enfant.

1. Recommandé : utiliser une extension de mode maintenance

L’approche la plus simple pour un débutant est une extension du répertoire officiel d’extensions WordPress. Deux options établies sont Maintenance de WebFactory et LightStart de Themeisle (cette extension s’appelait auparavant WP Maintenance Mode). Consultez la fiche actuelle avant d’installer, et suivez l’écran de réglages de l’extension elle-même : les libellés des boutons peuvent changer d’une version à l’autre.

Étapes typiques, d’après les notes d’installation de ces extensions sur WordPress.org :

  1. Sauvegardez le site et, si possible, testez sur une copie de préproduction.
  2. Restez connecté en tant qu’administrateur. Dans wp-admin, allez dans Extensions → Ajouter, recherchez l’extension par son nom, puis installez-la et activez-la.
  3. Ouvrez la page de réglages de l’extension. Maintenance ajoute une entrée dans le menu d’administration principal ; LightStart utilise une page Settings. Personnalisez le message public avec les commandes fournies par l’extension.
  4. Activez le mode maintenance seulement lorsque vous êtes prêt. La fiche de LightStart indique que l’activation de l’extension peut placer immédiatement le site en mode maintenance, tandis que les utilisateurs disposant des droits suffisants voient encore le front-end.
  5. Lorsque le travail est terminé, désactivez la maintenance dans les réglages de l’extension, videz tout cache de pages, puis consultez le site dans une fenêtre privée ou de navigation privée, déconnecté, pour confirmer que les pages publiques sont de retour. Ce n’est qu’ensuite que vous désactiverez l’extension si vous n’en avez plus besoin.

La FAQ de LightStart prévient que les extensions de cache peuvent servir des pages obsolètes pendant la maintenance. Si une extension de cache reste active, supprimez son cache après avoir activé ou désactivé le mode maintenance.

L’extension Maintenance peut envoyer une réponse HTTP 503 (« Service temporarily unavailable ») afin que les moteurs de recherche traitent l’interruption comme temporaire. Gardez cette fenêtre courte. Un 503 prolongé peut malgré tout affecter le crawl du site.

2. Ce que WordPress fait lui-même pendant les mises à jour

Lorsque WordPress met à jour le cœur, un thème ou une extension, il crée temporairement un fichier .maintenance à la racine WordPress. Ce fichier enregistre un horodatage dans une variable $upgrading. Le cœur considère alors que le site est en mode maintenance uniquement tant que cet horodatage a moins d’environ 10 minutes. Au-delà d’environ 10 minutes, WordPress considère la maintenance terminée même si le fichier est encore présent.

Pendant cette courte fenêtre, WordPress envoie un HTTP 503 avec un en-tête Retry-After: 600 et affiche le message “Briefly unavailable for scheduled maintenance. Check back in a minute.” Vous pouvez remplacer cet écran bref par un fichier drop-in optionnel nommé maintenance.php dans wp-content, mais ce fichier ne s’applique que tant que le mode maintenance du cœur est réellement actif.

Ne créez pas vous-même un fichier .maintenance statique comme interrupteur durable « fermé pour maintenance ». Ce n’est pas un contrôle manuel pérenne : au bout d’environ 10 minutes, les visiteurs revoient le site, et un fichier restant après une mise à jour échouée peut laisser un message déroutant jusqu’à ce que vous le supprimiez. Si l’écran de maintenance reste bloqué après une mise à jour, connectez-vous via FTP ou le gestionnaire de fichiers de l’hébergeur et supprimez .maintenance à la racine WordPress.

WordPress documente cela dans wp_is_maintenance_mode(), wp_maintenance(), les notes sur un écran de maintenance bloqué dans les erreurs courantes de WordPress, et Updating WordPress.

3. Optionnel : un extrait temporaire dans un thème enfant

Si vous ne pouvez pas utiliser d’extension, ajoutez ce qui suit au functions.php d’un thème enfant, pas d’un thème parent que les mises à jour écraseront. Le crochet template_redirect ne s’exécute que sur le site public, donc wp-admin et l’écran de connexion restent disponibles. Les utilisateurs connectés qui peuvent gérer les options voient encore le site. Les autres reçoivent un HTTP 503 et un en-tête Retry-After, le même schéma que le cœur de WordPress pendant les mises à jour. Retirez l’extrait pour restaurer le site public.

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 )
    );
} );

Utilisez-le uniquement comme mesure brève et temporaire, et testez-le d’abord en préproduction. Après avoir retiré le code, videz les caches et confirmez que le site public se charge à nouveau lorsque vous êtes déconnecté. Ne laissez pas une réponse 503 en place plus longtemps que nécessaire.

Conclusion

Pour masquer un site WordPress pendant un travail planifié, utilisez une extension de maintenance maintenue, désactivez-la lorsque vous avez terminé, et vérifiez les pages publiques. Le fichier .maintenance de WordPress n’est qu’un bouclier automatique et bref pendant les mises à jour — environ 10 minutes —, pas un interrupteur manuel durable, et il n’existe aucune ligne WP_MAINTENANCE_MODE à ajouter dans wp-config.php. Sauvegardez d’abord, limitez le temps d’indisponibilité, puis restaurez et contrôlez le site en production.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *