Page blanche ou erreur 500 : quelle différence ?

Techniquement, les deux traduisent une interruption de PHP. Ce qui change, c’est ce que le serveur renvoie.

  • Erreur 500 : le serveur signale explicitement l’échec. Le code HTTP est 500, et le navigateur affiche souvent une page d’erreur générique.
  • Page blanche : le serveur renvoie un code 200 et une réponse vide, ou presque. Pour lui, tout va bien — c’est PHP qui s’est arrêté en silence, parfois après avoir déjà envoyé une partie de la page.

Cette nuance a une conséquence pratique : sur une page blanche, pensez à regarder le code source de la page (clic droit, « afficher le code source »). Il arrive qu’un fragment de HTML y figure, et ce fragment indique à quel moment l’exécution s’est arrêtée — donc dans quel gabarit ou quel module chercher.

La démarche de diagnostic reste commune aux deux cas ; je la détaille aussi dans l’article sur l’erreur 500.

Faire parler PrestaShop

Si vous avez accès aux fichiers

Dans config/defines.inc.php, passez _PS_MODE_DEV_ à true, puis rechargez. Dans la majorité des cas, le blanc laisse place à un message précis, avec fichier et numéro de ligne.

Ce mode expose vos erreurs à tous les visiteurs : activez-le le temps du diagnostic, et remettez false dès que c’est terminé.

Si même le back-office est blanc

Déposez à la racine un fichier .user.ini contenant display_errors = on et error_reporting = E_ALL. Attendez une minute ou deux — ces fichiers ne sont relus qu’à intervalle régulier — puis rechargez.

Les journaux

Trois sources, dans cet ordre :

  1. var/logs/ : les journaux applicatifs de PrestaShop.
  2. Le journal d’erreurs PHP de l’hébergeur : c’est là qu’atterrissent les erreurs fatales, y compris celles qui empêchent PrestaShop de démarrer.
  3. La console du navigateur : si la page contient du HTML mais s’affiche blanche, le problème peut être une erreur JavaScript ou du CSS qui masque le contenu — un cas rare, mais que j’ai vu plus d’une fois après une mise à jour de thème.

Les causes les plus fréquentes

La mémoire PHP épuisée

C’est la première cause de page blanche. PHP atteint sa limite et s’arrête net, souvent sans rien écrire. Le message Allowed memory size exhausted apparaît dans le journal de l’hébergeur. Typique sur une page catégorie volumineuse, un export, ou la régénération des vignettes.

Un module ou un override incompatible

Après une mise à jour de module ou de PrestaShop, un appel à une méthode qui n’existe plus provoque une erreur fatale. Renommez le dossier du module suspect dans modules/, videz var/cache/, testez. Même logique pour un fichier du dossier override/.

Un cache corrompu

Les fichiers compilés dans var/cache/ peuvent référencer des classes disparues après une mise à jour interrompue. Supprimez le contenu du dossier par FTP : PrestaShop le reconstruit tout seul. C’est le geste le plus rentable du dépannage PrestaShop, et le plus sûr.

Un espace avant la balise d’ouverture PHP

Cause discrète et redoutable : un fichier modifié à la main contient un espace, une ligne vide ou un caractère invisible (une marque d’ordre d’octets, le fameux BOM) avant <?php. PHP envoie alors cet espace comme contenu, ce qui casse les en-têtes et produit une page vide ou un avertissement sur des en-têtes déjà envoyés. Cela arrive presque toujours après une édition de fichier dans un éditeur de texte inadapté.

Une version de PHP incompatible

Le passage automatique d’un hébergeur à une version de PHP plus récente peut rendre invalide une syntaxe utilisée par votre version de PrestaShop ou par un vieux module. Revenez temporairement à la version précédente depuis votre panneau d’hébergement pour confirmer le diagnostic, puis planifiez une montée de version : rester sur une version de PHP abandonnée n’est pas tenable.

La marche à suivre

  1. Sauvegardez fichiers et base avant toute manipulation.
  2. Demandez ce qui a changé juste avant : mise à jour, module, thème, intervention de l’hébergeur, édition de fichier.
  3. Regardez le code source de la page blanche : un fragment de HTML vous indique où l’exécution s’est arrêtée.
  4. Activez l’affichage des erreurs, par le mode développement ou le .user.ini.
  5. Videz var/cache/ — à faire même si vous pensez que ce n’est pas la cause, et après chaque modification.
  6. Isolez : un module, un override, un réglage à la fois, avec un test entre chaque.
  7. Vérifiez la boutique ET le back-office : les deux peuvent avoir des causes différentes.
  8. Désactivez le mode développement et supprimez le .user.ini une fois terminé.

Ce qu’il ne faut surtout pas faire

Restaurer une sauvegarde sans avoir compris. Si la cause est extérieure à la boutique — version de PHP, quota disque, limite serveur — la page blanche revient immédiatement, et vous aurez perdu les commandes passées entre-temps.

Éditer des fichiers directement sur le serveur. C’est précisément ainsi que se glissent les espaces avant <?php et les encodages invalides qui provoquent ce type de panne.

Augmenter la mémoire indéfiniment. Passer à 1 Go masque le symptôme sans traiter la cause. Si une page de catalogue demande autant, c’est qu’un module charge sans limite.

Désactiver tous les modules d’un coup. Vous perdez l’information la plus utile : lequel était responsable.

Prévenir la prochaine page blanche

Une boutique qui tombe en page blanche est presque toujours une boutique où les modifications vont directement en production, sans filet.

Trois habitudes changent tout : une préproduction où l’on teste les mises à jour avant de les appliquer, des sauvegardes dont on a vérifié la restauration, et un suivi des versions de PrestaShop et de PHP pour ne pas découvrir l’incompatibilité le jour où l’hébergeur fait évoluer son parc.

Si votre boutique accumule les fragilités sans que vous sachiez lesquelles, c’est exactement ce que révèle un diagnostic e-commerce : les risques avant la panne, classés par gravité.

Checklist

  • Sauvegarder fichiers et base avant toute manipulation
  • Regarder le code source de la page blanche (fragment de HTML = indice)
  • Activer l’affichage des erreurs (mode développement ou .user.ini)
  • Lire var/logs/ et le journal d’erreurs de l’hébergeur
  • Vider var/cache/ systématiquement
  • Vérifier la mémoire PHP disponible
  • Contrôler qu’aucun fichier récemment édité ne contient d’espace avant <?php
  • Isoler module par module, override par override
  • Remettre le mode développement à false une fois terminé

Questions fréquentes

La boutique est blanche mais le back-office fonctionne. Est-ce plus simple ?

Oui, nettement. Cela signifie que le cœur de PrestaShop démarre correctement et que le problème se situe côté façade : thème, module greffé sur une page, ou surcharge d’un contrôleur public. Vous pouvez désactiver les modules depuis le back-office, ce qui accélère beaucoup l’isolement de la cause.

J’ai vidé le cache et tout est revenu. Dois-je chercher plus loin ?

Oui. Un cache corrompu est un symptôme, pas une cause : quelque chose l’a corrompu — mise à jour interrompue, déploiement partiel, manque d’espace disque. Sans quoi le problème reviendra.

Peut-on perdre des données avec une page blanche ?

En général non : la base de données n’est pas affectée. Le risque vient plutôt des manipulations de panique, en particulier des restaurations de sauvegarde qui écrasent les commandes récentes. D’où l’importance de sauvegarder avant d’agir.

Ça n’arrive que sur certaines fiches produit. Pourquoi ?

Parce que ces fiches ont une particularité : beaucoup de déclinaisons, un champ mal rempli, une image manquante, un module qui ne s’active que dans certaines conditions. Comparez une fiche qui fonctionne avec une fiche en erreur, la différence saute souvent aux yeux.