asset 1
asset 2
asset 3
asset 2
asset 21

Mettre un site WordPress en maintenance : pourquoi et comment ?

22 septembre 2025

Aujourd’­hui, nous allons voir pour­quoi acti­ver un mode main­te­nance est impor­tant, et quelles sont les dif­fé­rentes manières de le faire sur WordPress.

Mettre un site en main­te­nance signi­fie le rendre tem­po­rai­re­ment inac­ces­sible au public tout en affi­chant une page spé­ci­fique qui informe les visi­teurs que le site est en cours de mise à jour ou de modi­fi­ca­tion. Ain­si, pen­dant cette période, les inter­nautes ne voient pas le conte­nu habi­tuel du site, mais un mes­sage d’attente ou une page d’information. Cela per­met de tra­vailler en arrière-plan, de cor­ri­ger des erreurs, de mettre à jour Word­Press, ses exten­sions ou son thème, ou encore de déployer de nou­velles fonc­tion­na­li­tés sans que les visi­teurs soient les témoins de dys­fonc­tion­ne­ments. Une fois les opé­ra­tions ter­mi­nées, le mode main­te­nance est désac­ti­vé et le site rede­vient acces­sible normalement.

Dans quel cas mettre votre site WordPress en maintenance ?

Il peut s’a­vé­rer néces­saire de mettre votre site en main­te­nance pour plu­sieurs raisons. 

Déjà, comme je l’ai déjà écrit sur ce blog, si vous avez un site Word­Press, vous devez en faire la main­te­nance. Une page de main­te­nance per­met de pré­ser­ver l’expérience uti­li­sa­teur en évi­tant que les per­sonnes visi­tant votre site ne tombent sur des pages incom­plètes ou qui affichent des erreurs.

C’est, d’autre part, plus pro­fes­sion­nel : un mes­sage clair indi­quant que le site est tem­po­rai­re­ment indis­po­nible ins­pire bien plus de confiance qu’un site qui paraît cassé. 

Enfin, il vous offre un meilleur confort de tra­vail, car vous pou­vez effec­tuer vos modi­fi­ca­tions en toute tran­quilli­té, sans craindre que vos visi­teurs assistent à vos essais en direct.

Sachez qu’il existe un mode main­te­nance natif à Word­Press. Celui-ci s’active auto­ma­ti­que­ment lors des mises à jour du cœur, des thèmes ou des exten­sions. Le CMS crée alors un fichier tem­po­raire appe­lé .main­te­nance, qui affiche une page très suc­cincte et qui dis­pa­raît une fois la mise à jour terminée.

À noter : avec le mode natif de Word­Press, si une opé­ra­tion échoue, il peut arri­ver que ce fichier reste actif et bloque le site. Dans ce cas, pas de panique, il suf­fit de le sup­pri­mer via un client FTP pour réta­blir l’accès normal.

Les différentes méthodes pour mettre votre site WordPress en maintenance

Utiliser une extension dédiée

La solu­tion la plus simple consiste à uti­li­ser une exten­sion dédiée. Des exten­sions, comme WP Main­te­nance (créée par un Fran­çais), per­mettent d’activer ou de désac­ti­ver le mode main­te­nance très sim­ple­ment, de per­son­na­li­ser le mes­sage affi­ché avec un logo, de mettre du texte per­son­na­li­sé ou un compte à rebours, et même de pro­po­ser un for­mu­laire d’abonnement pour res­ter infor­mé. L’avantage est la sim­pli­ci­té, puisque vous n’avez rien à coder, mais cela implique d’installer une exten­sion supplémentaire.

Pour mettre en place l’extension WP Maintenance 

  1. Connec­tez-vous à l’interface d’administration de WordPress. 
  2. Ren­dez-vous dans Exten­sions > Ajouter
  3. Dans la barre de recherche, tapez WP Main­te­nance.
  4. Cli­quez sur Ins­tal­ler, puis sur Acti­ver.

Une fois l’extension acti­vée, un nou­veau menu appa­raît dans la barre laté­rale, inti­tu­lé WP Maintenance.

En allant dans WP Main­te­nance > Géné­ral, vous cochez l’option Acti­ver le mode main­te­nance pour rendre le site inac­ces­sible aux visi­teurs non connec­tés. Vous qui avez les droits d’ad­mi­nis­tra­tion, vous pour­rez tou­jours voir et tra­vailler sur votre site normalement.

Capture d'écran de l'interface de l'extension wp maintenance

L’extension per­met de per­son­na­li­ser faci­le­ment le mes­sage affi­ché aux visi­teurs. Vous pouvez : 

  • Modi­fier le titre et le texte principal. 
  • Ajou­ter votre logo et/ou une image.
  • Choi­sir les cou­leurs et la mise en page.
  • Inté­grer des liens vers vos réseaux sociaux
  • etc.

Sau­ve­gar­dez vos réglages, décon­nec­tez-vous de Word­Press ou ouvrez une fenêtre de navi­ga­tion pri­vée pour véri­fier ce que vos visi­teurs voient. Vous devriez tom­ber sur votre nou­velle page de maintenance.

Ajouter du code au fichier functions.php

Il est aus­si pos­sible de pas­ser par le fichier functions.php de votre thème-enfant. En ajou­tant quelques lignes de code, vous pou­vez blo­quer l’accès aux per­sonnes visi­tant votre site, tout en le lais­sant ouvert aux per­sonnes connec­tées à l’ad­mi­nis­tra­tion de votre site. Cette méthode ne néces­site pas d’installer d’ex­ten­sion, mais elle demande une cer­taine aisance tech­nique et peut rebu­ter les uti­li­sa­teurs débutants.

Voi­ci le code à ajou­ter à votre fichier functions.php (je vous invite à sau­ve­gar­der le fichier ori­gi­nal au préa­lable, au cas où ^^)

/**
 * Active le mode maintenance pour tous sauf les administrateurs connectés.
 * N'affecte pas l'administration, AJAX, CRON, REST, ni la page de login (même si l'URL est personnalisée).
 * - Retourne un statut HTTP 503 (indisponible temporaire).
 */
function maintenance_mode() {
	// Laisser passer le back-office, AJAX, CRON, REST.
	if ( is_admin() || wp_doing_ajax() || ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
		return;
	}
	if ( function_exists( 'rest_is_request' ) && rest_is_request() ) {
		return;
	}

	// Laisser passer la page de login EFFECTIVE (même si un plugin change l'URL).
	$req_path   = parse_url( $_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH ) ?: '/';
	$login_url  = wp_login_url(); // URL de login actuellement active
	$login_path = wp_parse_url( $login_url, PHP_URL_PATH ) ?: '/wp-login.php';
	if ( $req_path === $login_path ) {
		return;
	}

	// Laisser passer les administrateurs connectés.
	if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
		return;
	}

	// Réponse 503 + no-cache + page simple.
	status_header( 503 );
	nocache_headers();

	wp_die(
		'<h1>Maintenance en cours</h1><p>Nous effectuons une maintenance programmée sur notre site, celui-ci est donc temporairement indisponible. Revenez un peu plus tard. Merci pour votre compréhension :)</p>',
		'Maintenance',
		array( 'response' => 503 )
	);
}
add_action( 'template_redirect', 'maintenance_mode' );

Le résul­tat sera le suivant :

Message : Maintenance en cours
Nous effectuons une maintenance programmée sur notre site, celui-ci est donc temporairement indisponible. Revenez un peu plus tard. Merci pour votre compréhension

L’in­con­vé­nient de cette méthode est que pour désac­ti­ver le mode main­te­nance, il vous fau­dra sup­pri­mer ce code ou le commenter. 

Créer une page maintenance.html en créant un mu-plugin (must use plugin = extension indispensable)

Cette méthode per­met de gérer le mode main­te­nance de votre site et de per­son­na­li­ser entiè­re­ment l’affichage. Si vous êtes néo­phyte avec le concept des mu-plu­gins, je vous invite à lire l’article dédié à ce sujet. 

En pre­mier lieu, créer un fichier maintenance.html :

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Site en maintenance</title>
  <meta name="robots" content="noindex, nofollow">
  <style>
    body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;               display:flex;min-height:100svh;align-items:center;justify-content:center;background:#f6f6f8}
    .card{max-width:640px;background:#fff;padding:2rem;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.07);text-align:center}
    h1{margin:0 0 .5rem}
    p{color:#555;margin:.25rem 0}
  </style>
</head>
<body>
  <div class="card">
    <h1>Maintenance en cours</h1>
    <p>Nous effectuons une maintenance programmée sur notre site, celui-ci est donc temporairement indisponible. Revenez un peu plus tard. Merci pour votre compréhension</p>
  </div>
</body>
</html>

Ce code est un exemple, j’ai mis le style direc­te­ment dans ce fichier, mais la meilleure méthode est de créer et d’at­ta­cher une feuille de style. D’ailleurs, ici, c’est du code html et un style très basique. Vous pou­vez en créer un plus pous­sé, comme ajou­ter votre logo, une image. Et vous devrez éga­le­ment amé­lio­rer la ver­sion responsive.

Trans­fé­rez ce fichier à la racine de votre site.

Nous allons main­te­nant créer le mu-plugin

Ren­dez-vous, sur le ser­veur FTP, dans le dos­sier wp-content. S’il n’y a pas de dos­sier mu-plu­gins, créez-le. 

Créez main­te­nant un fichier maintenance-mode.php et insé­rez le code suivant :

<?php

/**
 * Plugin Name: MU - Maintenance (maintenance.html)
 * Description: Affiche maintenance.html aux visiteurs non admins, en 503.
 * Version: 1.0.2
 * Author: Valérie Galassi
 */

if (! defined('ABSPATH')) {
    exit; // Empêche l'exécution en accès direct
}

/**
 * Interrupteur via wp-config.php :
 * define( 'WP_MAINTENANCE_MODE', true ); // true = ON, false = OFF
 *
 * Par défaut, la maintenance est DÉSACTIVÉE si aucune constante n'est définie.
 */
if (! defined('WP_MAINTENANCE_MODE')) {
    return; // Pas de constante = pas de maintenance
}

if (! WP_MAINTENANCE_MODE) {
    return; // Constante définie mais false = pas de maintenance
}

function mu_maintenance_mode_serve_html()
{
    if (is_admin() || wp_doing_ajax() || (defined('DOING_CRON') && DOING_CRON)) {
        return;
    }
    if (function_exists('rest_is_request') && rest_is_request()) {
        return;
    }

    $req_path   = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/';
    $login_path = wp_parse_url(wp_login_url(), PHP_URL_PATH) ?: '/wp-login.php';
    if ($req_path === $login_path) {
        return;
    }
    if (is_user_logged_in() && current_user_can('manage_options')) {
        return;
    }
    if (preg_match('~/maintenance\.html$~', $req_path)) {
        return;
    }

    $maintenance_file = ABSPATH . 'maintenance.html';

    status_header(503);
    nocache_headers();

    if (file_exists($maintenance_file)) {
        header('Content-Type: text/html; charset=UTF-8');
        readfile($maintenance_file);
        exit;
    }

    wp_die(
        '<h1>Maintenance en cours</h1><p>Le site revient très vite.</p>',
        'Maintenance',
        array( 'response' => 503 )
    );
}
add_action('template_redirect', 'mu_maintenance_mode_serve_html', 0);

Trans­fé­rez ce fichier dans le dos­sier mu-plu­gins sur votre ser­veur FTP.

Avec cette méthode, vous pou­vez acti­ver et désac­ti­ver le mode main­te­nance en ajou­tant la constante sui­vante à votre fichier wp-config.php :

define('WP_MAINTENANCE_MODE', true);  // true = ON, false = OFF
message maintenance: Maintenance en cours
Nous effectuons une maintenance programmée sur notre site, celui-ci est donc temporairement indisponible. Revenez un peu plus tard. Merci pour votre compréhension

Comme je le disais au début de cet article, mettre un site Word­Press en main­te­nance est une étape indis­pen­sable dès lors que l’on pro­cède à des mises à jour, à des chan­ge­ments de desi­gn ou à l’ajout de nou­velles fonc­tion­na­li­tés. Cela per­met d’assurer une meilleure expé­rience pour les visi­teurs, de pré­ser­ver l’image pro­fes­sion­nelle du site et de tra­vailler dans un envi­ron­ne­ment sécu­ri­sé et serein.

Selon votre niveau tech­nique et vos besoins, vous pou­vez opter pour la méthode qui vous convient le mieux. La méthode consis­tant à affi­cher une page maintenance.html per­son­na­li­sée est par­ti­cu­liè­re­ment effi­cace si vous sou­hai­tez un ren­du que vous maî­tri­sez totalement.

Quelle que soit l’approche choi­sie, l’important est de pré­ve­nir clai­re­ment tes visi­teurs et de leur garan­tir que l’indisponibilité n’est que tem­po­raire. Un site bien géré, même en main­te­nance, reste un site professionnel.

N’hé­si­tez pas à sor­tir de votre zone de confort et choi­sis­sez la méthode un peu plus technique 🙂 

Laisser un commentaire

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