Le WordPress d'aujourd'hui, décodé pour les développeurs

Erreurs WordPress · Erreurs PHP et écran blanc

Écran blanc WordPress (page blanche) : causes et solutions

Page blanche

Écran blanc sur WordPress (WSOD) : repérez l’erreur PHP cachée avec WP_DEBUG_LOG, puis désactivez l’extension ou le thème fautif. Solutions avec ou sans admin.

Message affiché

Écran blanc de la mort (page blanche, sans aucun message)

En anglais : White Screen of Death (WSOD)

Réponse rapide

Une erreur PHP fatale s’est produite sans être affichée : le plus souvent une extension ou un thème, parfois la mémoire. Activez WP_DEBUG_LOG pour lire l’erreur, puis désactivez l’extension fautive par SFTP ou WP-CLI.

Vous chargez votre site et il ne s’affiche rien du tout : une page entièrement blanche, sans message, sans erreur. C’est ce que l’on appelle l’écran blanc de la mort, ou WSOD en anglais (White Screen of Death). Il peut toucher tout le site, seulement l’administration, une seule page, ou une fonction précise comme l’éditeur ou un formulaire.

L’écran blanc n’est pas une erreur en soi : c’est l’absence de message. PHP a rencontré un problème, mais n’a pas affiché son erreur. Le but est donc de faire parler le site, puis de corriger ce qu’il dit.

Ce que signifie cette erreur

Quand un script PHP s’arrête sur une erreur fatale, deux choses déterminent ce que vous voyez : l’affichage des erreurs et le gestionnaire d’erreurs de WordPress.

  • L’affichage des erreurs : sur un site en production, display_errors est coupé. L’erreur est écrite dans un journal (ou nulle part), et le navigateur reçoit une page vide.
  • Le gestionnaire d’erreurs fatales : depuis WordPress 5.2, WP_Fatal_Error_Handler (wp-includes/class-wp-fatal-error-handler.php) remplace en général l’écran blanc par la page d’erreur critique. Il est enregistré dans wp-settings.php avant le chargement des extensions et des thèmes.

L’écran blanc subsiste donc dans les cas où ce gestionnaire ne peut pas intervenir :

  • l’erreur survient avant son enregistrement, par exemple une faute de syntaxe dans wp-config.php ;
  • l’erreur n’est pas d’un des types gérés (E_ERROR, E_PARSE, E_USER_ERROR, E_COMPILE_ERROR, E_RECOVERABLE_ERROR) : un exit ou un die sans message, une boucle infinie, un processus tué par le système n’en font pas partie ;
  • les en-têtes HTTP ont déjà été envoyés en dehors de l’administration, le gestionnaire n’affiche alors rien ;
  • la constante WP_DISABLE_FATAL_ERROR_HANDLER est définie, ou un fichier wp-content/php-error.php vide remplace le gabarit d’erreur ;
  • la page est en réalité vide : un cache a gardé une réponse vide, un gabarit ne produit rien, une extension de cache ou d’optimisation a cassé le rendu.

Diagnostic rapide

Symptôme / constatCause probableÀ vérifier
Écran blanc partout, après l’activation d’une extension ou d’un thèmeErreur fatale dans le code ajoutéDossier de l’extension, debug.log
Écran blanc après modification de functions.php ou de wp-config.phpErreur de syntaxe PHPLe dernier fichier modifié, php -l
Écran blanc seulement dans l’administration ou l’éditeurExtension chargée côté admin, mémoire insuffisanteDésactivation des extensions, limite de mémoire
Écran blanc sur une seule page ou un seul articleGabarit, bloc ou shortcode défectueux, requête trop lourdeJournal à l’heure de l’affichage, mémoire
Page blanche sur le site mais l’administration fonctionneThème ou cachePassage temporaire à un thème par défaut, vidage du cache
Page blanche intermittente, souvent sur des pages lourdesMémoire PHP, délai d’exécutionFiche « mémoire épuisée »

Les causes les plus fréquentes

  1. Une extension défaillante ou incompatible avec la version de PHP ou de WordPress.
  2. Un thème ou un code ajouté à functions.php avec une faute de syntaxe, une fonction inexistante ou une parenthèse manquante.
  3. Une limite de mémoire PHP dépassée sur une page, un import ou une opération d’image.
  4. Un caractère parasite avant <?php ou après la balise de fermeture, ou un fichier enregistré avec un marqueur d’ordre des octets (BOM).
  5. Un cache (extension de cache, cache objet, OPcache) qui sert une version obsolète ou vide.
  6. Une mise à jour interrompue ou un fichier du cœur corrompu.

Solutions pas à pas

Faites une sauvegarde avant d’intervenir. Du moins invasif au plus technique :

1. Faire apparaître l’erreur

Éditez wp-config.php par SFTP et ajoutez, au-dessus de la ligne « That’s all, stop editing! », de quoi écrire les erreurs dans un fichier sans les montrer aux visiteurs :

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Rechargez la page en erreur, puis ouvrez wp-content/debug.log. Cherchez la ligne « PHP Fatal error » : elle indique le fichier et la ligne. Si le fichier n’existe pas, PHP n’a rien journalisé : consultez alors le journal d’erreurs du serveur (/var/log/nginx/error.log, /var/log/apache2/error.log ou le journal de votre hébergeur). Notre article sur les bons réflexes avec WP_DEBUG_LOG approfondit la méthode. Retirez ensuite ces lignes et supprimez debug.log.

2. Désactiver les extensions (sans accès à l’administration)

Par SFTP, renommez le dossier de l’extension désignée par le journal, ou tout le dossier des extensions :

wp-content/plugins/nom-de-l-extension  →  nom-de-l-extension.off
wp-content/plugins                     →  wp-content/plugins.off

Avec WP-CLI :

wp plugin list --status=active
wp plugin deactivate --all

Si le site revient, restaurez le nom du dossier plugins puis réactivez les extensions une par une. Si le site reste blanc, passez à l’étape suivante.

3. Revenir à un thème par défaut

Renommez le dossier du thème actif dans wp-content/themes/, ou utilisez WP-CLI :

wp theme list
wp theme activate slug-du-theme-par-defaut

Un thème par défaut doit être présent, sinon WordPress n’a pas de solution de repli. Si l’écran blanc vient d’un code ajouté dans functions.php, retirez-le ou corrigez-le. Notre article sur l’écran blanc à l’activation d’un thème décrit un cas où une boucle d’inclusion épuisait la mémoire.

4. Chercher une erreur de syntaxe

Si un fichier PHP vient d’être modifié, vérifiez sa syntaxe en ligne de commande, sans l’exécuter :

php -l wp-config.php
php -l wp-content/themes/votre-theme/functions.php

La commande répond « No syntax errors detected » ou indique la ligne fautive. Vérifiez aussi qu’aucun caractère ou espace ne précède <?php et que le fichier est enregistré en UTF-8 sans BOM.

5. Relever la limite de mémoire

Si le journal contient « Allowed memory size », augmentez la mémoire dans wp-config.php :

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

La fiche mémoire épuisée détaille les autres réglages (php.ini, PHP-FPM).

6. Vider les caches et réinitialiser OPcache

Videz l’extension de cache et le cache objet (Redis, Memcached). Si vous déployez du code et que la page reste figée, rechargez PHP-FPM pour réinitialiser OPcache :

sudo systemctl reload php8.3-fpm
wp cache flush

Adaptez le nom du service à votre version de PHP. Sur un hébergement mutualisé, utilisez le bouton de vidage de cache du panneau.

7. Réparer le cœur de WordPress

wp core verify-checksums
wp core download --force --skip-content

La première commande liste les fichiers du cœur modifiés ou absents ; la seconde les remplace sans toucher à wp-content ni à wp-config.php.

Prévenir l’erreur

  • Activez la journalisation en continu (WP_DEBUG_LOG sans affichage) sur les environnements de test, et surveillez les journaux de production.
  • Testez toute modification de code sur une copie du site, jamais en direct dans l’éditeur de fichiers de l’administration.
  • Mettez à jour avec méthode : une extension à la fois, après sauvegarde, en vérifiant le site entre chaque mise à jour.
  • Dimensionnez la mémoire PHP à 256 Mo au moins pour un site avec constructeur de pages ou boutique.
  • Gardez un accès SFTP et WP-CLI opérationnels : ce sont vos outils de secours quand l’administration ne répond plus.

Questions fréquentes

Pourquoi WordPress n’affiche-t-il pas l’erreur critique à la place ?

Parce que l’erreur est survenue trop tôt (par exemple dans wp-config.php), qu’elle n’est pas de type fatal, ou que le gestionnaire a été désactivé. Dans ces cas, seul le journal permet de lire la cause.

L’écran blanc n’apparaît que dans l’administration : est-ce normal ?

C’est fréquent : une extension qui ne se charge que côté admin, ou une limite de mémoire plus basse, en est souvent la cause. Désactivez les extensions et comparez les pages concernées.

Mes données sont-elles perdues ?

Non, un écran blanc est un problème de code, pas de données. Vos articles restent en base. Sauvegardez quand même avant de modifier des fichiers.

Faut-il laisser WP_DEBUG activé ?

Non, pas en production. Activez-le le temps du diagnostic avec WP_DEBUG_DISPLAY à false, puis retirez-le et supprimez debug.log, qui peut contenir des chemins et des données sensibles.