Installez l'extension WP Maintenance (ou un mu-plugin), rédigez un message clair avec une heure de retour, puis vérifiez que la page renvoie un code HTTP 503 accompagné d'un en-tête Retry-After. Limitez la coupure à quelques heures, désactivez-la à la fin et purgez tous les caches.
Une page de maintenance mal configurée peut coûter des positions Google. Le plus souvent, elle part avec un code 200 au lieu d'un 503, et personne ne s'en aperçoit.
En bref
- Une page de maintenance doit répondre en 503, pour que Google conserve vos URL dans l'index ; l'en-tête Retry-After est recommandé.
- La méthode tient en 5 étapes : choisir l'outil, configurer, contrôler le code 503, rédiger le message, désactiver et vérifier.
- Au-delà d'une semaine de 503, les pages risquent de sortir des résultats : gardez la coupure la plus courte possible.
- Les pièges les plus fréquents : cache ou CDN qui sert la page en 200, fichier
.maintenancebloqué, webhooks WooCommerce coupés. - Un environnement de staging évite la plupart des coupures : on teste les mises à jour sur une copie, puis on déploie.
Comment créer une page de maintenance WordPress ?
Cinq gestes suffisent : choisir la méthode, la configurer, contrôler le code 503, rédiger un message utile, puis désactiver et vider les caches. L'ordre compte. Sauvegardez le site avant de toucher à quoi que ce soit, et ne considérez le travail terminé qu'après avoir vérifié le code HTTP.
Si vous voulez seulement mettre à jour une extension ou le thème, vous n'avez souvent pas besoin de page de maintenance. Un staging permet de tout tester sans couper le site, nous y revenons plus bas.
Mode maintenance WordPress : ce que fait WordPress tout seul
Lors d'une mise à jour du cœur, d'une extension ou d'un thème, WordPress crée à la racine un fichier .maintenance. Tant qu'il est là, les visiteurs voient un message sec, traduit de « Briefly unavailable for scheduled maintenance. Check back in a minute. » Quand la mise à jour se termine, le fichier disparaît.
D'après le code source de WordPress, la fonction wp_maintenance() envoie bien un code 503 et un en-tête Retry-After: 600. Elle sait aussi charger un fichier wp-content/maintenance.php à la place du message par défaut. Attention : si vous créez ce fichier, c'est à vous d'envoyer le 503, sinon la page part en 200. Deux lignes en tête de fichier règlent le problème :
<?php
http_response_code( 503 );
header( 'Retry-After: 600' );
Le fichier .maintenance contient un horodatage, et WordPress l'ignore dès qu'il a plus de 10 minutes. En théorie, un site « bloqué » se libère donc seul. En pratique, nous voyons régulièrement des sites rester inaccessibles après une mise à jour interrompue, souvent parce qu'un cache a gardé la page. Supprimez .maintenance en SFTP ou depuis le gestionnaire de fichiers de l'hébergeur, puis purgez les caches. Le détail se trouve dans notre article pour activer et désactiver le mode maintenance WordPress.
Ce mode natif est automatique, et on ne le personnalise pas sans toucher au code. Pour une intervention de plusieurs heures, il vous faut une vraie page.
Étape 1 : choisir la bonne méthode (extension, code ou WP-CLI)
Quatre options existent, et elles ne se valent pas sur les quatre critères qui comptent : la difficulté, la personnalisation, la maîtrise du code 503 et les risques.
| Méthode | Difficulté | Personnalisation | Code 503 | Risques |
|---|---|---|---|---|
| Extension WP Maintenance | Faible | Logo, couleurs, texte, compte à rebours | Option à cocher | Cache qui sert la page en 200 |
| Snippet dans un mu-plugin | Moyenne (PHP) | Totale, mais à coder | Maîtrisé ligne par ligne | Erreur de syntaxe, robots.txt bloqué par inadvertance |
Fichier .maintenance ou wp-content/maintenance.php |
Moyenne | Totale si maintenance.php |
À écrire soi-même | Fichier oublié, ignoré après 10 minutes |
WP-CLI : wp maintenance-mode activate |
Moyenne (ligne de commande) | Aucune | Natif | Même mécanisme que le fichier .maintenance, donc même expiration |
La commande WP-CLI existe bien, avec les sous-commandes activate, deactivate, status et is-active, comme le montre la documentation WP-CLI. Elle active le mode natif, donc sans personnalisation.
Notre recommandation : l'extension pour un non-technicien, le mu-plugin pour un développeur. Un mu-plugin (dossier wp-content/mu-plugins/) vaut mieux que functions.php, parce qu'il survit à un changement de thème. Voici une base :
<?php
// wp-content/mu-plugins/maintenance-503.php
add_action( 'template_redirect', function () {
if ( current_user_can( 'manage_options' ) || is_robots() ) {
return;
}
nocache_headers();
header( 'Retry-After: 3600' );
wp_die(
'<h1>Site en maintenance</h1><p>Retour prévu à 14 h.</p>',
'Maintenance en cours',
503
);
} );
Les administrateurs connectés voient le vrai site, et le robots.txt reste servi normalement (nous y revenons à l'étape 3). Quelle que soit la méthode, faites une sauvegarde complète avant l'intervention.
Étape 2 : installer et configurer WP Maintenance pas à pas
Nous avons vérifié la fiche de l'extension dans le répertoire officiel : plus de 60 000 installations actives. Elle propose notamment le code 503, un accès par rôles, par pages ou par adresses IP, un compte à rebours, du CSS personnalisé et l'insertion d'un shortcode. Les intitulés d'onglets changent parfois d'une version à l'autre : repérez les options par leur fonction.
Installer et activer l'extension
Dans l'admin : Extensions > Ajouter, recherchez « WP Maintenance », Installer, puis Activer. Le répertoire contient plusieurs extensions aux noms proches (« Maintenance », « WP Maintenance Mode »). Contrôlez que l'adresse de la fiche se termine par /plugins/wp-maintenance/.
Un conseil de terrain : installez l'extension et préparez la page la veille, mode désactivé. Le jour J, il ne reste qu'une case à cocher. Configurer une page de maintenance dans l'urgence, c'est la meilleure façon d'oublier le code 503.
Les réglages à passer en revue : activation, accès et code HTTP
Dans cet ordre :
- Activation : l'interrupteur général, à laisser sur « non » tant que la page n'est pas prête.
- Accès : les rôles autorisés à voir le vrai site. Gardez les administrateurs, et testez en navigation privée pour voir ce que voit un visiteur.
- Liste blanche : l'extension permet de filtrer par adresse IP, pratique pour qu'un prestataire accède au site sans compte.
- Code 503 : cochez l'option « 503 Service temporarily unavailable ». C'est elle qui protège votre référencement.
- Programmation : si la version installée propose une date de fin ou un compte à rebours, renseignez-la avec l'heure réelle de retour, pas une estimation optimiste.
Personnaliser l'apparence sans alourdir la page
Reprenez votre logo, vos couleurs et votre typographie : un visiteur doit reconnaître la marque en une seconde. Une image de fond en WebP, légère, suffit. Pas de vidéo en arrière-plan, pas de scripts tiers inutiles : la page doit s'afficher vite, y compris sur mobile en 4G. Le champ de CSS personnalisé sert à ajuster un détail (taille du logo, marges), pas à reconstruire un site.
Étape 3 : vérifier que la page renvoie bien un code 503
Le code 503 (Service Unavailable) dit au robot que l'indisponibilité est temporaire. Selon Google Search Central, il évite que Google indexe le contenu temporaire montré aux visiteurs. Sans lui, la page de maintenance serait indexée comme contenu de votre site.
Pourquoi le code 503 protège votre référencement
Trois erreurs reviennent souvent :
- Code 200 : la page de maintenance ressemble à un contenu normal. Google peut la traiter comme un soft 404 ou l'indexer à la place de vos vraies pages, avec des titres remplacés dans les résultats.
- Redirection 302 vers
/maintenance: même effet, avec en prime une URL qui n'a rien à faire dans l'index. - Balise noindex : elle peut faire sortir vos pages de l'index, et on la retire rarement au bon moment.
L'en-tête Retry-After indique au robot quand revenir, en secondes ou sous forme de date. Il est facultatif, mais il ne coûte qu'une ligne.
Reste le robots.txt. D'après la documentation Google, si le fichier est trouvé mais ne peut pas être récupéré (erreur 5xx), Google cesse d'explorer le site pendant les 12 premières heures. Il s'appuie ensuite, jusqu'à 30 jours, sur la dernière version valide. Pour une maintenance courte, laissez donc le robots.txt répondre en 200.
Comment contrôler le code en 2 minutes
Testez toujours déconnecté ou en navigation privée, sinon vous verrez le site normal. Trois méthodes :
- DevTools : ouvrez les outils de développement du navigateur (F12), onglet Réseau, rechargez la page, cliquez sur la première ligne (le document) et lisez le statut. Vous devez lire 503.
- curl : dans un terminal, lancez la commande ci-dessous. Vous attendez
HTTP/2 503, puisretry-afterdans la liste des en-têtes. - Search Console : l'outil d'inspection d'URL, avec le test en direct. Il interroge votre site depuis l'extérieur et révèle ce que voit réellement Google, cache et CDN compris. Le rapport doit signaler une erreur serveur 5xx.
curl -I https://votresite.fr/
Le piège principal reste le cache. Une extension de cache de page ou un CDN peut servir l'ancienne page en 200, ou garder en mémoire la page de maintenance et la resservir après la réouverture. Purgez avant d'activer, puis contrôlez avec curl -I depuis une connexion qui n'est pas celle de votre bureau.
Sur une boutique WooCommerce, vérifiez que wp-admin, wp-login, l'API REST et les webhooks de paiement restent joignables. Un webhook qui reçoit un 503 peut laisser une commande en attente de paiement alors que le client a payé. Planifiez l'intervention en dehors des heures de commande, puis contrôlez dans l'interface de votre prestataire de paiement qu'aucun appel n'est resté en erreur.
Étape 4 : rédiger le contenu de la page de maintenance
Une bonne page tient en quelques lignes, mais chacune compte. Elle doit afficher :
- un message clair et rassurant ;
- la raison de l'intervention, en une phrase ;
- une heure de retour précise, jamais un « bientôt » ;
- un moyen de contact (e-mail, téléphone) ;
- les liens vers vos réseaux sociaux.
Vous pouvez ajouter un formulaire pour être prévenu du retour. Dans ce cas, indiquez à quoi servira l'adresse et combien de temps vous la gardez, et placez un lien vers votre politique de confidentialité. Ne réutilisez pas ces adresses pour une newsletter commerciale sans accord explicite.
Côté mentions légales, nous recommandons de laisser un lien vers elles (ou d'afficher la raison sociale et un contact). Nous n'avons pas trouvé de tolérance officielle pour la période d'indisponibilité, et quelques heures de coupure restent sans enjeu pratique. Le lien coûte pourtant une ligne et règle la question.
Un modèle à adapter :
Site en maintenance jusqu'à 14 h Nous mettons à jour notre boutique pour la rendre plus rapide. Vos commandes en cours ne sont pas concernées. Retour en ligne prévu aujourd'hui à 14 h. Une question urgente ? Écrivez-nous à contact@votresite.fr ou appelez le 01 00 00 00 00.
Trois contre-exemples vus sur le terrain : l'humour qui fait oublier l'information (« On refait le café, revenez plus tard »), l'absence totale de date, et la page blanche sans logo, que le visiteur prend pour un site piraté.
Étape 5 : désactiver proprement et contrôler le retour
Désactiver le mode maintenance ne fait que la moitié du travail. Passez cette checklist :
- Désactivez le mode maintenance (interrupteur de l'extension, suppression du mu-plugin, ou
wp maintenance-mode deactivate). - Purgez tous les caches : extension de cache, cache serveur, CDN.
- Testez en navigation privée, sur ordinateur et sur mobile.
- Revérifiez que les pages clés répondent en 200 avec
curl -I. - Passez une commande test ou envoyez le formulaire de contact.
- Surveillez la Search Console les jours suivants : rapport « Pages » pour les erreurs serveur, « Statistiques sur l'exploration » pour la reprise du crawl.
Profitez-en pour mesurer la performance. Une mise à jour peut dégrader le chargement sans que rien ne casse visiblement : la marche à suivre est dans notre article pour améliorer les Core Web Vitals de votre site WordPress. Et si le site reste bloqué malgré tout, la procédure du fichier .maintenance est détaillée dans notre article sur l'activation et la désactivation du mode maintenance, cité plus haut.
Combien de temps un site peut-il rester en maintenance sans perdre de positions ?
Pour quelques heures, la réponse pratique est : sans conséquence visible, à condition que le 503 soit correct. Google ne fixe aucun seuil officiel pour cette durée, le 503 étant précisément conçu pour ce cas.
Au-delà, les repères sont officiels. Selon Google Search Central, bloquer l'accès à un site pendant plus d'une semaine nuit à ses résultats de recherche, quelle que soit la méthode utilisée. Et selon Google Search Central, Googlebot réessaie les pages en 503 pendant environ une semaine, puis traite l'erreur comme permanente, ce qui peut faire retirer ces pages des résultats.
Nos recommandations :
- Visez moins de 24 heures.
- Intervenez aux heures creuses, en regardant vos données Analytics (souvent tôt le matin ou le dimanche, mais cela dépend de votre activité).
- Ajustez le
Retry-Afterà la durée annoncée sur la page.
Ne confondez pas maintenance et « coming soon ». Un site qui n'est pas encore lancé n'a rien à protéger dans l'index : un 503 prolongé n'a aucun sens, mieux vaut une page indexable en 200. Pour une refonte complète, ne laissez jamais le site derrière une page de maintenance pendant des semaines. Un audit SEO WordPress en 9 points permet de vérifier avant si la refonte s'impose vraiment. On construit le nouveau site à côté, puis on bascule avec un plan de redirections 301. C'est la logique de notre offre de refonte WordPress sans perdre votre SEO.
La meilleure page de maintenance est celle qu'on n'affiche pas : le staging
Un staging (ou préproduction) est une copie de votre site sur laquelle on teste les mises à jour du cœur, des extensions et du thème, et les nouvelles fonctionnalités. Quand tout fonctionne, on pousse en production en quelques secondes. Le site n'est jamais coupé, aucun 503 n'est nécessaire, et le retour en arrière reste possible grâce aux sauvegardes externalisées.
Le schéma tient en quatre temps : sauvegarde, clone staging, tests, déploiement.
Deux points de vigilance. D'abord, protégez le staging par un mot de passe pour bloquer son indexation : la simple case « décourager les moteurs de recherche » ne suffit pas toujours. Ensuite, sur une boutique WooCommerce, ne remplacez jamais la base de production par celle du staging, sous peine d'écraser les commandes passées entre-temps.
C'est le fonctionnement de notre maintenance WordPress à Paris : forfaits dès 79 € HT par mois, sans engagement. Les mises à jour sont testées en staging avant déploiement, le monitoring sécurité tourne 24 h/24 et 7 j/7, et le SLA est de 24 h ouvrées. Les forfaits vont de 79 à 299 € HT par mois, et aucun site n'a été piraté sous contrat de maintenance depuis 2023. Si vous comparez plusieurs prestataires, voici les 7 clauses à exiger dans un contrat de maintenance WordPress.
Questions fréquentes
Comment mettre un site WordPress en maintenance sans plugin ?
Trois solutions : un mu-plugin avec le hook template_redirect et wp_die() en 503, un fichier wp-content/maintenance.php (en y ajoutant vous-même le code 503), ou la commande WP-CLI wp maintenance-mode activate. Les deux dernières reposent sur le mécanisme natif, donc sans personnalisation simple.
Le mode maintenance WordPress est-il mauvais pour le SEO ?
Non, s'il renvoie un code 503 et reste court. Il devient risqué avec un code 200, une redirection 302 ou une balise noindex, ou lorsqu'il dépasse une semaine. Selon Google Search Central, un blocage de plus d'une semaine nuit aux résultats de recherche du site.
Pourquoi mon site WordPress reste bloqué en mode maintenance après une mise à jour ?
Le fichier .maintenance n'a pas été supprimé, ou un cache sert encore la page. WordPress ignore normalement ce fichier après 10 minutes. Si le blocage persiste, supprimez-le en SFTP ou via le gestionnaire de fichiers de l'hébergeur, puis purgez tous les caches.
Quelle est la différence entre une page « coming soon » et une page de maintenance ?
La page de maintenance concerne un site déjà en ligne, indisponible pour une courte durée : elle doit répondre en 503. La page « coming soon » annonce un site pas encore lancé. Dans ce cas, mieux vaut une page indexable en 200, car il n'y a pas de contenu à protéger.
Les visiteurs connectés en administrateur voient-ils la page de maintenance ?
Avec l'extension WP Maintenance, vous choisissez les rôles qui accèdent au vrai site : les administrateurs peuvent le voir normalement. Le mode natif, lui, s'applique à tout le monde pendant la mise à jour. Testez toujours en navigation privée pour voir ce qu'un visiteur reçoit.
Faut-il mettre une boutique WooCommerce en maintenance pendant les mises à jour ?
Pas pour des mises à jour courantes : testez-les sur un staging, puis déployez. Si une coupure est inévitable, choisissez les heures de plus faible commande et vérifiez que l'API REST et les webhooks de paiement restent joignables. Contrôlez ensuite qu'aucune commande n'est restée bloquée.
Ne plus couper son site : la suite logique
Avant votre prochaine intervention, faites un test à blanc : activez votre page de maintenance cinq minutes en pleine nuit, lancez curl -I https://votresite.fr/ et vérifiez que vous lisez bien 503 et retry-after. Si le résultat vous surprend, vous venez d'éviter une vraie erreur.
Et si vous préférez ne plus y penser, notre équipe intégrée à Paris s'en charge. Découvrez la maintenance WordPress à Paris : forfaits dès 79 € HT par mois, sans engagement, puis réservez le brief découverte gratuit de 30 minutes ou demandez un devis, que vous recevez sous 24 h.



