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

> É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.

- Auteur : WordPress Développement
- Publié le : 2026-10-02
- Mis à jour le : 2026-10-02
- URL : https://www.wpmoderne.fr/erreurs-wordpress/ecran-blanc/

> 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](https://www.wpmoderne.fr/erreurs-wordpress/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 / constat | Cause probable | À vérifier |
| --- | --- | --- |
| Écran blanc partout, après l’activation d’une extension ou d’un thème | Erreur fatale dans le code ajouté | Dossier de l’extension, `debug.log` |
| Écran blanc après modification de `functions.php` ou de `wp-config.php` | Erreur de syntaxe PHP | Le dernier fichier modifié, `php -l` |
| Écran blanc seulement dans l’administration ou l’éditeur | Extension chargée côté admin, mémoire insuffisante | Désactivation des extensions, limite de mémoire |
| Écran blanc sur une seule page ou un seul article | Gabarit, bloc ou shortcode défectueux, requête trop lourde | Journal à l’heure de l’affichage, mémoire |
| Page blanche sur le site mais l’administration fonctionne | Thème ou cache | Passage temporaire à un thème par défaut, vidage du cache |
| Page blanche intermittente, souvent sur des pages lourdes | Mémoire PHP, délai d’exécution | Fiche « 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](https://www.wpmoderne.fr/tips/wp-debug-log-bons-reflexes-debogage-wordpress/) 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](https://www.wpmoderne.fr/themes/ecran-blanc-activation-boucle-inclusion-memoire/) 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](https://www.wpmoderne.fr/erreurs-wordpress/memoire-epuisee/) 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
