
Vous avez cliqué sur « Mettre à jour » et votre site affiche désormais une page blanche barrée d'un message ? Un client vous appelle parce que son site est bloqué depuis hier soir ? Et vous vous demandez s'il faut installer une extension, ouvrir un client FTP ou simplement attendre ?
Le mode maintenance WordPress n'a rien de sorcier, à condition de savoir ce qui se passe sous le capot. Dans ce guide, on voit les trois façons de l'activer (extension, fichier .maintenance, page sur mesure), comment en sortir proprement, et la procédure exacte pour débloquer un site coincé sur « Brièvement indisponible pour cause de maintenance planifiée ». Avec, à chaque fois, le code HTTP que votre site renvoie réellement à Google.
.maintenance à la racine, répond en code 503 et envoie l'en-tête Retry-After: 600. C'est le fameux « WordPress maintenance mode » des tutoriels anglophones..maintenance contient une seule ligne : $upgrading = time();. Point à connaître : WordPress considère la maintenance terminée 10 minutes après cet horodatage.maintenance.php déposé dans wp-content/..maintenance, puis vider le cache.Retry-After pendant quelques heures ne coûte rien. Au-delà de 1 à 2 jours, Google peut retirer les URL de son index.robots.txt doit continuer à répondre en 200, jamais en 503.Vous n'avez rien demandé et pourtant votre site affiche une page de maintenance ? C'est normal, et c'est même plutôt une bonne nouvelle.
Pendant une mise à jour, WordPress commence par déposer un fichier .maintenance à la racine de l'installation, à côté de wp-config.php. Tant que ce fichier existe, le cœur de WordPress interrompt la requête avant de charger le thème et affiche le message :
Brièvement indisponible pour cause de maintenance planifiée. Revenez dans une minute.
Une fois l'opération terminée, WordPress supprime le fichier tout seul et le site redevient disponible. La fenêtre d'indisponibilité d'une mise à jour classique se compte en secondes, rarement en minutes. Pour préparer ce genre d'intervention sans stress, notre tutoriel sur la mise à jour de WordPress détaille l'ordre des opérations, et une sauvegarde du site avant de lancer quoi que ce soit reste la base.
Deux détails que l'on voit mal expliqués ailleurs, et qui expliquent la plupart des sites « coincés » :
wp_is_maintenance_mode() lit l'horodatage $upgrading inscrit dans le fichier et considère la maintenance comme terminée au bout de 10 minutes. Autrement dit, un .maintenance oublié finit par ne plus bloquer personne… sauf si un processus l'écrit à nouveau.C'est exactement le sujet de la section 5, si vous êtes déjà dans le mur.
C'est la méthode que l'on conseille aux personnes qui ne veulent pas toucher au FTP : un maintenance mode plugin WordPress se règle en trois écrans, et se coupe aussi vite.
Deux poids lourds gratuits sur WordPress.org (chiffres relevés le 12 novembre 2026) :
On ne vous impose aucune marque : les deux font le travail, LightStart est plus direct si vous ne voulez qu'une page de maintenance, SeedProd est plus large si vous comptez aussi construire des landing pages.
La marche à suivre, quel que soit le plugin :
Un piège documenté par LightStart lui-même : le plugin peut devenir instable avec un plugin de cache. Leur recommandation est de désactiver le cache pendant la maintenance, ou à défaut de vider intégralement le cache après chaque modification. Retenez la règle : chaque bascule de mode maintenance se termine par un vidage de cache.

Vous préférez ne rien installer ? Le mode maintenance WordPress sans plugin existe, il tient en un fichier. Mais il a une limite que personne ne mentionne, et qui vous fera perdre une heure si vous ne la connaissez pas.
La méthode du fichier. Créez un fichier texte nommé exactement .maintenance (sans extension), contenant :
<?php
$upgrading = time();
Déposez-le à la racine WordPress, là où se trouvent wp-config.php et wp-admin. Rechargez le site : il répond en 503 avec le message par défaut.
Trois précautions :
time() date de la création. Au-delà de 10 minutes, wp_is_maintenance_mode() renvoie false et le site redevient public, sans que vous ayez touché à quoi que ce soit.$upgrading avec un horodatage frais. C'est précisément pour cela qu'un plugin est plus confortable dès que la fenêtre dépasse le quart d'heure.Ce que fait la fonction wp_maintenance(). C'est elle qui exécute tout le mécanisme, et elle est marquée privée dans la référence WordPress : réservée au cœur, pas aux extensions ni aux thèmes. Son déroulé exact :
wp_is_maintenance_mode() renvoie false, elle ne fait rien.wp-content/maintenance.php existe, elle le charge et termine la requête - c'est le point d'entrée pour une page personnalisée (section 3).Retry-After: 600 et affiche le message par défaut en wp_die(..., 503).Conséquence pratique : on n'appelle pas wp_maintenance() à la main dans un thème. C'est l'upgradeur de WordPress qui gère le fichier, et c'est très bien ainsi. Pour activer le mode maintenance WordPress par le code, le fichier .maintenance suffit.
Une maintenance page WordPress réussie tient en cinq éléments. Pas un diaporama, pas une animation : cinq informations, servies vite.
Reste la question technique, et c'est là que la plupart des tutos s'arrêtent trop tôt. Une page publiée dans WordPress ne peut pas s'afficher en mode maintenance natif : le fichier .maintenance interrompt la requête avant le chargement du thème. La seule voie native, c'est le drop-in wp-content/maintenance.php, que wp_maintenance() charge à la place du message par défaut. Un fichier, du HTML, deux en-têtes :
<?php
// wp-content/maintenance.php
header( 'HTTP/1.1 503 Service Unavailable' );
header( 'Retry-After: 3600' );
header( 'Content-Type: text/html; charset=UTF-8' );
?>
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"><title>Maintenance en cours</title></head>
<body style="font-family:system-ui;text-align:center;padding:12vh 6vw">
<h1>Le site revient à 14 h</h1>
<p>Une mise à jour est en cours. Écrivez-nous à contact@exemple.fr.</p>
</body>
</html>
Attention au piège : le drop-in est chargé avant l'envoi du 503 et du Retry-After par le cœur. Si vous oubliez les deux lignes header(), votre jolie page de maintenance WordPress répondra 200 et Google l'indexera comme une page normale. C'est le genre d'erreur qui coûte des positions, et personne ne s'en aperçoit avant trois semaines.
Vous pouvez aussi passer par le constructeur d'une extension (LightStart, SeedProd) : plus lourd, mais sans écrire de PHP. Quelle que soit la page de maintenance WordPress retenue, vérifiez son code HTTP avant de la laisser en ligne (section 6).

Sortir du mode maintenance WordPress est le geste inverse, et il se rate aussi souvent que l'activation. Trois cas, une même fin de procédure.
Avec une extension. Désactivez le mode maintenance dans les réglages du plugin, ou désactivez le plugin lui-même. Puis videz le cache du site et celui du CDN. Sans ce vidage, une partie de vos visiteurs verra encore la page pendant des heures.
Sans extension. Supprimez le fichier .maintenance à la racine. Le site redevient immédiatement public, dans la limite du cache.
Et on vérifie, toujours. Trois commandes, dix secondes :
curl -I -X GET "https://www.exemple.fr/"
curl -I -X GET "https://www.exemple.fr/un-article/"
curl -I -X GET "https://www.exemple.fr/robots.txt"
Vous devez voir HTTP/1.1 200 OK sur les trois. Si la page d'accueil répond 200 mais qu'un article répond encore 503, c'est le cache. Si c'est robots.txt qui répond 503, vous bloquez tout le crawl : à corriger dans la minute.
Dernier réflexe : vérifiez qu'aucun mode « coming soon » n'est resté actif. Un site qui répond 200 avec une page « bientôt disponible » est indexé avec cette page - et là, ce n'est plus une question de maintenance, c'est une page à retirer de l'index.
Le cas classique : WordPress bloqué en maintenance après une mise à jour interrompue. Le message exact que voit votre visiteur est « Brièvement indisponible pour cause de maintenance planifiée ». La cause, dans 9 cas sur 10 : le fichier .maintenance n'a pas été supprimé, parce que la mise à jour a échoué en cours de route (timeout PHP, permissions de fichiers, coupure réseau).
La procédure complète, sans rien casser :
.maintenance. Par FTP ou via le gestionnaire de fichiers de l'hébergeur, dans le dossier racine (celui qui contient wp-config.php, wp-admin et wp-content). Activez l'affichage des fichiers cachés.curl -I sur l'accueil et sur une page profonde.Si le fichier réapparaît tout seul, ce n'est pas de la magie : un processus d'update boucle, un cron est coincé ou une tâche planifiée réécrit le fichier. Direction les logs PHP de l'hébergeur et le rapport d'erreurs de WordPress.
Et si vous n'avez ni les accès FTP ni le temps de chercher, notre service de dépannage WordPress en 2H prend le relais, à partir de 75 €HT, avec un diagnostic gratuit avant intervention et un dépannage garanti 30 jours.

C'est le point qui décide si votre pause coûte des positions ou pas. Et il ne dépend pas du message affiché, mais du code HTTP renvoyé.
| Réponse du site | Ce que Google en déduit | Effet sur le référencement |
|---|---|---|
503 + Retry-After |
indisponibilité temporaire | URL conservée, recrawl différé |
200 avec une page de maintenance |
page normale | le contenu de maintenance remplace votre page dans l'index |
404 ou 410 |
page supprimée | URL retirée de l'index |
noindex sur la page |
exclusion volontaire | URL retirée de l'index |
503 sans Retry-After |
temporaire, sans date | Google revient à son propre rythme |
Trois règles à retenir, toutes issues de la documentation Google :
Retry-After accepte deux formats : un nombre de secondes ou une date HTTP. WordPress envoie 600 par défaut, soit dix minutes. Si votre intervention doit durer deux heures, annoncez 7200 plutôt que de laisser Google revenir pour rien.Deux effets de bord à connaître :
robots.txt doit rester en 200 et accessible. Un robots.txt en 503 bloque tout le crawl, y compris après la maintenance.C'est la confusion la plus fréquente, et elle coûte cher. Une page de maintenance, c'est un panneau temporaire. La maintenance WordPress, c'est l'entretien régulier du site.
| Mode maintenance (la page) | Service de maintenance (le métier) | |
|---|---|---|
| Durée | minutes à quelques heures | toute l'année |
| Objet | cacher le site pendant une intervention | mises à jour, sécurité, sauvegardes |
| Réalisé par | une extension ou un fichier | un humain qui suit le site |
| Code HTTP | 503 + Retry-After |
aucun, le site reste en ligne |
Un plugin maintenance WordPress affiche une page, et c'est tout. Il ne met pas à jour vos extensions à votre place, il ne teste pas vos formulaires après une mise à jour de thème, il ne détecte pas une faille et il ne restaure pas une sauvegarde à 23 h un dimanche. Ce sont deux outils différents, et l'un ne remplace pas l'autre.
C'est précisément le rôle de notre formule de maintenance WordPress : mise à jour hebdomadaire du cœur, du thème et des extensions, diagnostic et correction des failles, sauvegardes automatiques et manuelles, accès aux extensions premium, test des formulaires, rapport mensuel et intervention 7j/7. Le tarif est fixe : 752 €HT/an, soit 62,67 €HT/mois. Et si vous voulez d'abord vérifier que c'est le bon cadre pour votre site, le détail des tarifs est en ligne et vous pouvez nous poser la question directement.
Deux vérifications suffisent. Ouvrez le site dans une fenêtre de navigation privée : vous devez voir la page de maintenance. Puis lancez curl -I -X GET "https://votre-site.fr/" : un site en maintenance renvoie HTTP/1.1 503, avec un en-tête Retry-After si WordPress ou votre extension le prévoit.
Pas pour une intervention de quelques minutes à quelques heures. Un 503 accompagné de Retry-After signale une indisponibilité temporaire : Googlebot reporte son passage et conserve l'URL. En revanche, une page de maintenance servie en 200, un 404 ou un noindex font sortir les pages de l'index, et là, il faut des semaines pour revenir.
Le plus court possible. Google parle de quelques jours au maximum pour une désactivation complète, et prévient qu'un 503 prolongé peut aboutir au retrait des URL de l'index. Notre repère : quelques heures pour une mise à jour lourde, 48 h maximum pour une intervention planifiée.
Parce que le fichier .maintenance n'a pas été supprimé après l'échec de la mise à jour, ou parce qu'un cache sert encore la version 503. Supprimez le fichier à la racine, videz tous les caches, puis vérifiez le code HTTP avant de relancer la mise à jour.
Oui : un fichier .maintenance contenant $upgrading = time(); à la racine suffit. Mais WordPress considère la maintenance terminée au bout de 10 minutes, et il faut alors réécrire l'horodatage. Pour une fenêtre plus longue, une extension reste plus simple à piloter.
Une page temporaire ne protège pas votre site. Notre maintenance WordPress, si : mises à jour chaque semaine, sauvegardes, sécurité et intervention 7j/7, pour 752 €HT/an.
wp_maintenance() : developer.wordpress.org/reference/functions/wp_maintenancewp_is_maintenance_mode() : developer.wordpress.org/reference/functions/wp_is_maintenance_modemaintenance.php, mises à jour échouées) : wordpress.org/documentation/article/updating-wordpressRetry-After, durée limite) : developers.google.com/search/blog/2011/01/how-to-deal-with-planned-site-downtime