How to Bulk Upload Images to Shopify (Step by Step)
- Which method fits you
- The free CSV method, step by step (with a sample file)
- Apps that match images to products by SKU
- Adding images to a single product
- For developers: the Shopify API
- Common errors and how to fix them
- Image limits to know before you start
- What to do if you don't have photos yet
- FAQ
Which method fits you?
The right method depends on two things: whether you already have the image files, and how they are named.
| What you have | Best method | Cost |
|---|---|---|
| Image files, and a few hours | Shopify Files plus a product CSV | Free |
| Image files named by SKU or barcode | A bulk image app that matches files to products | Free to about $69/mo |
| Images already online (old store, supplier site) | Product CSV, or Matrixify for very large catalogs | Free to $20/mo |
| A developer on hand | Shopify Admin API | Developer time |
| No photos, branded products | Find Product Photos | Pay per photo |
The free CSV method, step by step
This uses only Shopify's own tools. It takes some spreadsheet work, but it costs nothing and handles thousands of products.
Step 1: Upload your images to Shopify Files
In your Shopify admin, go to Content > Files and click Upload files. You can select up to 200 files per upload, so a big catalog takes a few rounds. Uploading here does not attach anything to products yet. It just gives every image a permanent link on Shopify's servers, which is the most reliable kind of link for an import.
Name the files before you upload them. A file named after the product, like pepsi-regular-2l-front.jpg, is much easier to match in the next step than IMG_4821.jpg.
Step 2: Copy the links
On the Files page, each file has a link icon. Click it to copy that file's URL, and paste it into your spreadsheet next to the product it belongs to. Search the Files page by name to find each file quickly, which is where good file names pay off.
Step 3: Build the CSV
You only need five columns to add images to products that already exist. Shopify requires URL handle and Title when updating products, and the other three hold the image data.
| URL handle | Title | Product image URL | Image position | Image alt text |
|---|---|---|---|---|
| weruva-meowionaire-cat-pate-3oz | Weruva Who Wants to Be a Meowionaire Cat Pate 3 oz | https://cdn.shopify.com/.../weruva-meowionaire-front.jpg | 1 | Weruva Meowionaire cat food, 3 oz can, front |
| weruva-meowionaire-cat-pate-3oz | https://cdn.shopify.com/.../weruva-meowionaire-back.jpg | 2 | Weruva Meowionaire cat food, 3 oz can, back label | |
| pepsi-regular-2l | Pepsi Regular 2 L | https://cdn.shopify.com/.../pepsi-regular-2l.jpg | 1 | Pepsi Regular 2 liter bottle |
Download this sample CSV and replace the rows with your own products.
- One row per image. The first row for a product holds its handle, title and first image. Each extra image gets its own row with the same handle and the title left blank.
- Image position sets the order. 1 is the featured image that shows on collection pages and at checkout.
- The URL handle must match exactly. Get each product's handle from a product export (Products > Export) or from the end of the product's URL in your store.
- Image alt text is optional but worth filling in. Keep it under 125 characters.
Step 4: Test with one or two products
Before you import the whole catalog, export a backup (Products > Export, all products). Then import a CSV with just two products and check them in your admin. Shopify does not clearly document whether a re-import replaces existing images or adds to them, and store owners report duplicate files and missing images after repeated imports. A two-product test takes five minutes and shows you exactly what will happen.
Step 5: Import
Shopify downloads each image during the import and stores its own copy, so the original links do not need to stay online afterwards.
Apps that match images to products by SKU
If your image files are already named by SKU or barcode, an app saves you the spreadsheet. You point it at a folder, ZIP file, Google Drive or Dropbox, and it attaches each file to the matching product. Prices below are from the Shopify App Store in October 2026.
| App | How it works | Price | Rating |
|---|---|---|---|
| PicManager | Upload a ZIP, CSV, Drive or Dropbox folder. Matches by SKU or title. | Free up to 1,000 images per batch. $4.99/mo for more. | 4.5 (44) |
| CS Smart Bulk Image Upload | Pulls from Drive or Dropbox. Matches by SKU, barcode, title or metafield. Name files SKU_1, SKU_2 to set the order. Preview before upload. | Free for 25 images. Paid from $69/mo. | 5.0 (111) |
| Matrixify | Imports by image link, not by filename. Accepts several links per cell, converts Drive and Dropbox links, and can merge, replace or delete images. | Free for 10 products. From $20/mo. | 4.9 (1,771) |
| Easy Image Uploader | Upload a ZIP where each filename is the SKU plus a number. | $40 one-time | Few reviews |
Which to pick: PicManager if you want to start free with a folder of files. CS Smart if your files live in Drive or Dropbox and you want to preview matches. Matrixify if you already work in spreadsheets, have tens of thousands of products, or need to replace images later.
Adding images to a single product
For a handful of products, the admin is fastest. Open the product, then drag your image files onto the Media section, or click Upload new. You can also choose Select existing to use images already in Content > Files, or add one from a link. Drag the images into order; the first is the featured image. Shopify warns that cloud storage share links often fail with the add-from-link option, so download those files first.
Shopify's bulk editor (the spreadsheet view you get by selecting products and clicking Bulk edit) does not handle images, so it is not an option here.
For developers: the Shopify API
If you are writing a script, note that productCreateMedia, which most older tutorials use, is deprecated. The current flow from Shopify's developer docs:
fileCreate (for a public link) or stagedUploadsCreate (for a local file).READY.productSet or productUpdate. For variant images, use productVariantsBulkUpdate with the media ID.The app needs the write_products and write_files scopes.
Common errors and how to fix them
| Error or problem | Cause and fix |
|---|---|
| "An error occurred while trying to download the image" | There is no image at that link. Open the link in a private browser window. If you see a web page or a login screen instead of the image, the link will not work. |
| "getaddrinfo: nodename nor servname provided, or not known" | A typo in the link. Check for spaces, missing characters, or a missing https://. |
| "The uploaded image exceeds the 20 megapixel limit" | The image is too large for an import. Resize it to 4472 x 4472 px or smaller. |
| "Incorrect header check" | Shopify could not read the file at that link. Re-save the image as a normal JPEG or PNG, upload it to Shopify Files, and use that link. |
| Google Drive or Dropbox images don't import | Share links open a preview page, not the file. Upload to Shopify Files instead, or use Matrixify, which converts these links. |
| "The variant 'Default Title' already exists" | Your extra image rows repeat variant data. Leave those rows with only URL handle, Product image URL, Image position and alt text. |
| Only one image imported per product | You put several links in one cell. Shopify's CSV needs one row per image. |
| Images in the wrong order or missing after import | Sorting the sheet can separate image rows from their product. Keep each product's rows together, in position order. |
Error messages are from Shopify's common import issues page and the Shopify Community.
Image limits to know before you start
| Recommended size | 2048 x 2048 px, square |
| Max size, added in the admin | 5000 x 5000 px or 25 megapixels, under 20 MB |
| Max size, by CSV or API | 20 megapixels (4472 x 4472 px), under 20 MB |
| Media per product | 250 (images, videos and 3D models combined) |
| Files per upload on the Files page | 200 |
| CSV file size | 15 MB |
| Formats | JPEG, PNG, WebP, HEIC and GIF; TIFF, BMP and SVG are also accepted in the admin |
For more on sizes, formats and best practices, see our guide to Shopify product images.
What to do if you don't have photos yet
Every method above starts with image files you already own. If you are looking at a catalog full of empty image slots, the upload is the easy part. Getting the photos is the real job, and the answer depends on what you sell.
You sell your own products
If you make the products or sell your own private label, no photo of them exists anywhere yet. You need to photograph them, or photograph them roughly and use an AI tool to clean up the background. We compared the options in Photoroom alternatives: AI photos vs real photos.
You resell branded products
Liquor stores, pet shops, grocers, beauty and hardware retailers mostly sell products made by other brands. Those brands already photographed every product for their own websites and retailers. You do not need to take a single picture.
Find Product Photos starts from your product titles instead of a folder:
Bulk uploading images to Shopify: FAQ
Can I bulk upload images to Shopify from my computer?
Not directly through a product CSV, because the CSV only accepts image links. Upload the files to Content > Files first (up to 200 at a time), copy each file's link, then use those links in the CSV. Or use an app that matches files on your computer to products by SKU.
How do I add multiple images to one product with a CSV?
Use one row per image. The first row has the product's URL handle, title and first image. Each extra row has the same URL handle, the next image link in Product image URL, and the next number in Image position.
What is the Image Src column in Shopify?
It is the old name for the Product image URL column. Shopify renamed its CSV columns, and older guides still use Image Src. Shopify says it keeps backward compatibility with older column names, but the current template uses Product image URL.
Why didn't my Google Drive or Dropbox images import?
Share links from Google Drive and Dropbox open a web page, not the image file, so Shopify cannot download them. Upload the images to Shopify's Files page and use those links, or use an app like Matrixify that converts share links for you.
Can Shopify's bulk editor add images?
No. Shopify's bulk editor documentation does not list images as an editable field. Use a CSV import, an app, or the API instead.
Does re-importing a CSV replace my existing images?
Shopify does not document this clearly, and store owners report duplicated files and missing images after re-imports. Export a backup first and test the import on one or two products before running the whole catalog.
How many images can a Shopify product have?
Up to 250 media items per product, counting images, videos and 3D models together.
How do I bulk upload images if I don't have any photos yet?
If you sell your own products, you need to photograph them or create images with an AI photo tool. If you resell branded products, the brand's photos already exist online, and Find Product Photos can find them from your product titles and upload them for you.
Reselling branded products? Skip the folder.
Get the real photos for your catalog from just the product titles. Free to install, with 15 free searches to start.
Add Find Product Photos to Shopify