{"id":657,"date":"2023-05-24T20:32:57","date_gmt":"2023-05-24T17:32:57","guid":{"rendered":"https:\/\/presta.site\/blog\/?p=657"},"modified":"2026-07-21T21:44:23","modified_gmt":"2026-07-21T18:44:23","slug":"what-to-do-if-images-are-not-displaying-in-your-prestashop-store","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/en\/what-to-do-if-images-are-not-displaying-in-your-prestashop-store\/","title":{"rendered":"PrestaShop Images Not Displaying: Easy Fixes for 8 Common Causes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When <strong>PrestaShop images not displaying<\/strong> on product pages, categories, or the home page, shoppers see broken icons instead of your catalog. The files are usually still on the server &#8211; PrestaShop just cannot serve the right path, size, or rewrite rule. This guide walks through how images are stored, eight common causes, and the fixes that clear most cases without a full reinstall.<\/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=\"PrestaShop images not displaying - product thumbnails missing on the storefront\" 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<p class=\"wp-block-paragraph\">PrestaShop keeps originals and generated sizes under the shop root <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> folder. Knowing which directory holds which assets saves time when you are hunting a missing file:<\/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; product images. Uploads are split into nested folders (for example <code class=\"codecolorer text default\"><span class=\"text\">\/img\/p\/1\/2\/12.jpg<\/span><\/code> for product ID 12). PrestaShop also builds thumbnail variants for listing grids, carts, and the product page.<\/li>\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">\/img\/c\/<\/span><\/code><\/strong> &#8211; category images, with their own thumbnail sizes.<\/li>\n<li><strong><code class=\"codecolorer text default\"><span class=\"text\">\/img\/cms\/<\/span><\/code><\/strong> &#8211; images used in CMS pages. These usually skip the product-style thumbnail pipeline, so regenerating product thumbnails will not repair a broken CMS media path.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If the storefront URL for an image 404s while the file exists on disk, look at permissions, <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> \/ Nginx rewrites, and thumbnail types before you re-upload every photo. Friendly URL problems often sit next to image path failures &#8211; see <a href=\"https:\/\/presta.site\/blog\/en\/solving-prestashop-seo-url-rewriting-problems\/\">solving PrestaShop SEO URL rewriting problems<\/a> when product links and media URLs break together.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common causes when PrestaShop images not displaying<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Wrong file permissions<\/strong> &#8211; the web server cannot read files under <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code>.<\/li>\n<li><strong>Broken or incomplete <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code><\/strong> &#8211; especially after a move, HTTPS switch, or manual edit.<\/li>\n<li><strong>Image type settings<\/strong> &#8211; missing or zero-size formats in Design \u2192 Image Settings.<\/li>\n<li><strong>Interrupted thumbnail regeneration<\/strong> &#8211; some sizes never finished writing.<\/li>\n<li><strong>Image-related modules<\/strong> &#8211; lazy load, CDN, watermark, or optimizer modules failing.<\/li>\n<li><strong>Stale cache<\/strong> &#8211; PrestaShop cache, a cache module, or the browser still serving old URLs.<\/li>\n<li><strong>Post-upgrade gaps<\/strong> &#8211; theme or core update expects new image types that were never generated.<\/li>\n<li><strong>Nginx rewrite gaps<\/strong> &#8211; Apache-style rules from PrestaShop do not apply; image routes need server config.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Mixed content after forcing HTTPS is another frequent culprit: the page loads over <code class=\"codecolorer text default\"><span class=\"text\">https:\/\/<\/span><\/code> while image tags still point at <code class=\"codecolorer text default\"><span class=\"text\">http:\/\/<\/span><\/code>, so modern browsers block them. Confirm shop and media URLs use HTTPS in Shop Parameters \u2192 Traffic &amp; SEO (and in any CDN module).<\/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=\"PrestaShop Design Image Settings where you regenerate thumbnails\" 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\">How to fix PrestaShop images not displaying<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Fix permissions on <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code><\/strong> &#8211; via FTP or the host file manager, directories are usually <strong>755<\/strong> and files <strong>644<\/strong>. Try <strong>775 \/ 664<\/strong> only if your host requires group write. Avoid <strong>777 \/ 666<\/strong> except as a short test, then lock permissions back down.<\/li>\n<li><strong>Regenerate <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code><\/strong> &#8211; in the Back Office open Shop Parameters \u2192 Traffic &amp; SEO (SEO &amp; URLs on older versions), save Friendly URL settings so PrestaShop rewrites the root <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code>. Then re-check a product image URL in a private browser window.<\/li>\n<li><strong>Review image types and regenerate thumbnails<\/strong> &#8211; go to Design \u2192 Image Settings. Confirm each format used by your theme has sensible width\/height. Run <strong>Regenerate thumbnails<\/strong>. This step alone fixes a large share of \u201cbroken thumbnail\u201d cases.<\/li>\n<li><strong>Resume a stuck regeneration<\/strong> &#8211; if the progress bar stopped mid-run, submit the form again with <strong>Erase previous images<\/strong> unchecked so PrestaShop continues instead of wiping finished sizes and starting from zero.<\/li>\n<li><strong>Isolate image modules<\/strong> &#8211; disable recent lazy-load, WebP, CDN, or watermark modules, clear cache, and retest. Re-enable one at a time to find the offender.<\/li>\n<li><strong>Clear caches<\/strong> &#8211; Advanced Parameters \u2192 Performance \u2192 clear cache. Flush any cache\/CDN module. Hard-refresh or clear the browser cache so you are not looking at an old broken URL.<\/li>\n<li><strong>After an upgrade<\/strong> &#8211; clear cache, regenerate thumbnails, and confirm the active theme\u2019s required image types still exist in Image Settings. A theme update that adds a new format will show empty slots until that type is generated.<\/li>\n<li><strong>Nginx<\/strong> &#8211; PrestaShop cannot write Nginx config for you. Ask the host (or your sysadmin) to map image and legacy rewrite rules correctly; compare against a known-good PrestaShop Nginx snippet for your major version.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If the Back Office itself whitescreens while you work through these steps, treat that as a separate PHP\/error-log problem first &#8211; start with the <a href=\"https:\/\/presta.site\/blog\/en\/white-screen-of-death-in-prestashop-a-step-by-step-guide\/\">white screen of death troubleshooting guide<\/a>, then return to image regeneration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Still empty after permissions, rewrites, regeneration, modules, and cache? Restore <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> (and matching database image rows if needed) from a known-good <strong>backup<\/strong>. Re-uploading hundreds of products by hand is slower and easy to mismatch against combination images.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Keep images working after the fix<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Back up regularly<\/strong> &#8211; include the full <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> tree and the database, not only PHP files.<\/li>\n<li><strong>Test on staging<\/strong> &#8211; try theme switches, image optimizer modules, and major upgrades on a copy before the live shop.<\/li>\n<li><strong>Spot-check after big changes<\/strong> &#8211; after each upgrade or CDN change, open one category listing and one product page on mobile and desktop and confirm thumbnails and zoom images load.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Most \u201cPrestaShop images not displaying\u201d tickets end with readable <code class=\"codecolorer text default\"><span class=\"text\">\/img\/<\/span><\/code> permissions, a fresh <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> (or correct Nginx map), and a completed thumbnail regeneration with erase disabled on retry. Work those three before you rebuild the catalog.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>When PrestaShop images not displaying on the storefront, fix permissions, rewrites, and thumbnail regeneration before re-uploading your catalog.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-657","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/657","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=657"}],"version-history":[{"count":13,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/657\/revisions"}],"predecessor-version":[{"id":1908,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/657\/revisions\/1908"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}