{"id":914,"date":"2023-05-24T20:32:57","date_gmt":"2023-05-24T17:32:57","guid":{"rendered":"https:\/\/presta.site\/blog\/?p=914"},"modified":"2026-07-22T08:38:27","modified_gmt":"2026-07-22T05:38:27","slug":"que-faire-si-les-images-ne-saffichent-pas-dans-votre-boutique-prestashop","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/fr\/que-faire-si-les-images-ne-saffichent-pas-dans-votre-boutique-prestashop\/","title":{"rendered":"Images PrestaShop non affich\u00e9es : corrections faciles pour 10 causes courantes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Quand les <strong>images prestashop non affich\u00e9es<\/strong> apparaissent sur les fiches produit, les cat\u00e9gories ou la page d&#8217;accueil, les visiteurs voient des ic\u00f4nes cass\u00e9es \u00e0 la place de votre catalogue. Les fichiers sont g\u00e9n\u00e9ralement toujours sur le serveur &#8211; PrestaShop ne parvient simplement pas \u00e0 servir le bon chemin, la bonne taille ou la bonne r\u00e8gle de r\u00e9\u00e9criture. Ce guide vous accompagne \u00e0 travers un diagnostic rapide, le stockage des images, les causes courantes et les corrections qui r\u00e8glent la plupart des cas sans r\u00e9installation compl\u00e8te.<\/p>\n\n\n<!--more-->\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_3-1-1024x516.png\" alt=\"Images prestashop non affich\u00e9es - miniatures produit absentes sur la boutique\" class=\"wp-image-666\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_3-1-1024x516.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_3-1-300x151.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_3-1-768x387.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_3-1.png 1400w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Diagnostic en premier (deux minutes)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Avant de toucher aux permissions ou de tout r\u00e9g\u00e9n\u00e9rer, identifiez <em>comment<\/em> les images prestashop non affich\u00e9es \u00e9chouent r\u00e9ellement dans le navigateur :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ouvrez l&#8217;URL de l&#8217;image seule<\/strong> &#8211; clic droit sur une image cass\u00e9e \u2192 Ouvrir l&#8217;image dans un nouvel onglet. Notez le statut : <strong>404<\/strong> (fichier ou r\u00e9\u00e9criture manquant), <strong>403<\/strong> (permissions \/ r\u00e8gles anti-hotlink), ou l&#8217;image se charge alors que la page reste cass\u00e9e (th\u00e8me ou module de lazy-load).<\/li>\n<li><strong>V\u00e9rifiez la console du navigateur<\/strong> &#8211; les avertissements de contenu mixte signifient que la page est en <code class=\"codecolorer text default\"><span class=\"text\">https:\/\/<\/span><\/code> mais que le <code class=\"codecolorer text default\"><span class=\"text\">src<\/span><\/code> est encore en <code class=\"codecolorer text default\"><span class=\"text\">http:\/\/<\/span><\/code>.<\/li>\n<li><strong>Comparez le Back Office et la boutique<\/strong> &#8211; si le formulaire produit affiche la photo mais la boutique est vide, les miniatures, les r\u00e9\u00e9critures Friendly URL ou le domaine boutique sont les suspects habituels. Si les deux c\u00f4t\u00e9s sont vides, cherchez un fichier manquant sur le disque ou une ligne en base sans fichier correspondant.<\/li>\n<li><strong>Basculez Friendly URL une fois<\/strong> &#8211; Param\u00e8tres de la boutique \u2192 Trafic et SEO. Si les images n&#8217;apparaissent qu&#8217;avec Friendly URL d\u00e9sactiv\u00e9, corrigez <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> \/ les r\u00e8gles Nginx pour les images avant de r\u00e9g\u00e9n\u00e9rer tout le catalogue.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">PrestaShop conserve les originaux et les tailles g\u00e9n\u00e9r\u00e9es dans le dossier <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> \u00e0 la racine de la boutique. Savoir quel r\u00e9pertoire contient quels fichiers fait gagner du temps quand vous cherchez un fichier manquant :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">\/img\/p\/<\/span><\/code><\/strong> &#8211; images produit. Les uploads sont r\u00e9partis dans des dossiers imbriqu\u00e9s (par exemple <code class=\"codecolorer text default\"><span class=\"text\">\/img\/p\/1\/2\/12.jpg<\/span><\/code> pour le produit ID 12). PrestaShop g\u00e9n\u00e8re aussi des variantes miniatures pour les grilles, les paniers et la fiche produit.<\/li>\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">\/img\/c\/<\/span><\/code><\/strong> &#8211; images cat\u00e9gorie, avec leurs propres tailles de miniatures.<\/li>\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">\/img\/cms\/<\/span><\/code><\/strong> &#8211; images utilis\u00e9es dans les pages CMS. Elles contournent en g\u00e9n\u00e9ral le pipeline de miniatures produit, donc r\u00e9g\u00e9n\u00e9rer les miniatures produit ne r\u00e9parera pas un chemin m\u00e9dia CMS cass\u00e9.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si l&#8217;URL boutique d&#8217;une image renvoie une 404 alors que le fichier existe sur le disque, examinez les permissions, les r\u00e9\u00e9critures <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> \/ Nginx et les types d&#8217;image avant de r\u00e9-uploader chaque photo. Les probl\u00e8mes Friendly URL se trouvent souvent \u00e0 c\u00f4t\u00e9 des \u00e9checs de chemin d&#8217;image &#8211; consultez <a href=\"https:\/\/presta.site\/blog\/fr\/resoudre-les-problemes-de-reecriture-durl-seo-dans-prestashop\/\">r\u00e9soudre les probl\u00e8mes de r\u00e9\u00e9criture d&#8217;URL SEO dans PrestaShop<\/a> quand les liens produit et les URL m\u00e9dia cassent ensemble.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Causes courantes des images prestashop non affich\u00e9es<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Mauvaises permissions de fichiers<\/strong> &#8211; le serveur web ne peut pas lire (ou \u00e9crire) les fichiers sous <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code>.<\/li>\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> cass\u00e9 ou incomplet<\/strong> &#8211; surtout apr\u00e8s un d\u00e9placement, un passage HTTPS ou une modification manuelle.<\/li>\n<li><strong>Mauvais domaine boutique, domaine SSL ou URI de base<\/strong> &#8211; apr\u00e8s une migration, les URL d&#8217;images pointent encore vers l&#8217;ancien h\u00f4te ou dossier.<\/li>\n<li><strong>Param\u00e8tres de types d&#8217;image<\/strong> &#8211; formats manquants ou de taille z\u00e9ro dans Design \u2192 Param\u00e8tres des images.<\/li>\n<li><strong>R\u00e9g\u00e9n\u00e9ration de miniatures interrompue<\/strong> &#8211; certaines tailles n&#8217;ont jamais fini d&#8217;\u00eatre \u00e9crites.<\/li>\n<li><strong>Biblioth\u00e8que d&#8217;images PHP manquante<\/strong> &#8211; GD ou Imagick non install\u00e9, donc la r\u00e9g\u00e9n\u00e9ration ne peut pas cr\u00e9er de fichiers.<\/li>\n<li><strong>Modules li\u00e9s aux images<\/strong> &#8211; lazy load, CDN, filigrane ou optimiseur qui \u00e9chouent.<\/li>\n<li><strong>Cache obsol\u00e8te<\/strong> &#8211; cache PrestaShop, module de cache ou navigateur qui sert encore d&#8217;anciennes URL.<\/li>\n<li><strong>Incoh\u00e9rence post-mise \u00e0 jour ou syst\u00e8me de fichiers<\/strong> &#8211; le th\u00e8me attend de nouveaux types d&#8217;image, ou ancien vs nouveau layout <code class=\"codecolorer text default\"><span class=\"text\">\/img\/p\/<\/span><\/code> apr\u00e8s migration d&#8217;une vieille boutique.<\/li>\n<li><strong>Lacunes de r\u00e9\u00e9criture Nginx<\/strong> &#8211; les r\u00e8gles style Apache de PrestaShop ne s&#8217;appliquent pas ; les routes image n\u00e9cessitent une config serveur.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Le contenu mixte apr\u00e8s for\u00e7age HTTPS est un autre coupable fr\u00e9quent : la page charge en <code class=\"codecolorer text default\"><span class=\"text\">https:\/\/<\/span><\/code> tandis que les balises image pointent encore vers <code class=\"codecolorer text default\"><span class=\"text\">http:\/\/<\/span><\/code>, donc les navigateurs modernes les bloquent. Confirmez que les URL boutique et m\u00e9dia utilisent HTTPS dans Param\u00e8tres de la boutique \u2192 Trafic et SEO (et dans tout module CDN).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"269\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_4-1024x269.png\" alt=\"Param\u00e8tres des images PrestaShop o\u00f9 r\u00e9g\u00e9n\u00e9rer les miniatures\" class=\"wp-image-667\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_4-1024x269.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_4-300x79.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_4-768x202.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_4.png 1400w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Comment corriger les images prestashop non affich\u00e9es<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Corrigez les permissions sur <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code><\/strong> &#8211; via FTP ou le gestionnaire de fichiers de l&#8217;h\u00e9bergeur, les r\u00e9pertoires sont en g\u00e9n\u00e9ral en <strong>755<\/strong> et les fichiers en <strong>644<\/strong>. Essayez <strong>775 \/ 664<\/strong> seulement si votre h\u00e9bergeur exige l&#8217;\u00e9criture de groupe. \u00c9vitez <strong>777 \/ 666<\/strong> sauf en test court, puis resserrez les permissions. L&#8217;utilisateur web doit aussi pouvoir <em>\u00e9crire<\/em> ici, sinon la r\u00e9g\u00e9n\u00e9ration des miniatures \u00e9chouera silencieusement.<\/li>\n<li><strong>Corrigez l&#8217;URL boutique apr\u00e8s un d\u00e9placement<\/strong> &#8211; dans Param\u00e8tres de la boutique \u2192 Trafic et SEO, d\u00e9finissez <strong>Domaine de la boutique<\/strong>, <strong>Domaine SSL<\/strong> et <strong>URI de base<\/strong> sur l&#8217;h\u00f4te en production (y compris le sous-r\u00e9pertoire si la boutique n&#8217;est pas \u00e0 la racine du domaine). Enregistrez pour que PrestaShop r\u00e9\u00e9crive <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code>. Les mauvais domaines sont une cause majeure d&#8217;images prestashop non affich\u00e9es juste apr\u00e8s migration. Si les attributs <code class=\"codecolorer text default\"><span class=\"text\">src<\/span><\/code> des images montrent encore l&#8217;ancien h\u00f4te, videz le cache et v\u00e9rifiez les param\u00e8tres CDN ensuite.<\/li>\n<li><strong>R\u00e9g\u00e9n\u00e9rez <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code><\/strong> &#8211; sur le m\u00eame \u00e9cran SEO et URL, enregistrez les param\u00e8tres Friendly URL pour que le <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> racine soit reconstruit. Rev\u00e9rifiez une URL d&#8217;image produit dans une fen\u00eatre de navigation priv\u00e9e.<\/li>\n<li><strong>Confirmez GD ou Imagick<\/strong> &#8211; PrestaShop a besoin d&#8217;une extension PHP image pour redimensionner les uploads. Sur le serveur, v\u00e9rifiez que <a href=\"https:\/\/www.php.net\/manual\/en\/book.image.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP GD<\/a> (ou Imagick) est activ\u00e9 pour la m\u00eame version PHP que la boutique. Sans cela, Design \u2192 Param\u00e8tres des images peut sembler correct alors qu&#8217;aucune nouvelle miniature n&#8217;appara\u00eet sur le disque.<\/li>\n<li><strong>Revoyez les types d&#8217;image et r\u00e9g\u00e9n\u00e9rez les miniatures<\/strong> &#8211; allez dans Design \u2192 Param\u00e8tres des images. Confirmez que chaque format utilis\u00e9 par votre th\u00e8me a des largeur\/hauteur sens\u00e9es. Lancez <strong>R\u00e9g\u00e9n\u00e9rer les miniatures<\/strong>. Les notes de mise \u00e0 jour officielles le rappellent aussi quand les images disparaissent apr\u00e8s un saut de version &#8211; voir la <a href=\"https:\/\/devdocs.prestashop-project.org\/9\/basics\/keeping-up-to-date\/update\/post-update-checklist\/\" target=\"_blank\" rel=\"noopener noreferrer\">checklist post-mise \u00e0 jour<\/a> PrestaShop. Cette \u00e9tape seule r\u00e8gle une grande part des cas de \u00ab miniatures cass\u00e9es \u00bb.<\/li>\n<li><strong>Reprenez une r\u00e9g\u00e9n\u00e9ration bloqu\u00e9e<\/strong> &#8211; si la barre de progression s&#8217;est arr\u00eat\u00e9e en cours de route, soumettez \u00e0 nouveau le formulaire avec <strong>Effacer les images pr\u00e9c\u00e9dentes<\/strong> d\u00e9coch\u00e9 pour que PrestaShop continue au lieu d&#8217;effacer les tailles termin\u00e9es et de repartir de z\u00e9ro. Sur les grands catalogues, r\u00e9g\u00e9n\u00e9rez un type d&#8217;image \u00e0 la fois pour qu&#8217;un timeout ne masque pas l&#8217;endroit de l&#8217;\u00e9chec.<\/li>\n<li><strong>Ancien vs nouveau chemins d&#8217;images produit<\/strong> &#8211; les boutiques migr\u00e9es depuis de tr\u00e8s vieilles versions PrestaShop stockent parfois encore les fichiers en layout plat alors que la boutique actuelle attend des dossiers imbriqu\u00e9s sous <code class=\"codecolorer text default\"><span class=\"text\">\/img\/p\/<\/span><\/code> (ou l&#8217;inverse). Dans Param\u00e8tres des images, utilisez l&#8217;option pour d\u00e9placer les images vers le nouveau syst\u00e8me de fichiers quand cela correspond \u00e0 vos donn\u00e9es &#8211; puis r\u00e9g\u00e9n\u00e9rez. Ne basculez pas cette option \u00e0 l&#8217;aveugle sur une boutique en production sans sauvegarde.<\/li>\n<li><strong>Isolez les modules image<\/strong> &#8211; d\u00e9sactivez les modules r\u00e9cents de lazy load, WebP, CDN ou filigrane, videz le cache et retestez. R\u00e9activez-les un par un pour trouver le coupable.<\/li>\n<li><strong>Videz les caches<\/strong> &#8211; Param\u00e8tres avanc\u00e9s \u2192 Performances \u2192 vider le cache. Purgez tout module cache\/CDN. Rafra\u00eechissez en force ou videz le cache navigateur pour ne pas regarder une ancienne URL cass\u00e9e.<\/li>\n<li><strong>Apr\u00e8s une mise \u00e0 jour<\/strong> &#8211; videz le cache, r\u00e9g\u00e9n\u00e9rez les miniatures et confirmez que les types d&#8217;image requis par le th\u00e8me actif existent encore dans Param\u00e8tres des images. Une mise \u00e0 jour de th\u00e8me qui ajoute un nouveau format affichera des emplacements vides jusqu&#8217;\u00e0 g\u00e9n\u00e9ration de ce type.<\/li>\n<li><strong>Nginx<\/strong> &#8211; PrestaShop ne peut pas \u00e9crire la config Nginx pour vous. Demandez \u00e0 l&#8217;h\u00e9bergeur (ou votre sysadmin) de mapper correctement les r\u00e8gles image et r\u00e9\u00e9critures legacy ; comparez avec un extrait Nginx PrestaShop connu comme bon pour votre version majeure.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Si le Back Office lui-m\u00eame affiche un \u00e9cran blanc pendant que vous suivez ces \u00e9tapes, traitez d&#8217;abord cela comme un probl\u00e8me PHP\/journal d&#8217;erreurs s\u00e9par\u00e9 &#8211; commencez par le <a href=\"https:\/\/presta.site\/blog\/fr\/ecran-blanc-de-la-mort-dans-prestashop-un-guide-etape-par-etape\/\">guide de d\u00e9pannage de l&#8217;\u00e9cran blanc de la mort<\/a>, puis revenez \u00e0 la r\u00e9g\u00e9n\u00e9ration des images.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous voyez encore des images prestashop non affich\u00e9es apr\u00e8s permissions, v\u00e9rifications domaine\/URL, r\u00e9\u00e9critures, r\u00e9g\u00e9n\u00e9ration, modules et cache ? Restaurez <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> (et les lignes image correspondantes en base si besoin) depuis une <strong>sauvegarde<\/strong> connue comme bonne. R\u00e9-uploader des centaines de produits \u00e0 la main est plus lent et facile \u00e0 d\u00e9synchroniser avec les images de d\u00e9clinaisons.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maintenir les images fonctionnelles apr\u00e8s la correction<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Sauvegardez r\u00e9guli\u00e8rement<\/strong> &#8211; incluez l&#8217;arborescence compl\u00e8te <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> et la base de donn\u00e9es, pas seulement les fichiers PHP.<\/li>\n<li><strong>Testez en pr\u00e9production<\/strong> &#8211; essayez les changements de th\u00e8me, modules optimiseur d&#8217;image et mises \u00e0 jour majeures sur une copie avant la boutique en ligne.<\/li>\n<li><strong>Contr\u00f4lez apr\u00e8s les gros changements<\/strong> &#8211; apr\u00e8s chaque mise \u00e0 jour, migration ou changement CDN, ouvrez une liste cat\u00e9gorie et une fiche produit sur mobile et bureau. Confirmez que miniatures et images zoom chargent pour rep\u00e9rer les images prestashop non affich\u00e9es avant les clients.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La plupart des tickets \u00ab images prestashop non affich\u00e9es \u00bb se terminent avec un domaine boutique correct, des permissions <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> lisibles, un <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> frais (ou une bonne map Nginx), GD\/Imagick op\u00e9rationnels et une r\u00e9g\u00e9n\u00e9ration de miniatures termin\u00e9e avec effacement d\u00e9sactiv\u00e9 au nouvel essai. Travaillez ces points avant de reconstruire le catalogue.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Quand les images prestashop non affich\u00e9es apparaissent sur la boutique, diagnostiquez d&#8217;abord l&#8217;URL de l&#8217;image, puis corrigez le domaine, les permissions, GD\/Imagick, les r\u00e9\u00e9critures et la r\u00e9g\u00e9n\u00e9ration des miniatures.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87],"tags":[],"class_list":["post-914","post","type-post","status-publish","format-standard","hentry","category-developpement"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=914"}],"version-history":[{"count":2,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/914\/revisions"}],"predecessor-version":[{"id":1927,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/914\/revisions\/1927"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}