Une page vide, et aucun message d’erreur

Tu tapes ton adresse, la page se charge visiblement (l’onglet cesse de tourner), et il n’y a rien. Pas de message rouge, pas de code d’erreur, juste du blanc. C’est l’un des bugs les plus déroutants du web parce qu’il ne te donne aucun indice : contrairement à une erreur 500 ou une erreur 403, il n’y a littéralement rien à lire.

Bonne nouvelle : ce silence n’est pas aléatoire. Une page blanche a toujours une cause précise, et dans la grande majorité des cas elle se trouve dans l’une de ces quatre familles : un cache qui te sert une version cassée, une erreur PHP masquée par la configuration de production, un script JavaScript qui plante avant d’avoir pu afficher quoi que ce soit, ou une ressource critique (CSS, JS, police) qui répond en 404. Ce guide s’applique que ton site tourne sous WordPress, sous un framework JavaScript (React, Vue, Next), ou qu’il soit hébergé sur Vercel ou Netlify.

Pourquoi ça arrive : les causes qui pèsent

Avant de plonger dans les solutions, voici les scénarios les plus fréquents, à peu près dans l’ordre où ils se présentent réellement :

1. Élimine d’abord le cache : côté toi, puis côté serveur

C’est le réflexe le plus rapide et il résout une bonne partie des cas. Ouvre la page en navigation privée, ou fais un rechargement forcé (Ctrl+Maj+R sur Windows, Cmd+Maj+R sur Mac). Si la page s’affiche correctement, le problème vient d’un cache navigateur ou d’un cache CDN (Cloudflare notamment) qui te servait une ancienne version cassée.

Si tu utilises Cloudflare, purge le cache depuis le dashboard (Caching > Configuration > Purge Everything). Si ton site WordPress utilise un plugin de cache, vide-le également — c’est une cause si récurrente qu’on lui a consacré un comparatif complet des plugins de cache. Teste aussi depuis un autre appareil ou via un outil en ligne qui charge la page sans passer par ton cache local : si toi seul vois du blanc, l’urgence baisse d’un cran, mais il faut quand même comprendre pourquoi le cache a figé une version défaillante.

2. Ouvre la console du navigateur : la piste la plus rentable

Clic droit sur la page, “Inspecter”, puis onglet Console. C’est l’endroit où 80 % des pages blanches livrent immédiatement leur cause. Tu y trouveras généralement l’une de ces situations :

Si tu ne vois rien du tout dans la console ni dans l’onglet réseau, c’est un signe que le problème vient du serveur avant même que le navigateur ne reçoive du contenu à afficher — passe à l’étape suivante.

3. Regarde le code source brut de la page

Fais Ctrl+U (ou Cmd+Option+U sur Mac) pour afficher le code source tel qu’il arrive du serveur, avant toute exécution de JavaScript. Deux cas de figure :

4. Active l’affichage des erreurs PHP si ton site tourne dessus

Sur un site PHP (WordPress ou autre CMS), une page blanche pure signifie presque toujours une erreur fatale masquée parce que display_errors est désactivé en production — un choix volontaire pour ne pas exposer de détails techniques aux visiteurs, mais qui te prive aussi du diagnostic.

Pour WordPress, ouvre wp-config.php à la racine et ajoute juste avant la ligne /* That's all, stop editing! */ :

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

WP_DEBUG_DISPLAY à false garde les erreurs hors de la page publique (pour ne pas effrayer un visiteur) mais WP_DEBUG_LOG les écrit dans /wp-content/debug.log. Ouvre ce fichier après avoir rechargé la page cassée : la dernière ligne indique presque toujours le fichier et la fonction en cause. Pense à repasser WP_DEBUG sur false une fois le diagnostic terminé — ne laisse jamais ce mode actif en permanence.

Sur un hébergement mutualisé, tu peux aussi activer display_errors temporairement via un fichier .htaccess (php_flag display_errors on) ou depuis le panneau PHP de ton hébergeur. Si l’écran blanc concerne spécifiquement WordPress, notre guide dédié à l’écran blanc de la mort WordPress détaille les cas plugin par plugin.

5. Vérifie la mémoire PHP : la cause n°1 des blancs silencieux

Une part importante des pages blanches PHP vient d’un dépassement de memory_limit : le script a besoin de plus de mémoire que ce qui lui est alloué, PHP arrête l’exécution net, et comme rien n’a été affiché, tu obtiens du blanc pur. Le log mentionnera Allowed memory size of X bytes exhausted.

DirectiveRôleSymptôme si trop basseOù la réglerValeur de départ
memory_limitMémoire max allouée à un script PHPPage blanche, “memory exhausted”wp-config.php, php.ini, panel hébergeur256M
max_execution_timeDurée max d’exécution d’un scriptPage blanche ou 504 sur traitement longphp.ini, .htaccess60-120s
display_errorsAffiche les erreurs PHP à l’écranRien ne remonte, diagnostic impossiblephp.ini, .htaccess (temporaire)on en debug, off en prod
log_errorsÉcrit les erreurs dans un fichier logAucune trace exploitable sans çaphp.inion

Pour aller plus loin sur l’ensemble de ces réglages, notre article sur les directives PHP de WordPress détaille chacune avec ses valeurs recommandées selon la taille du site.

6. Cas des sites JavaScript purs (React, Vue, sites générés par IA)

Si le Ctrl+U révèle un HTML quasi vide et que la console affiche une erreur JavaScript, le problème est presque toujours l’un de ces trois : une variable d’environnement manquante au build, un import cassé vers un module qui n’existe plus, ou une API externe qui ne répond pas et bloque le rendu au lieu d’afficher un état de secours. Ce genre de fragilité est fréquent sur les sites assemblés rapidement avec des outils IA — notre comparatif Lovable, Bolt et v0 revient sur ces limites structurelles.

7. Cas des sites hébergés sur Vercel ou Netlify

Si ton site est déployé sur l’une de ces plateformes et affiche du blanc après une mise à jour, vérifie d’abord le tableau des déploiements : un build en échec peut laisser l’ancienne version en cache CDN temporairement visible, avant qu’elle finisse par disparaître. Consulte les logs de build directement dans le dashboard. Nos guides dédiés couvrent ce cas précis : problème de déploiement Vercel et problème de déploiement Netlify. Si un domaine personnalisé vient d’être branché, vérifie aussi la configuration DNS/SSL décrite dans notre guide sur le domaine personnalisé Vercel/Netlify.

Tableau récapitulatif : cause → solution

CauseComment la repérerSolution
Cache navigateur/CDNÇa marche en navigation privéeRechargement forcé, purge Cloudflare/plugin cache
Erreur PHP masquéeCode source totalement videActiver WP_DEBUG_LOG, lire debug.log
Mémoire PHP épuiséeLog mentionne “memory exhausted”Augmenter memory_limit à 256M
Script JS plantéErreur rouge en consoleCorriger l’import/la variable en cause
Ressource 404Ligne rouge dans l’onglet RéseauVérifier le chemin exact du fichier
Build échoué (Vercel/Netlify)Log de build en erreurCorriger et redéployer

FAQ

Pourquoi je ne vois aucun message d'erreur du tout ?

Parce que l’affichage des erreurs est désactivé en production par sécurité (display_errors à off). L’erreur existe bien côté serveur, elle est juste écrite dans un fichier log au lieu d’apparaître à l’écran. Active temporairement le mode debug pour la voir.

Le site marche chez moi mais pas chez un client, pourquoi ?

C’est presque toujours un cache : le tien (navigateur ou CDN local) sert une version différente de celle que voit ton client. Fais un test en navigation privée sur un autre réseau, et purge tous les caches en jeu (Cloudflare, plugin WordPress, CDN de l’hébergeur).

Comment savoir si le problème vient du PHP ou du JavaScript ?

Fais Ctrl+U pour voir le code source brut envoyé par le serveur. S’il est totalement vide, la cause est côté serveur (PHP). S’il contient une structure HTML avec des balises vides que le JavaScript devait remplir, le problème est côté client.

J'ai activé WP_DEBUG mais rien n'apparaît dans debug.log, que faire ?

Vérifie que le fichier wp-content/debug.log existe et que les permissions du dossier wp-content permettent l’écriture. Sur certains hébergements mutualisés, il faut aussi activer log_errors séparément dans le panneau PHP.

La page blanche apparaît seulement sur mobile, pourquoi ?

C’est souvent un script ou une ressource qui échoue selon la taille d’écran (un composant conditionnel mal codé) ou un cache spécifique mobile côté CDN. Teste en changeant de réseau (wifi vers 4G) pour écarter un souci de cache local.

Quand passer la main à un pro

Si après avoir activé le debug tu obtiens un message technique que tu ne comprends pas, si le fichier log grossit sans que tu identifies le fichier en cause, ou si le site tourne sur une stack que tu ne maîtrises pas (build JS, déploiement continu), c’est le moment de faire intervenir quelqu’un qui lit ces logs tous les jours. Une page blanche mal diagnostiquée peut cacher une erreur de connexion à la base de données ou une compromission du site — deux situations où bricoler sans comprendre la cause exacte peut aggraver les choses plutôt que les réparer.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout — hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy