La réponse courte : activer et désactiver le mode maintenance en 30 secondes

Pour activer le mode maintenance, installez un plugin de maintenance, activez-le et enregistrez. Pour le désactiver, coupez son interrupteur ou désactivez le plugin. Si le site reste bloqué après une mise à jour, supprimez le fichier .maintenance à la racine en FTP. Pendant la maintenance, la page doit renvoyer un code 503.

Sans plugin, un snippet wp_die() avec la réponse 503 dans functions.php fait le travail. Le code 503 dit à Google que l'arrêt est temporaire. Avec un code 200, c'est la page de maintenance qui s'indexe à la place de vos contenus.

En bref

  • Un plugin de maintenance est la méthode la plus simple, à condition de vérifier qu'il renvoie bien un 503.
  • Un site bloqué sur « Briefly unavailable for scheduled maintenance » se débloque en supprimant .maintenance, un fichier caché à la racine.
  • WordPress ignore de lui-même un .maintenance vieux de plus de 10 minutes : si le message persiste, le coupable est souvent le cache.
  • Google tolère un 503 pendant 1 à 2 jours. Au-delà, des URL risquent de sortir de l'index.
  • Le vrai remède consiste à tester les mises à jour en staging avant de toucher à la production.

Voici de quoi choisir en un coup d'œil. La colonne « Code HTTP renvoyé » est celle que la plupart des tutoriels oublient, alors qu'elle décide de l'impact sur votre référencement.

Méthode Niveau requis Code HTTP renvoyé Quand l'utiliser
Plugin de maintenance Débutant 503 si le plugin le propose et que c'est réglé (à vérifier) Refonte, intervention de plusieurs heures
Mode maintenance d'Elementor Débutant 200 en mode « Bientôt disponible » ; code renvoyé par le mode « Maintenance » à vérifier avant usage Si vous utilisez déjà Elementor
Snippet functions.php Intermédiaire 503 (response dans wp_die()) Besoin ponctuel, sans plugin supplémentaire
.htaccess Avancé 503 avec la bonne règle Quand WordPress lui-même peut planter (Apache, LiteSpeed)
WP-CLI Avancé 503 natif, s'éteint après 10 minutes Opération courte en SSH
Outil de l'hébergeur Débutant Variable, à tester Si la bascule existe dans votre panneau

Mode maintenance WordPress : de quoi parle-t-on exactement ?

Trois situations portent le même nom, et elles ne se gèrent pas de la même façon.

Le mode maintenance natif. Pendant une mise à jour du cœur, d'un thème ou d'un plugin, WordPress crée lui-même un fichier .maintenance à la racine, puis le supprime à la fin. Tant qu'il existe, les visiteurs voient un écran blanc avec une phrase. Selon la documentation officielle de wp_is_maintenance_mode(), WordPress considère la maintenance terminée si le fichier date de plus de 10 minutes.

Le mode maintenance volontaire. C'est celui que vous déclenchez avant une intervention : refonte, changement de thème, migration, mise à jour majeure de WooCommerce, correction d'un bug visible. Pour une refonte WordPress sans perdre votre SEO, on évite le plus souvent la fermeture totale en travaillant sur une copie. Quand elle est inévitable, elle se limite à quelques minutes.

La page « coming soon ». Elle sert à un site pas encore lancé. Elle renvoie en général un code 200, ce qui change tout côté indexation : Google voit une page valide, la référence et la garde en mémoire.

Un rappel business avant de continuer : une boutique en maintenance ne vend rien. Regardez vos statistiques de fréquentation, choisissez un créneau court et creux (tôt le matin, tard le soir), et ne lancez rien un lundi matin ni un jour de promotion.

Comment activer le mode maintenance WordPress avec un plugin

C'est la méthode que nous recommandons à un dirigeant ou à un responsable marketing qui gère son site seul. Aucun accès au code n'est nécessaire, et la procédure est quasiment la même pour tous les plugins :

  1. Dans l'administration, ouvrez Extensions > Ajouter.
  2. Recherchez un plugin de maintenance, installez-le et activez-le.
  3. Ouvrez ses réglages, rédigez le message, choisissez le code de réponse (503 si l'option existe) et les rôles autorisés à voir le vrai site.
  4. Activez le mode maintenance et enregistrez.
  5. Testez en navigation privée, jamais depuis votre session.

Ce dernier point est le piège numéro un. Un administrateur connecté voit le site normalement, car la plupart des plugins l'exemptent. Résultat : beaucoup de gens croient que leur plugin ne fonctionne pas alors qu'il marche très bien. Ouvrez une fenêtre privée, ou un autre navigateur, et regardez ce que voit un visiteur.

Quels plugins choisir pour une page de maintenance personnalisée ?

Cinq noms reviennent. Nous ne donnons pas de nombre d'installations, car il change chaque mois : consultez la fiche sur wordpress.org (installations actives, date de dernière mise à jour, compatibilité avec votre version de WordPress) avant de choisir.

  • WP Maintenance : plugin français, interface en français, simple à configurer.
  • LightStart (anciennement WP Maintenance Mode) : compte à rebours, formulaire d'abonnement, accès par rôle.
  • SeedProd (Coming Soon & Maintenance Mode) : éditeur visuel de pages, plus lourd, avec des fonctions avancées en version payante.
  • Maintenance (WebFactory) : léger, orienté page de maintenance simple.
  • CMP – Coming Soon & Maintenance : nombreux modèles de pages.

Dans les réglages, vérifiez quatre points : le code HTTP est-il configurable, la version gratuite suffit-elle, peut-on laisser passer certains rôles ou certaines IP, et que pèse le plugin ? Notre conseil : n'empilez pas un plugin lourd pour un besoin ponctuel. Une page de maintenance utilisée trois heures par an ne justifie pas un constructeur de pages complet qui tourne ensuite en permanence.

Le mode maintenance intégré à Elementor et à certains hébergeurs

Si votre site est construit avec Elementor, vous avez déjà l'outil. Allez dans Elementor > Outils > Mode maintenance (l'intitulé varie selon les versions), puis choisissez un modèle de page, les rôles autorisés et surtout le mode. D'après l'aide officielle d'Elementor, le mode « Bientôt disponible » renvoie un code 200 et laisse les moteurs indexer le site, alors que la source ne confirme pas le code renvoyé par le mode « Maintenance ». Vérifiez-le avec curl -I avant de vous y fier pour une intervention sur un site déjà en ligne.

Certains hébergeurs proposent aussi une bascule dans leur panneau. WP Engine en a une dans son portail, mais sa durée de fonctionnement et le code qu'elle renvoie ne sont pas confirmés ici : vérifiez-les auprès de votre hébergeur. Regardez chez le vôtre avant de supposer que la fonction n'existe pas, et testez le code renvoyé.

Chez Kameo, nous construisons des thèmes sur-mesure sans page-builder. Pas d'Elementor, donc pas de réglage intégré : nous utilisons les méthodes sans plugin décrites plus bas.

Comment activer le mode maintenance WordPress sans plugin

Toucher au code fait peur, et c'est légitime : une virgule oubliée dans functions.php provoque un écran blanc, et vous perdez l'accès à l'administration. Avant toute modification, prenez trois précautions :

  • une sauvegarde complète (fichiers et base de données) ;
  • un accès FTP ou SFTP de secours, pour annuler la modification même si l'administration est inaccessible ;
  • un thème enfant ou un plugin de snippets (Code Snippets, WPCode), pour que votre code ne disparaisse pas à la prochaine mise à jour du thème.

Méthode 1 : un snippet dans functions.php (code 503 inclus)

Voici un snippet commenté à coller dans le functions.php de votre thème enfant, ou dans un plugin de snippets :

// Mode maintenance volontaire : à supprimer ou commenter pour désactiver
add_action( 'template_redirect', function () {

    // Les administrateurs voient le vrai site
    if ( current_user_can( 'manage_options' ) ) {
        return;
    }

    // Indique à Google de repasser dans 1 heure
    header( 'Retry-After: 3600' );

    // Affiche le message et renvoie un code 503
    wp_die(
        '<h1>Site en maintenance</h1><p>Nous revenons très vite.</p>',
        'Maintenance en cours',
        array( 'response' => 503 )
    );
} );

Deux choix sont volontaires. D'abord manage_options plutôt que edit_themes, que l'on voit dans beaucoup de tutoriels : si la constante DISALLOW_FILE_EDIT est active dans wp-config.php, la capacité edit_themes est retirée à tout le monde, vous compris, et vous verriez aussi la page de maintenance. Ensuite, le hook template_redirect ne s'exécute que sur le site public, donc la connexion à /wp-admin reste accessible.

Pour désactiver, supprimez le bloc ou commentez-le. Avec Code Snippets ou WPCode, un clic sur l'interrupteur suffit.

Une mise en garde : n'éditez pas ce fichier depuis Apparence > Éditeur de fichiers du thème. Une erreur de syntaxe s'enregistre immédiatement sur le site en production. Cet éditeur est d'ailleurs souvent désactivé pour des raisons de sécurité (DISALLOW_FILE_EDIT).

Méthode 2 : une redirection via .htaccess avec exception d'IP

Cette méthode ne fonctionne que sur Apache ou LiteSpeed, pas sur Nginx. Son avantage : elle tient même si WordPress plante, puisque le serveur répond avant PHP. Créez d'abord une page maintenance.html statique à la racine, avec son CSS en ligne (les fichiers externes seraient bloqués eux aussi). Sauvegardez ensuite votre .htaccess et ajoutez ces lignes avant le bloc # BEGIN WordPress :

ErrorDocument 503 /maintenance.html

<IfModule mod_headers.c>
  Header always set Retry-After "3600" "expr=%{REQUEST_STATUS} == 503"
</IfModule>

RewriteEngine On
# Remplacez par votre adresse IP
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
# Laisse passer la page elle-même et le robots.txt
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule ^ - [R=503,L]

Le robots.txt doit rester accessible : Google déconseille de renvoyer un 503 sur ce fichier, car cela bloquerait tout le crawl. Testez avec curl -I : la syntaxe peut varier selon la configuration de votre serveur. Pour désactiver, retirez ces lignes.

Méthode 3 : WP-CLI et le fichier .maintenance manuel

Pour les profils techniques avec un accès SSH, WP-CLI fournit trois commandes, décrites dans la documentation de WP-CLI :

wp maintenance-mode activate
wp maintenance-mode status
wp maintenance-mode deactivate

La commande crée et supprime le même fichier .maintenance que WordPress utilise lors des mises à jour. Elle hérite donc de la règle des 10 minutes : l'arrêt est automatique, ce qui la réserve aux opérations courtes.

Vous pouvez aussi créer le fichier à la main, avec cette seule ligne : <?php $upgrading = time(); ?>. Attention au piège : avec time(), la valeur est recalculée à chaque requête, donc le fichier n'expire jamais. Il reste actif jusqu'à ce que vous le supprimiez, ou qu'une mise à jour l'écrase. Avec un horodatage fixe, comme celui qu'écrit WordPress, le fichier devient caduc après 10 minutes.

Pour personnaliser le message natif, déposez un fichier wp-content/maintenance.php : WordPress le charge à la place de son écran par défaut quand la maintenance est active. Testez ce drop-in avant de vous en servir.

Comment désactiver le mode maintenance WordPress

La désactivation dépend de la méthode utilisée :

  • Plugin : coupez l'interrupteur dans ses réglages, ou désactivez le plugin dans Extensions.
  • Snippet : supprimez ou commentez le bloc dans functions.php, ou désactivez-le dans le plugin de snippets.
  • .htaccess : retirez les lignes ajoutées, ou remettez la sauvegarde.
  • WP-CLI : wp maintenance-mode deactivate.

Ce n'est pas fini. La plupart des « le site est toujours en maintenance » viennent d'un oubli à cette étape. Déroulez cette checklist :

  1. Purgez tous les caches : plugin de cache (WP Rocket, LiteSpeed Cache), cache serveur et CDN type Cloudflare. Un cache peut continuer de servir la page de maintenance à tous vos visiteurs.
  2. Testez en navigation privée et sur mobile, avec une connexion différente de celle de votre poste.
  3. Contrôlez le code HTTP : curl -I doit afficher 200. Sans terminal, ouvrez l'onglet Réseau des outils de développement du navigateur (touche F12) et rechargez la page.
  4. Lancez une inspection d'URL dans Search Console pour vérifier que Google récupère bien la page. Si vous voulez apprendre à utiliser Google Search Console pour cela, ce guide détaille l'outil.

Site bloqué en mode maintenance après une mise à jour : la procédure de déblocage

Vous voyez ce message ? Respirez, ce n'est presque jamais grave.

Briefly unavailable for scheduled maintenance. Check back in a minute.

En français : « Momentanément indisponible pour cause de maintenance programmée. Revenez dans une minute. » (la formulation exacte dépend de la traduction installée).

Première chose à faire : attendez 10 minutes. Comme vu plus haut, WordPress ignore de lui-même un .maintenance plus vieux que ça. Si le message est toujours là après un quart d'heure, passez à la suite.

Pourquoi WordPress reste bloqué en maintenance

WordPress écrit le fichier avant la mise à jour et le supprime à la fin. Si quelque chose interrompt l'opération entre les deux, le fichier reste en place. Les causes les plus fréquentes :

  • un onglet fermé ou une connexion coupée pendant la mise à jour ;
  • un dépassement de max_execution_time (le script PHP est stoppé) ;
  • une limite de mémoire (memory_limit) atteinte ;
  • trop d'extensions mises à jour d'un coup ;
  • des droits de fichiers insuffisants pour remplacer les anciens fichiers ;
  • une erreur fatale ou un conflit provoqué par un plugin ;
  • une mise à jour automatique interrompue.

Supprimer le fichier .maintenance pas à pas

  1. Connectez-vous en FTP ou SFTP (FileZilla, par exemple), ou ouvrez le gestionnaire de fichiers de votre hébergeur (cPanel, hPanel ou équivalent).
  2. Affichez les fichiers cachés. Le nom commence par un point, donc il est invisible par défaut. Dans FileZilla : menu Serveur > Forcer l'affichage des fichiers cachés. Dans cPanel : réglages du gestionnaire de fichiers, option d'affichage des « dotfiles ».
  3. Placez-vous à la racine du site, au même niveau que wp-config.php.
  4. Supprimez .maintenance.
  5. Rechargez le site en navigation privée.

En SSH, rm .maintenance depuis la racine suffit, ou wp maintenance-mode deactivate si WP-CLI est installé. Si le message revient, le fichier est réécrit : une mise à jour automatique tourne encore, ou le cache sert une ancienne réponse.

Après le déblocage : vérifier que la mise à jour n'a rien cassé

Supprimer le fichier ne répare pas ce qui s'est mal passé pendant la mise à jour. Contrôlez ces points :

  • Les mises à jour inachevées : relancez-les une par une depuis Tableau de bord > Mises à jour, jamais en lot.
  • Le dossier wp-content/upgrade : videz son contenu, il garde parfois des restes de la mise à jour interrompue.
  • Un plugin corrompu : renommez son dossier dans wp-content/plugins (en ajoutant -off, par exemple) pour le désactiver, puis réinstallez-le proprement.
  • Un écran blanc ou une « erreur critique » : activez WP_DEBUG dans wp-config.php pour lire l'erreur. Depuis WordPress 5.2, le mode de récupération envoie aussi un e-mail à l'adresse administrateur, avec un lien pour accéder à l'administration en désactivant l'extension fautive.

Dernier recours : restaurez la sauvegarde faite avant la mise à jour. Sans sauvegarde, impossible de revenir en arrière, et c'est pour cela qu'on la fait avant, pas après.

Le mode maintenance a-t-il un impact sur le SEO ?

Oui, et tout dépend du code renvoyé. Le 503 Service Unavailable dit à Googlebot que l'indisponibilité est temporaire et qu'il doit repasser plus tard. L'en-tête Retry-After précise quand. Selon Google, relayé par Search Engine Journal, un 503 permet de préserver les URL déjà indexées pendant les travaux.

Les risques apparaissent quand on se trompe de code :

  • Un code 200 : la page de maintenance est indexée à la place de vos contenus, avec un title et un texte vides de sens. C'est le piège classique des pages « coming soon » laissées actives sur un site en ligne.
  • Une redirection 302 vers une page de maintenance : à éviter, vos URL pointent vers une destination qui n'est pas la leur.
  • Un 503 trop long : Google recommande de ne pas dépasser 1 à 2 jours. Au-delà, si Googlebot observe ces erreurs sur la même URL plusieurs jours de suite, l'URL peut être retirée de l'index. Pour une fermeture plus longue, la documentation de Google conseille plutôt une page d'accueil indexable en 200.

Pour vérifier ce que renvoie votre site, trois outils : l'onglet Réseau du navigateur, curl -I (cherchez 503 et retry-after), ou l'inspection d'URL dans Search Console. Pour aller plus loin sur les codes HTTP et le crawl, c'est le rôle d'un audit SEO technique.

Quelques réflexes évitent les pertes :

  • planifiez la maintenance aux heures creuses et restez sous quelques heures ;
  • prévenez vos clients par e-mail ou bandeau si vous gérez une boutique ;
  • mettez en pause vos campagnes Ads qui pointent vers le site : vous paieriez des clics vers une page de maintenance.

Le vrai remède : ne plus mettre le site en production pour tester

Les sites bloqués et les maintenances à rallonge viennent presque tous de la même pratique : mettre à jour directement en production. On clique sur « Tout mettre à jour », on croise les doigts, et si ça tourne mal, on découvre qu'il n'y avait pas de sauvegarde récente.

La prévention tient en cinq habitudes :

  • un environnement de staging, c'est-à-dire une copie du site sur laquelle on teste chaque mise à jour avant de la reproduire en production ;
  • une sauvegarde externalisée avant chaque intervention, pas seulement sur le même serveur ;
  • des mises à jour une par une, pour identifier immédiatement le coupable ;
  • des mises à jour automatiques choisies et non subies : elles existent pour les extensions depuis WordPress 5.5, à activer plugin par plugin ;
  • un monitoring de disponibilité, pour être alerté avant vos clients.

Avec un staging, la mise en production prend quelques minutes, et le mode maintenance devient l'exception. La sécurité est aussi en jeu : les extensions non mises à jour sont la première porte d'entrée des piratages. Repousser les mises à jour par peur de tout casser, c'est échanger un risque connu contre un risque pire. Un site à jour doit aussi rester rapide : voici comment améliorer vos Core Web Vitals sur WordPress. Pour le reste, consultez notre guide pour sécuriser votre site WordPress contre le piratage.

Quand déléguer la maintenance de votre site WordPress

À notre avis, certains signaux ne trompent pas :

  • vous tenez une boutique en ligne où chaque heure d'arrêt coûte des ventes ;
  • votre hébergeur ne propose pas de staging ;
  • vous repoussez les mises à jour par peur de casser le site ;
  • vous n'avez aucune sauvegarde externalisée.

Chez Kameo, nos forfaits de maintenance WordPress avec mises à jour testées en staging couvrent ces points : sauvegardes externalisées, monitoring sécurité 24/7, SLA de 24 h ouvrées. Les forfaits sont sans engagement, de 79 à 299 € HT par mois, et aucun site sous contrat n'a été piraté depuis 2023.

Questions fréquentes

Comment activer le mode maintenance WordPress sans plugin ?

Ajoutez un snippet dans le functions.php de votre thème enfant (ou dans un plugin de snippets). Il doit utiliser wp_die() avec le paramètre response à 503 et laisser passer les administrateurs. Sauvegardez avant, gardez un accès FTP de secours et évitez l'éditeur de fichiers de l'administration. Pour désactiver, supprimez ou commentez le bloc.

Pourquoi mon site WordPress reste-t-il bloqué en mode maintenance après une mise à jour ?

La mise à jour a été interrompue avant que WordPress supprime le fichier .maintenance. Les causes courantes : onglet fermé, dépassement de max_execution_time ou de la mémoire, trop de plugins mis à jour d'un coup, droits de fichiers insuffisants ou erreur fatale d'un plugin. Supprimez le fichier en FTP, puis relancez les mises à jour une par une.

Où se trouve le fichier .maintenance et comment le supprimer ?

Il se trouve à la racine du site, au même niveau que wp-config.php. Son nom commence par un point : il est caché par défaut. Activez l'affichage des fichiers cachés dans FileZilla ou dans le gestionnaire de fichiers de l'hébergeur, supprimez-le, puis rechargez le site en navigation privée.

Le mode maintenance fait-il perdre du référencement sur Google ?

Pas s'il renvoie un code 503 et reste court. Google comprend alors que l'arrêt est temporaire et conserve vos URL. Le danger vient d'un code 200, qui fait indexer la page de maintenance, ou d'un 503 qui dure plusieurs jours. Vérifiez le code avec curl -I ou l'onglet Réseau du navigateur.

Combien de temps peut-on laisser un site WordPress en maintenance sans risque ?

Visez quelques heures, et ne dépassez pas 1 à 2 jours en 503, selon la recommandation de Google. Au-delà, des URL peuvent sortir de l'index. Pour une fermeture plus longue, prévoyez une page d'accueil indexable en 200 plutôt qu'un 503 prolongé. Planifiez de préférence aux heures de faible trafic.

Pourquoi je ne vois pas ma page de maintenance alors qu'elle est activée ?

Parce que vous êtes connecté en administrateur : la plupart des plugins vous laissent voir le vrai site. Testez en navigation privée. Autre cause fréquente : un cache (plugin, serveur ou CDN) qui sert l'ancienne version de la page. Purgez-le, puis retestez depuis un appareil non connecté.

Un site qui reste en ligne, même pendant les mises à jour

Prenez dix minutes cette semaine pour vérifier trois choses : la date de votre dernière sauvegarde externalisée, la présence d'un staging chez votre hébergeur, et le code HTTP que renvoie votre page de maintenance (curl -I suffit). Si l'une des trois manque, le prochain blocage n'est qu'une question de temps.

Chez Kameo, nous testons chaque mise à jour en staging avant de la pousser en production, pour qu'aucun site ne reste bloqué un lundi matin. Découvrez nos forfaits de maintenance WordPress, sans engagement dès 79 € HT/mois, et réservez un brief découverte gratuit de 30 minutes pour voir ce que couvrirait un forfait sur votre site.