Impossible de modifier un thème PrestaShop : diagnostic et solutions
Votre thème PrestaShop ne se modifie pas ou affiche une page blanche ? Diagnostic complet : erreurs PHP, mémoire, cache et bonnes pratiques pour résoudre le problème.
En bref : Un thème PrestaShop impossible à modifier ou provoquant une page blanche est généralement causé par une erreur PHP masquée, une mémoire insuffisante ou un cache persistant. Activez le mode debug, augmentez la mémoire à 512 Mo minimum et videz tous les caches pour résoudre le problème.
Pourquoi votre thème PrestaShop refuse de se modifier
Vous tentez de personnaliser votre thème PrestaShop — modifier un template, ajuster du CSS, importer un nouveau thème — et rien ne se passe. Pire : vous obtenez une page blanche, un back-office qui ne répond plus, ou des modifications qui semblent tout simplement ignorées.
Ce problème, extrêmement courant, a presque toujours l'une de ces trois causes : une erreur PHP silencieuse, une limite mémoire insuffisante, ou un cache qui refuse de lâcher prise. Voyons comment identifier et résoudre chacune d'entre elles.
Étape 1 : activer l'affichage des erreurs PHP
Quand PrestaShop affiche une page blanche ou un comportement anormal sans message explicite, le premier réflexe est toujours de rendre les erreurs visibles. Sans diagnostic, toute tentative de correction revient à naviguer à l'aveugle.
Sur PrestaShop 1.6
Éditez le fichier config/defines.inc.php à la racine de votre boutique :
/* Debug only */
define('_PS_MODE_DEV_', true);
Passez la valeur de false à true. Les erreurs PHP apparaîtront alors directement à l'écran.
Sur PrestaShop 1.7 et 8.x
Le mécanisme est identique, mais le fichier se trouve dans app/config/parameters.php pour certaines versions, ou toujours dans config/defines.inc.php selon votre installation :
define('_PS_MODE_DEV_', true);
Sur PrestaShop 8.x, vous pouvez également activer le mode debug Symfony dans le fichier .env :
APP_DEBUG=1
APP_ENV=dev
Important : ne laissez jamais le mode debug activé en production. Les messages d'erreur peuvent exposer des chemins serveur, des identifiants de base de données et d'autres informations sensibles.
Une fois les erreurs affichées, notez le message exact. Les erreurs les plus fréquentes lors de la modification d'un thème sont :
- `Allowed memory size of X bytes exhausted` → problème de mémoire (voir étape 2)
- `Smarty error` ou `SmartyException` → erreur de syntaxe dans un template `.tpl`
- `Class not found` → module manquant ou hook mal configuré
- `Permission denied` → droits de fichiers incorrects
Étape 2 : augmenter 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.
Étape 3 : vider tous les caches
PrestaShop utilise plusieurs couches de cache. Quand vous modifiez un fichier template ou une feuille de style, ces caches peuvent servir l'ancienne version pendant des heures, donnant l'impression que vos modifications sont ignorées.
Cache PrestaShop (Smarty)
Dans le back-office : Paramètres avancés → Performances :
- Passez la **compilation des templates** sur « Forcer la compilation » (en développement uniquement)
- Désactivez le **cache** temporairement
- Cliquez sur **Vider le cache**
- **Ctrl + Shift + R** (Windows/Linux) ou **Cmd + Shift + R** (Mac) pour un rechargement forcé
- Ou ouvrez les outils développeur (F12), onglet Network, cochez « Disable cache » pendant vos tests
- **Activer le mode debug** pour voir l'erreur exacte
- **Lire le message d'erreur** et identifier la cause
- **Augmenter la mémoire PHP** à 512 Mo minimum
- **Vider tous les caches** (Smarty, navigateur, OPcache)
- **Vérifier les permissions** sur les dossiers du thème
- **Désactiver les modules tiers** pour isoler un conflit
- **Remettre le mode debug à `false`** une fois le problème résolu
En ligne de commande ou manuellement, supprimez le contenu des dossiers :
rm -rf var/cache/prod/*
rm -rf var/cache/dev/*
Sur PrestaShop 1.6, les dossiers de cache sont différents :
rm -rf cache/smarty/compile/*
rm -rf cache/smarty/cache/*
Cache du navigateur
Le navigateur met en cache les fichiers CSS et JavaScript de manière agressive. Utilisez :
Cache serveur (OPcache)
Si votre serveur utilise OPcache (ce qui est recommandé en production), les fichiers PHP compilés sont mis en cache. Après une modification de thème :
// À exécuter une fois, puis supprimer le fichier
opcache_reset();
Ou redémarrez PHP-FPM si vous avez accès au serveur :
sudo systemctl restart php8.2-fpm
Étape 4 : vérifier les droits de fichiers
Un problème de permissions est une cause silencieuse fréquente. PrestaShop a besoin d'écrire dans certains dossiers pour compiler les templates et générer les assets.
# Droits recommandés
find /var/www/prestashop/themes/ -type d -exec chmod 755 {} \;
find /var/www/prestashop/themes/ -type f -exec chmod 644 {} \;
# Le dossier cache doit être accessible en écriture
chmod -R 775 var/cache/
chown -R www-data:www-data var/cache/
Adaptez www-data au nom d'utilisateur de votre serveur web (parfois apache, nginx ou nobody).
Étape 5 : vérifications complémentaires
Conflit de modules
Certains modules modifient les hooks ou surchargent des contrôleurs de manière incompatible avec votre thème. Désactivez temporairement les modules tiers récemment installés pour isoler un éventuel conflit.
Thème corrompu
Si le thème a été téléchargé depuis une source non officielle ou si l'archive était incomplète, réimportez-le depuis le fichier .zip original. Sur PrestaShop 8.x :
php bin/console prestashop:theme:install /chemin/vers/theme.zip
Version PHP incompatible
Chaque version de PrestaShop a des exigences PHP précises :
Un thème développé pour PHP 7 peut provoquer des erreurs fatales sur PHP 8 à cause de fonctionnalités dépréciées ou supprimées.
Résumé de la procédure de diagnostic
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.