Développement web

WordPress erreur 503 Service Unavailable : diagnostic et solutions

WordPress erreur 503 Service Unavailable : diagnostic et solutions

    Une erreur 503 signifie que le serveur ne peut pas traiter la requête : maintenance bloquée, PHP saturé ou planté, pic de trafic. Diagnostic pas à pas, solutions selon la cause et retour d'expérience sur la 503 de notre propre site.

    Une erreur 503 « Service Unavailable » sur WordPress signifie que le serveur n’est pas en état de traiter la requête : il est surchargé, en maintenance, ou le moteur PHP qui exécute WordPress ne répond plus. Les causes les plus fréquentes sont un fichier .maintenance oublié après une mise à jour, des processus PHP saturés ou plantés, une extension trop gourmande et un pic de trafic ou de robots. On la diagnostique en lisant les journaux du serveur, et on la règle souvent en redémarrant ou en redimensionnant PHP, puis en supprimant la cause.

    Contrairement à l’erreur critique WordPress, qui vient d’un plantage du code PHP de votre site, l’erreur 503 se situe souvent un cran plus bas, au niveau du serveur. Voici comment la reconnaître, la diagnostiquer et la corriger, avec un cas réel vécu sur notre propre site.

    Que veut dire une erreur 503 ?

    Le code HTTP 503 indique, selon la documentation MDN, que le serveur n’est pas prêt à traiter la requête. Les raisons classiques sont une maintenance ou une surcharge (mémoire, processeur, nombre de connexions). C’est par nature un code d’erreur temporaire : il peut être accompagné d’un en-tête Retry-After qui indique au navigateur ou au robot quand revenir.

    Sur un site WordPress, le message prend plusieurs formes selon l’élément qui le produit :

    Message affichéQui le produitPiste principale
    « Briefly unavailable for scheduled maintenance. Check back in a minute. » (ou sa traduction)WordPress lui-mêmeMise à jour en cours ou bloquée
    « Service Unavailable » sur une page blanche et sobreLe serveur web (Apache, Nginx)PHP ne répond plus ou est saturé
    Page aux couleurs de l’hébergeur ou du CDNHébergeur, pare-feu, CDNLimite de ressources, protection anti-robots, panne en amont

    Identifier qui affiche le message est la première étape du diagnostic : cela vous dit à quel étage chercher.

    Quelles sont les causes sur un site WordPress ?

    1. Le mode maintenance est resté actif

    Pendant une mise à jour, WordPress crée un fichier .maintenance à la racine du site et renvoie une 503 avec l’en-tête Retry-After: 600. Normalement, le fichier disparaît à la fin de la mise à jour. Si la mise à jour est interrompue, le fichier reste. Le code de WordPress ignore toutefois un fichier .maintenance vieux de plus de 10 minutes : si la 503 persiste bien au-delà, la cause est probablement ailleurs.

    2. PHP-FPM est saturé ou planté

    Sur la plupart des serveurs modernes, WordPress est exécuté par PHP-FPM, un gestionnaire qui maintient un « pool » de processus PHP. Le nombre maximal de processus est fixé par la directive pm.max_children, qui limite donc le nombre de requêtes PHP traitées en même temps. Quand tous les processus sont occupés (pages lentes, requêtes bloquées) ou quand ils plantent, le serveur web n’obtient plus de réponse et renvoie une 503.

    3. Une extension ou un traitement trop lourd

    Une extension qui lance des requêtes interminables, un import, une tâche planifiée (WP-Cron) mal conçue ou un appel à une API externe qui ne répond pas peuvent monopoliser les processus PHP. Quelques visiteurs suffisent alors à saturer le pool.

    4. Un pic de trafic ou de robots

    Une campagne publicitaire, un passage en télévision, mais aussi des robots agressifs (aspirateurs de contenu, tentatives de connexion en masse sur wp-login.php ou xmlrpc.php) peuvent dépasser la capacité du serveur. Sans mise en cache, chaque visite exécute PHP et interroge la base de données, ce qui accélère la saturation.

    5. Les limites de l’hébergement

    Sur un hébergement mutualisé, chaque site dispose d’un quota de processeur, de mémoire et de processus. Dépasser ce quota peut déclencher une 503 imposée par l’hébergeur. Une maintenance ou une panne côté hébergeur ou CDN produit le même symptôme.

    Comment diagnostiquer une erreur 503, étape par étape ?

    1. Vérifiez que le problème est général. Testez depuis un autre réseau (4G) et en navigation privée. Consultez la page d’état de votre hébergeur ou de votre CDN.
    2. Regardez la racine du site. Par FTP ou SFTP, cherchez un fichier .maintenance (fichier caché : activez l’affichage des fichiers cachés dans votre client).
    3. Lisez le journal d’erreurs du serveur web. Sur Apache, un message du type AH01067: Failed to read FastCGI header ou une erreur de connexion au socket PHP indique que PHP-FPM ne répond pas correctement.
    4. Lisez le journal de PHP-FPM. Deux messages sont particulièrement parlants : un avertissement signalant que le pool a atteint pm.max_children (saturation) et des lignes indiquant qu’un processus fils s’est arrêté sur un signal, comme SIGSEGV (plantage).
    5. Consultez le journal lent si la directive request_slowlog_timeout est activée : PHP-FPM y écrit la pile d’appels des requêtes trop longues, ce qui désigne souvent l’extension responsable.
    6. Mettez en regard l’heure de début. Une mise à jour automatique, une tâche planifiée, un envoi de newsletter ou un pic de trafic dans les journaux d’accès au même moment sont des suspects sérieux.

    Sur un serveur Debian ou Ubuntu avec Apache, les emplacements courants sont les suivants (ils varient selon la version de PHP et le panneau d’administration) :

    # État du service PHP-FPM
    sudo systemctl status php8.3-fpm
    
    # Dernières lignes du journal PHP-FPM
    sudo tail -n 100 /var/log/php8.3-fpm.log
    
    # Erreurs Apache
    sudo tail -n 100 /var/log/apache2/error.log

    Sur un hébergement mutualisé, vous n’avez pas ces accès : les journaux sont parfois disponibles dans l’espace client, sinon il faut les demander au support en donnant l’heure précise de l’incident.

    Quelles solutions selon la cause ?

    Cause identifiéeSolution immédiateSolution durable
    Fichier .maintenance bloquéSupprimer le fichier, puis relancer la mise à jour interrompueÉviter de fermer l’onglet pendant une mise à jour, surveiller les mises à jour automatiques
    PHP-FPM plantéRedémarrer le service PHP-FPMComprendre le plantage (journaux), mettre à jour PHP et ses extensions
    Pool PHP saturéRedémarrer, puis identifier les requêtes lentesAjuster pm.max_children selon la mémoire disponible, mettre en place un cache de pages
    Extension trop lourdeLa désactiver (FTP ou wp plugin deactivate)La remplacer ou la corriger
    Robots ou attaqueBloquer les IP ou activer la protection du CDNPare-feu applicatif, limitation de débit, protection de wp-login.php
    Quota d’hébergement dépasséContacter l’hébergeurPasser à une offre adaptée au trafic

    Un mot sur pm.max_children : l’augmenter à l’aveugle est une fausse bonne idée. Chaque processus PHP consomme de la mémoire ; si vous en autorisez plus que la mémoire du serveur ne peut en porter, vous remplacez une 503 par un serveur qui s’effondre. La bonne valeur dépend de la mémoire consommée par un processus sur votre site et de la mémoire disponible.

    Autre point : si la 503 est devenue fréquente sur un hébergement d’entrée de gamme, le problème est peut-être tout simplement l’hébergement. Nous comparons les options dans notre article sur les meilleurs hébergeurs web.

    Retour d’expérience : la 503 d’osmova.com

    Retour d’expérience. Le 18 septembre 2026, notre propre site, osmova.com, a affiché une erreur 503 au matin. Dans la nuit, WordPress s’était mis à jour automatiquement en version 7.0.5.

    Les journaux ont rapidement parlé : les processus PHP-FPM du site plantaient en boucle (erreur de segmentation, ou « segfault »), à cause d’un cache OPcache corrompu. Faute de réponse de PHP, Apache renvoyait « Service Unavailable », avec dans son journal l’erreur AH01067: Failed to read FastCGI header.

    Le redémarrage du service PHP-FPM, qui vide au passage le cache OPcache, a remis le site en ligne.

    La leçon que nous en tirons : une mise à jour automatique n’est pas terminée quand elle est installée, elle l’est quand on a vérifié que le site répond. Il faut surveiller le site après chaque mise à jour automatique et savoir lire les journaux PHP-FPM, parce que le message affiché au visiteur ne dit rien de la cause.

    Pourquoi OPcache ? Cette extension de PHP garde en mémoire partagée le code PHP déjà compilé, pour éviter de le recompiler à chaque requête. Par défaut, PHP vérifie périodiquement si les fichiers ont changé (opcache.validate_timestamps). Quand ce cache se retrouve dans un état incohérent, par exemple après le remplacement de nombreux fichiers lors d’une mise à jour, les processus qui s’en servent peuvent planter. La documentation PHP indique que le cache se vide avec opcache_reset() ou par un redémarrage du serveur, ce qui explique que le redémarrage de PHP-FPM ait suffi.

    Une erreur 503 nuit-elle au référencement ?

    À court terme, peu. Google explique que les erreurs serveur 5xx conduisent ses robots à ralentir temporairement l’exploration, proportionnellement au nombre d’URL en erreur, et que les pages déjà indexées sont conservées. Mais il précise aussi qu’elles finissent par être retirées de l’index si l’erreur persiste. Une 503 de quelques heures n’est donc pas grave ; une 503 qui dure plusieurs jours l’est.

    C’est aussi pour cela que le code 503 est le bon code pour une maintenance programmée : il signale un problème temporaire. À l’inverse, une page de maintenance qui renvoie un code 200 risque d’être indexée à la place de vos vraies pages.

    Les erreurs à éviter

    • Redémarrer et oublier. Le redémarrage remet le site en ligne, pas la cause à zéro. Notez l’heure, conservez les journaux et cherchez pourquoi.
    • Augmenter toutes les limites. Plus de processus, plus de mémoire, plus de temps d’exécution : sans diagnostic, vous déplacez le problème.
    • Désactiver les mises à jour automatiques. Elles apportent des correctifs de sécurité. La réponse est la surveillance, pas l’abandon des mises à jour.
    • Ignorer les robots. Une part importante du trafic de certains sites vient de robots. Les journaux d’accès le montrent en quelques minutes.
    • Découvrir la panne par un client. Une surveillance externe (voir notre sélection d’outils de monitoring) vous alerte en quelques minutes.

    Si vous n’avez ni le temps ni l’accès pour lire des journaux PHP-FPM à 7 heures du matin, c’est précisément ce que couvre notre offre d’hébergement et maintenance WordPress : mises à jour, surveillance et intervention en cas d’incident. Pour optimiser un site lent ou trop gourmand, notre agence WordPress peut auditer les extensions et le code.

    Questions fréquentes

    Combien de temps dure une erreur 503 ?

    Pendant une mise à jour normale de WordPress, quelques secondes. Si elle dure plus de quelques minutes, c’est qu’un problème empêche le serveur de répondre et il faut intervenir.

    Quelle différence entre une erreur 500 et une erreur 503 ?

    La 500 signale une erreur interne, souvent un plantage du code. La 503 signale un service temporairement indisponible : maintenance, surcharge, ou moteur PHP qui ne répond pas.

    Je suis sur un hébergement mutualisé, que puis-je faire ?

    Vérifier le fichier .maintenance, désactiver les extensions par FTP, puis contacter le support avec l’heure de l’incident. Si les 503 se répètent, votre site a probablement dépassé les ressources de l’offre.

    Un cache de pages peut-il éviter les 503 ?

    Il réduit fortement le risque de saturation, car les pages en cache sont servies sans exécuter PHP. Il ne protège pas contre un PHP-FPM planté pour les pages non mises en cache ni pour l’administration.

    Comment savoir si la 503 vient d’une mise à jour automatique ?

    Comparez l’heure de début de l’erreur avec l’heure de la mise à jour : WordPress envoie en général un e-mail à l’administrateur après une mise à jour automatique du cœur, et les journaux du serveur gardent la trace des fichiers modifiés.

    Sources

    Continuez votre lecture

    Sur le même thème

    « Il y a eu une erreur critique sur ce site » : causes et solution pas à pas
    Développement web

    « Il y a eu une erreur critique sur ce site » : causes et solution pas à pas

    Le message « Il y a eu une erreur critique sur ce site » cache presque toujours une…

    Ajouter ou changer le favicon sur WordPress, pas à pas
    Développement web

    Ajouter ou changer le favicon sur WordPress, pas à pas

    Voici la méthode simple pour ajouter ou remplacer le favicon d’un site WordPress depuis les réglages, l’éditeur de…

    Page-Builder-WordPress-faut-il-choisir-Gutenberg
    Développement web

    Page builder WordPress : faut-il choisir Gutenberg ?

    L'éditeur de blocs Gutenberg a bien changé depuis 2018 : édition du site, styles globaux, compositions. On le…

    Comment-securiser-un-site-Web-7-conseils-que-vous-ne-pouvez-pas-vous-permettre-dignorer
    Développement web

    Comment sécuriser un site web : les mesures essentielles

    La plupart des sites piratés sont repérés par des robots qui cherchent une faille connue. Les mesures à…