Page blanche PrestaShop : diagnostic et correction
Page blanche sur PrestaShop (fiches produits, thème modifié) ? Diagnostic pas à pas : erreurs PHP, module coupable, limite mémoire, cache Memcache.
En bref : Une page blanche sur les fiches produits PrestaShop provient généralement d'un module défaillant (souvent Commentaires Produits) ou d'un cache Memcache mal configuré. Activez le mode debug pour identifier l'erreur, désactivez le module ou le cache incriminé, puis mettez à jour ou corrigez.
Introduction
Une page blanche (aussi appelée WSOD — *White Screen of Death*) sur l'ensemble de vos fiches produits est l'un des problèmes les plus stressants pour un marchand PrestaShop. La boutique semble fonctionner normalement — la page d'accueil s'affiche, les catégories répondent — mais dès qu'on clique sur un produit, c'est le néant. Aucun message d'erreur, juste un écran blanc.
Dans la grande majorité des cas, ce symptôme a deux origines principales : un module défaillant (très souvent le module Commentaires Produits) ou un problème de cache serveur (Memcache/Memcached mal configuré). Voyons comment diagnostiquer et corriger ce problème méthodiquement.
Étape 1 : activer l'affichage des erreurs PHP
Avant toute chose, il faut rendre l'erreur visible. Une page blanche signifie qu'une erreur fatale PHP se produit mais que l'affichage des erreurs est désactivé.
Sur PrestaShop 1.6 / 1.7
Modifiez le fichier config/defines.inc.php :
// Remplacer
define('_PS_MODE_DEV_', false);
// Par
define('_PS_MODE_DEV_', true);
Sur PrestaShop 8.x
Modifiez le fichier .env à la racine du projet :
# Remplacer
APP_DEBUG=0
# Par
APP_DEBUG=1
Vous pouvez aussi activer le mode debug via le back-office dans Paramètres avancés → Performances → Mode debug.
Important : désactivez systématiquement le mode debug après résolution du problème. Laisser le debug actif en production expose des informations sensibles et dégrade les performances.
Une fois le debug activé, rechargez une fiche produit. Vous devriez maintenant voir un message d'erreur explicite, souvent de type Fatal error avec un nom de fichier et un numéro de ligne.
Étape 2 : identifier le module coupable
Dans la plupart des cas que j'ai rencontrés, le message d'erreur pointe vers un fichier de module, typiquement productcomments.php avec une erreur fatale autour de la ligne 734 (sur les anciennes versions du module).
Le suspect numéro 1 : le module Commentaires Produits
Le module productcomments (Avis clients) est historiquement l'un des modules les plus sujets aux erreurs fatales sur les fiches produits, pour plusieurs raisons :
- **Incompatibilité de version** : le module n'a pas été mis à jour pour correspondre à la version PHP du serveur
- **Appels à des méthodes dépréciées** : certaines fonctions PHP supprimées dans PHP 7.x/8.x étaient encore utilisées
- **Conflit avec le thème** : le hook `displayProductExtraContent` est mal géré par certains thèmes
Test rapide : désactiver le module
Rendez-vous dans le back-office :
Modules → Module Manager → rechercher "commentaire" → Désactiver
Si les fiches produits réapparaissent immédiatement, le diagnostic est confirmé.
Correction définitive
Plusieurs options s'offrent à vous, par ordre de préférence :
- **Mettre à jour le module** depuis le back-office (Modules → Mises à jour). Sur PrestaShop 8.x, la version 6.x du module est recommandée.
- **Corriger le code manuellement** si la mise à jour n'est pas possible. Ouvrez le fichier `modules/productcomments/productcomments.php` et examinez la ligne indiquée dans l'erreur. Les corrections les plus fréquentes :
- **Remplacer le module** par une alternative comme `Product Reviews` ou une solution tierce mieux maintenue.
- Une migration de serveur (Memcache n'est pas installé sur le nouveau serveur)
- Une mise à jour de PHP (l'extension `php-memcache` n'est plus chargée)
- Un redémarrage serveur (le service Memcached ne s'est pas relancé)
- Basculez sur **Système de fichiers** (option la plus sûre)
- Videz le cache manuellement
- Vérifiez que les fiches produits fonctionnent à nouveau
- **Activer le mode debug** → lire le message d'erreur
- **Si erreur module** → désactiver le module incriminé → mettre à jour ou corriger
- **Si aucune erreur visible** → désactiver Memcache → tester
- **Si persistant** → désactiver les overrides → basculer sur le thème par défaut
- **Si toujours blanc** → vérifier `memory_limit`, les logs PHP (`/var/log/php-errors.log`) et les logs Apache/Nginx
- **Maintenez vos modules à jour**, en particulier ceux qui interviennent sur les fiches produits (commentaires, avis, attributs personnalisés)
- **Testez sur un environnement de preprod** avant toute mise à jour module ou PHP
- **Utilisez Redis ou APCu** plutôt que Memcache pour le cache
- **Surveillez vos logs PHP** : un `Fatal error` dans les logs précède toujours la page blanche côté visiteur
- **Configurez un monitoring** qui alerte quand une page clé retourne un code HTTP 500 ou un body vide
// Erreur typique : appel à une méthode sur un objet null
// Avant (code défaillant)
$result = $product->getComments();
// Après (correction avec vérification)
if ($product && method_exists($product, 'getComments')) {
$result = $product->getComments();
} else {
$result = [];
}
Étape 3 : vérifier la configuration du cache (Memcache / Memcached)
Si la désactivation du module commentaires ne résout pas le problème, le coupable peut être le système de cache serveur.
Pourquoi Memcache provoque des pages blanches
Lorsque Memcache (ou Memcached) est sélectionné comme système de cache dans PrestaShop mais que le service n'est pas réellement actif sur le serveur, ou que la connexion est instable, PrestaShop échoue silencieusement lors du chargement des données mises en cache — ce qui produit une page blanche.
C'est particulièrement fréquent après :
Correction
Dans le back-office, allez dans Paramètres avancés → Performances → Système de cache :
Si vous souhaitez conserver Memcache, vérifiez d'abord que le service tourne :
# Vérifier si Memcached est actif
systemctl status memcached
# Vérifier si l'extension PHP est chargée
php -m | grep memcache
# Tester la connexion
echo "stats" | nc localhost 11211
Sur PrestaShop 8.x, le cache applicatif est géré par Symfony et Doctrine. Préférez APCu ou Redis comme système de cache, bien plus stables et performants que Memcache.
Étape 4 : autres causes possibles
Si les deux premières pistes n'ont rien donné, explorez ces causes supplémentaires :
Limite mémoire PHP
Les fiches produits avec beaucoup de déclinaisons ou d'images peuvent dépasser la limite mémoire :
// Dans php.ini
memory_limit = 256M
Override corrompu
Vérifiez si un override du ProductController existe :
# Chercher les overrides liés aux produits
ls -la override/controllers/front/ProductController.php
Si le fichier existe, renommez-le temporairement pour tester :
mv override/controllers/front/ProductController.php override/controllers/front/ProductController.php.bak
Puis videz le cache (var/cache/ sur PS 8.x ou cache/ sur PS 1.6/1.7).
Thème incompatible
Basculez temporairement sur le thème par défaut (Classic) depuis le back-office pour confirmer ou éliminer cette piste.
Page blanche après une modification du thème : la limite mémoire PHP
L'installation ou la personnalisation d'un thème est une opération gourmande en mémoire. PrestaShop doit compiler les templates, régénérer les assets, recalculer les positions de hooks… Si la limite mémoire PHP est trop basse (souvent 128 Mo par défaut sur les hébergements mutualisés), le processus s'arrête brutalement et provoque une page blanche.
Méthode 1 : via le fichier `.htaccess`
Ajoutez cette directive dans le fichier .htaccess à la racine de votre boutique :
php_value memory_limit 512M
Cette méthode fonctionne sur les serveurs Apache avec mod_php. Si vous obtenez une erreur 500 après l'ajout, votre hébergeur utilise probablement PHP-FPM (courant sur les offres récentes), et cette directive n'est pas supportée.
Méthode 2 : via `php.ini` ou `.user.ini`
Créez ou modifiez un fichier .user.ini (pour PHP-FPM) ou php.ini à la racine :
memory_limit = 512M
max_execution_time = 300
post_max_size = 64M
upload_max_filesize = 64M
J'ajoute ici max_execution_time car l'import de thèmes lourds peut aussi dépasser le temps d'exécution maximal.
Méthode 3 : directement dans PrestaShop
Dans le fichier config/defines.inc.php :
@ini_set('memory_limit', '512M');
Comment vérifier que la modification est prise en compte
Créez un fichier info.php temporaire à la racine :
<?php phpinfo();
Accédez-y via votre navigateur et cherchez la ligne memory_limit. Supprimez ce fichier immédiatement après vérification — il expose des informations sensibles sur votre serveur.
Hébergement mutualisé : si aucune de ces méthodes ne fonctionne, contactez votre hébergeur. Certains verrouillent la mémoire à 256 Mo. C'est insuffisant pour PrestaShop avec un thème complexe : 512 Mo est le minimum recommandé, 1 Go étant préférable pour les catalogues importants.
Méthode de diagnostic systématique
Voici la procédure que j'applique systématiquement face à une page blanche ciblée sur les fiches produits :
Prévention
Pour éviter que ce problème ne se reproduise :
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.