WordPress · 7 min · publié le 23 mars 2025 · mis à jour le 15 décembre 2025

Mode maintenance WordPress détourné ou coincé après un hack

Un fichier `.maintenance` oublié, un plugin « coming soon » dont la page a été remplacée par un kit, ou un mode maintenance qui ne se lève plus après un hack : trois dossiers différents. Vérifiez le fichier à la racine et l'option du plugin avant de réinstaller quoi que ce soit.

Réponse directe

Un fichier .maintenance oublié, ou une page de maintenance remplacée par un kit. Vérifiez le fichier à la racine et l'option du plugin de maintenance.

maintenance wordpress pirate .maintenance bloqué coming soon hack

Les trois visages d'une « maintenance »

WordPress pose un fichier `.maintenance` pendant une mise à jour. S'il reste, tout le monde (y compris vous, parfois) voit « brièvement indisponible ». Ce n'est pas un pirate : c'est une maj plantée, ou un FTP qui a laissé le fichier. Deuxième visage : un plugin SeedProd, CMP, Coming Soon, Maintenance : une page volontaire, réglée en option. Troisième : cette page, ou un template, remplacée par un formulaire bancaire, une rançon, ou une pub. Le mot « maintenance » dans la bouche du client mélange les trois.

Capturez l'URL, le HTML, l'heure. Une page qui dit « we'll be back » avec un login WordPress incrusté n'est pas le fichier `.maintenance` du cœur. Un kit d'hameçonnage sur `/maintenance/` est une urgence de contenu frauduleux : on coupe cette URL tout de suite, puis on reprend l'ordre habituel. Voir phishing hébergé.

Ne réinstallez pas WordPress pour « débloquer la maintenance ». Vous perdez la preuve et vous laissez le plugin sale.

Le fichier .maintenance à la racine

C'est un fichier, souvent invisible dans les explorateurs qui cachent les dotfiles. Le gestionnaire cPanel / le FTP en mode « fichiers cachés » le montre. Son contenu est un timestamp PHP. S'il date d'une maj, supprimez-le après copie : le site revient. S'il est recréé aussitôt, un processus de maj tourne encore, ou un malware le repose (moins fréquent, mais vu).

Un `.maintenance` dont le contenu n'est pas le format WordPress (beaucoup de PHP, une redirection) n'est pas le fichier du cœur. Traitez-le comme un PHP à la racine. Ne le « mettez pas à jour ».

`maintenance.php` dans `wp-content` est un drop-in légitime pour customiser le message. Il peut avoir été remplacé. Comparez à une install neuve. Un drop-in qui `eval` n'est pas une page d'excuse.

  • Afficher les fichiers cachés à la racine.
  • Lire `.maintenance` : timestamp vs payload.
  • Lire `wp-content/maintenance.php` s'il existe.

Le plugin coming soon devenu kit

Les plugins de maintenance servent du HTML stocké en option ou dans leurs templates. Un admin fantôme y colle un formulaire carte, un crypto-drainer, ou un vrai « coming soon » qui charge un JS tiers. Le reste du site peut être « en maintenance » pour les visiteurs et ouvert pour l'admin : vous ne voyez pas le kit. Testez déconnecté, mobile, navigation privée.

Désactivez le plugin après export de ses options (le HTML du kit est une preuve). Ne le « mettez pas à jour » depuis une archive marketplace douteuse. Si vous en avez besoin après incident, réinstallez depuis le dépôt officiel, recollez un message sobre, sans scripts tiers inconnus.

Certains plugins ont un mode « bypass secret » (`?preview=1` ou un cookie). L'attaquant le connaît s'il a lu les options. Changez ce secret, ou coupez le plugin le temps du dossier.

Page de maintenance et indexation

Une vraie page de maintenance trop longtemps en 200 se fait indexer. Google remplace vos titres par « Coming soon ». Une page de maintenance en 503 avec Retry-After est plus honnête pour une coupure courte. Un plugin qui répond 200 avec un noindex est un compromis ; encore faut-il que le noindex soit vraiment là après hack (une option peut avoir sauté).

Si le kit a été indexé, retirez le contenu, répondez 404/410 ou 503 propre, demandez le retrait du préfixe si besoin. Ne demandez pas un réexamen Safe Browsing tant qu'une URL de kit répond encore 200. Détail plus large : maintenance et indexation et page pendant le nettoyage.

Coincé après une mise à jour interrompue

Une maj cœur / plugin interrompue (timeout, FTP coupé) laisse `.maintenance` et parfois un site à moitié à jour (fichiers mélange de versions). Ce n'est pas un piratage, mais ça arrive pendant un incident si quelqu'un a « tout mis à jour pour se rassurer ». Enlevez `.maintenance`, terminez la maj depuis une copie saine, ou restaurez les fichiers du plugin depuis le zip officiel — pas depuis un backup qui contient déjà le malware.

Si wp-admin est inaccessible, WP-CLI `wp core update` / `wp plugin update` sur un arbre déjà relu. Mettre à jour un site encore infecté laisse la porte et casse parfois l'affichage. Ordre : porte, puis maj.

Un écran de maintenance qui dure depuis des semaines n'est plus une maj. C'est un fichier oublié ou un plugin laissé actif.

Ce que voient Google et les clients

Vous êtes connecté, le plugin vous bypasse. Le client et Googlebot voient la landing. Inspection Search Console + un téléphone. Si le HTML de Google contient un formulaire carte, c'est un incident paiement / phishing, pas « on est en travaux ». Coupez, capturez, prévenez selon le guide fuite / paiement si des saisies ont pu avoir lieu.

Lever sans rouvrir la porte

Retirer `.maintenance` ou désactiver le plugin rouvre le site. Si le site est encore sale (redirect, spam, skimmer), vous exposez de nouveau. Lever la maintenance fait partie de la fin de vacation, pas du début — sauf si la page de maintenance ELLE-MÊME est le kit : là, on retire le kit tout de suite et on peut poser une 503 sobre à la place.

Tournez les mots de passe avant de rouvrir largement. Un site « enfin visible » avec l'ancien admin intact se refait défigurer le soir.

Bandeau honnête le temps du nettoyage

Pour une boutique, fermer toute la vitrine est rarement utile ; fermer le checkout l'est. Un bandeau « paiement temporairement indisponible » suffit souvent. Voir faut-il fermer la boutique. Pour une vitrine, une 503 courte ou un message sans formulaire tiers. Pas de « site 100 % sécurisé » tant que le tunnel n'est pas audité.

Si vous préférez qu'on tranche fichier vs plugin vs kit, créez un espace.

  • Dotfile `.maintenance` lu ou absent.
  • Plugin coming soon : HTML relu, ou plugin retiré.
  • Drop-in `maintenance.php` comparé.
  • Rouverture seulement si le HTML public est le vôtre.

Questions fréquentes

Je ne vois pas .maintenance dans le FTP. Donc ce n'est pas ça ?

+
Les clients FTP cachent les fichiers qui commencent par un point. Activez leur affichage, ou passez par le gestionnaire de fichiers de l'hébergeur. L'absence dans la liste par défaut ne prouve rien.

Le site est en maintenance seulement pour les visiteurs, pas pour moi. C'est normal ?

+
Oui pour un plugin coming soon avec bypass admin. Ce n'est pas une preuve d'innocence : testez déconnecté. C'est aussi pour ça qu'un kit peut vivre des jours sans que vous le voyiez.

Puis-je garder Coming Soon pendant que je nettoie ?

+
Un message 503 sobre, oui. Un plugin lourd avec builder et scripts tiers, seulement si vous venez d'en relire le HTML. Un kit dans le plugin de maintenance est pire qu'une home défigurée : il a l'air légitime.

Google a indexé « Coming soon ». Comment récupérer les titres ?

+
Levez la page, renvoyez les URL importantes, attendez le recrawl. Un noindex trop large sur tout le site pendant des semaines coûte plus cher qu'une 503 de deux jours. Ne changez pas de domaine pour ça.

Un attaquant peut-il poser .maintenance pour me verrouiller ?

+
Oui, s'il écrit à la racine. C'est un déni de service pauvre, souvent couplé à une rançon ou à un défacement. Retirez le fichier, mais cherchez comment il a écrit : le fichier n'est que le verrou.
À lire ensuite
Page de maintenance pendant le nettoyage Maintenance et indexation Fermer la boutique ? WordPress piraté Phishing hébergé Déclarer mon site