I am workin in a magento 2.4 with luma as a vendor so the list.phtml come directly untouched from the core of magento.

I can see the images in the admin and in the product view gallery but at the product list I only see the placeholder this happend with all products imported and new and all images work fine at the admin and product view.

If i change the view.xml of the vendors luma template I can see the change of the paceholder type.

Thing that I already try:

  • run php bin/magento catalog:image:resize (Product images resized successfully)
  • clean all type of caches
  • give 777 to pub to be sure that the rezize has access to the folder.
  • check that all folders have the apache user.
  • check the cache folder and i can see the image it is there.
  • check that the .htaccess it is not afecting the image (also the placeholder it is showing)
  • change the list.phtm to be sure that the listing it is comming from the magento core file
  • check the small_image attribute in the admin and db
  • check logs to see if when i crete a new product with images give any error (nothing found)
  • check the product attribute in the database to see if it has the path to the file in the catalog.
  • try using flat catalog product.
  • try using small images
  • check the different scopes editing the product to be sure that all images are selected for the image.
  • change the small_image to Global

I am a developer mode and after each change I clear the cache and some times reindex and rezize all over again.

My asumtions are that it is nothing bad with the php server configuration or .htaccess because the placeholder image it is showing and also the image at the product view.

I also know that when at list.phtml magento do:

$productImage = $block->getImage($_product, $imageDisplayArea);

The problem already happend and it gets the placeholder.

I getting crazy with this problem that I had in the past but usualy was prmitions or after import a need for rezize.

Any ideas welcome...

1 Answer 1


The small_image attribute it is set to be visible in the product list.

Some core product attributes like the default images dosn't have the option of used_in_product_listing because Magento hide this options from the admin to avoid misconfigurations.

It can happend that in some migration process all or some product attributes are change by a silly script.

You will need to go directly to the database and change the 'used_in_product_listing' of the image you want to show in the product listing.

Go to the db and get the attribute_id

SELECT * FROM eav_attribute WHERE `attribute_code` LIKE '%image%'

probably it is 88

Then got to catalog_eav_attribute and chenge the column used_in_product_listing to 1

SELECT * from catalog_eav_attribute WHERE attribute_id = 88;

Hope that helps someone...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.