Shopify CSV import not importing images: what to check
When you import products with a CSV file, Shopify downloads each image from the URL in your file and uploads it to your store. If a product arrives without its pictures, that download failed or the rows were laid out in a way Shopify didn't read as images. Check the URL first, then the row layout.
1. The URL must be a public image address
Shopify's rules for image URLs:
- The image must be on an existing website and publicly accessible.
- Use an https:// address with no password protection.
- The URL must point to a working image file. Open each in a private window to test.
- Only images can be imported this way. 3D models and videos can't.
- Each product can have up to 250 images.
A link to a web page that contains the picture is not an image URL. Neither is a link that needs you to be logged in.
2. The file must meet the image limits
Images over 5000 x 5000 px (25 megapixels) or 20 MB can't be attached. See the 25 megapixel limit.
3. One row per image
For a simple product, put all the product fields and the first image URL in the first row. For each extra image, add a row with only the handle and the image URL. The Image Position column sets the order, in ascending order starting at 1.
For products with variants, put the product fields and first image in the first row. In later rows, enter the handle, the variant details, and image URLs, and leave the Title, Description, Vendor and Tags columns blank. Variant images use their own image column.
4. Matching handles and overwriting
If a product with the same handle already exists, it is ignored unless you tick Overwrite products with matching handles. If you do overwrite, a blank column replaces the existing value with blank, while a column missing from the file leaves the existing value alone. Missing columns that others depend on can delete data, so import a small test file first.
5. Old exports with deleted images
If you delete products or images after exporting and then import without updating the image URLs, the import fails.
6. Files from your own Files area
If an image URL points to a file in Content > Files, Shopify downloads it again and duplicates it: the original stays in the files area and the copy is placed with the product. That is expected.
7. Encoding and names
Save the CSV in UTF-8 with LF line endings. The image file name is final once uploaded, so get it right in the URL, and don't add suffixes such as _thumb, _small or _medium.
After the import
Open a few of the imported products and confirm that every picture loads. The URLs in the file can be deleted once the import is complete. If you also have older pictures that were pasted into descriptions, see supplier images broken.