The row layout for several images
Shopify’s documentation says to use one row per image. The first row of a product holds its details and its first image. Each extra image gets a new row that repeats the handle and adds the image URL. Older templates call the columns Image Src, Image Position and Image Alt Text; the current names are Product image URL, Image position and Image alt text.
// Handle, Title, Image Src, Image Position, Image Alt Text
black-shirt,Black Shirt,https://example.com/front.jpg,1,Front view
black-shirt,,https://example.com/back.jpg,2,Back view
black-shirt,,https://example.com/side.jpg,3,Side view
For a product with variants, the extra rows are the same variant rows you already have: they repeat the handle, skip Title, Description, Vendor and Tags, and carry the variant’s details plus an image URL. If a product has more images than variants, add rows that contain only the handle and the image URL.
Shopify’s rules for product images
- A product can have up to 250 images.
- Images are shown in ascending order of Image position, starting at 1. A position of 1 is the first image on the product page.
- Image URLs must be publicly accessible: behind
https://and with no password protection. - The image file name should be final, because it can’t be edited after the image is uploaded, and shouldn’t include suffixes such as
_thumb,_smallor_medium. - Alt text can be up to 512 characters, and Shopify suggests 125 or fewer. Good alt text also helps your SEO.
- If a message says an uploaded image exceeds the megapixel limit, reduce the image’s size and try again.
Variant images
Shopify keeps variant images in a separate column, Variant image URL (Variant Image in older templates). The product image column is not specific to variants, so a URL in the product image column won’t be attached to a variant by itself. Shopify asks you to make sure the URLs in the variant column are working image URLs. After a test import, open a variant in the admin to confirm it shows the picture you expect.
Where to host the images
- A CSV file contains text only, so every image must already be on a website. Those URLs are used during the import, and you can delete them afterwards.
- If the images are only on your computer, upload them to Content → Files in the Shopify admin, or to another image host, and use the URL that results.
- If you came from another platform, you can reuse its current image URLs. If the file is an export from Shopify, the images are already online.
- Images pulled from the Files area are downloaded again and duplicated into the products folder. Shopify says this is expected behavior.
- If you delete products or images from your store after exporting and then import the old file without updating its image URLs, the import fails.
- Product CSVs only support images. Videos and 3D models have to be uploaded in Content → Files.
Mistakes that make images disappear or reorder
- Sorting or filtering the file. Extra image rows depend on their position under the product. Shopify warns that importing a file sorted in Excel or Numbers can cause products to lose their image links and their images.
- Missing handles on extra image rows, so the image isn’t attached to any product.
- Duplicate or missing positions, which leaves the image order up to chance.
- Links that aren’t direct image URLs, such as web pages, PDFs or sharing links that need a login. See our guide to “media failed to load” errors.
- http:// links or spaces in the URL. Use https and encode spaces as
%20.
What ShopiClean’s Image Checker does here
Disclosure: ShopiClean is our own product. Everything in this guide can be done by hand in a spreadsheet; the tool simply automates the checks. The scan and the on-screen 5-row preview are free, and downloading the repaired file needs a 7-Day Pass ($9).
What it does:
- Encodes spaces in image URLs (a space becomes
%20), upgradeshttp://links tohttps://and adds a protocol to addresses that start with www. - Removes local or relative paths that Shopify can’t download, and flags links that point to non-image files such as PDFs.
- Leaves your extra image rows, positions and alt text exactly as they are.
What it does not do:
- It doesn’t open the URLs, so it can’t tell whether an image actually loads.
- It doesn’t check for duplicate or missing Image Position values, or that a variant image matches one of the product’s images.
- It doesn’t recognize Google Drive or Dropbox share links as non-direct links, so check those by hand.
Sources and how this guide was checked
The Shopify behaviors described above were checked against the Shopify Help Center pages below on 19 October 2026. Shopify can change how imports work, so if something here differs from what you see, trust Shopify’s documentation.