How to Bulk Upload Product Images into Shopify

multiple image files being dragged into a Shopify upload area

Bulk uploading product images into Shopify is one of those tasks that sounds simple until you actually try it with 200+ products. Shopify’s admin handles single-product uploads fine. Drag a few images, hit save, move on. But when you have a folder of 500 photos from a product shoot and you need them attached to the right products by tomorrow morning? The admin is going to make you hate your life. I have been through this exact situation with merchants running catalogs from 50 products to 5,000, and the method you pick depends entirely on your catalog size, how your files are named, and how much of this you want to automate.

This guide covers four methods, from fully manual to fully automated. Pick the one that fits your situation.

In this post

Method 1: Shopify admin (manual drag and drop)

The default approach. Open a product in the Shopify admin, scroll to the Media section, drag images in from your computer, save. Repeat for every product.

This works when you have fewer than 20 products to update. Beyond that, the time cost becomes painful. Each product takes 1-3 minutes depending on how many images you are adding and how fast your internet connection uploads them. For 100 products with 5 images each, budget 3-5 hours of tedious clicking.

The admin does support multi-select inside a single product. So you can select 10 images at once and drop them all onto one product. But you still have to open each product individually. There is no way to drag images across multiple products in one operation from the admin.

Best for: Stores with under 20 products or one-off image updates to specific products.

Worst for: Anything involving more than 50 products. You will lose your mind, kinda guaranteed.

Method 2: CSV import with image URLs

Shopify’s product CSV has an “Image Src” column where you can paste a publicly accessible URL for each product image. When you import the CSV, Shopify downloads the image from that URL and attaches it to the product.

Sounds great in theory. In practice, there are catches.

First, the images need to already exist somewhere with a public URL. That means you have to upload them to a CDN, an S3 bucket, Dropbox (with direct links, not shared folder links), or another hosting service first. You cannot use local file paths in the CSV. So you are uploading the images twice: once to the hosting service, and once when Shopify pulls them in from the CSV.

Second, the CSV import is all-or-nothing for a product row. If the image URL is broken or returns a 404, that product’s image just silently fails. No error message. No retry. You find out when you check the product page and the image is missing. Annoying.

Third, you need to structure the CSV correctly. Each image gets its own row with the product handle in the first column. Multiple images for one product means multiple rows with the same handle. If you mess up the handle column, images end up on the wrong products.

Our Product CSV Generator helps build correctly formatted CSV files with the right column structure. And you can validate your file with the CSV Validator before importing to catch errors that would otherwise fail silently.

Best for: Migrations from other platforms where you already have image URLs. Product imports where images are hosted externally.

Worst for: Stores where images live on a local computer and have no public URL. The extra hosting step adds friction and cost.

Method 3: Bulk image upload app (SKU matching)

This is the method that actually works for large catalogs. A bulk image upload app lets you drag hundreds of images into a single interface. The app reads the filenames, matches them to product SKUs in your Shopify catalog, and uploads them to the correct products automatically.

CS Smart Bulk Image Upload handles this workflow. Drop 500 images, the app matches SKU-001-01.jpg to the product with SKU SKU-001, and attaches the image. Progress tracking shows you what matched and what did not. Failed matches are flagged so you can fix the filename or manually assign the image.

The big advantage over the CSV method: no intermediate hosting step. Images go straight from your computer (or Google Drive) into Shopify. No S3 buckets, no CDN, no public URLs. Just files and SKUs.

For context: uploading 1,000+ images through the Shopify admin one product at a time takes the better part of a week. With SKU-named files and a bulk upload app, the same batch takes about an hour. The time savings scale with catalog size, and if your photographer names files by SKU (rare, but wonderful when it happens), the process is almost entirely hands-off.

For a full comparison of bulk image upload apps, see our best bulk image upload app comparison.

Best for: Stores with 50+ products and images named by SKU. Catalog reshoots, seasonal updates, new product launches with large image batches.

Worst for: Stores with no SKU system. If your images are named IMG_4521.jpg, no app can match them automatically. Fix your filenames first.

Method 4: Google Drive import

If your product photos live in Google Drive (common when photographers share folders), CS Smart Bulk Image Upload can pull images directly from a Drive folder. Connect your Google account, select the folder, and the app imports and matches images by filename just like the drag-and-drop method.

This skips the download-then-reupload cycle. The images go from Drive to Shopify without ever touching your local machine. For teams where the photographer uploads to a shared Drive folder and the store owner imports from there, this is the cleanest workflow.

Best for: Teams using Google Drive for product photography handoff. Remote workflows where downloading files locally is inconvenient.

Worst for: Images stored in Dropbox, OneDrive, or other non-Google services (not currently supported for direct import).

Which method should you use?

Here is a quick decision table based on catalog size and file setup.

ScenarioBest methodWhy
Under 20 products, one-off updateShopify adminFastest for small batches, no app needed
Migration with existing image URLsCSV importURLs are already available, no re-hosting needed
50-500 products, SKU-named filesBulk upload appAutomatic matching saves hours
500+ products, Drive-based workflowGoogle Drive importNo local download step, direct Drive-to-Shopify
Messy filenames, no SKU systemFix filenames first, then use appNo method works well with random filenames

The filename convention that saves hours

Every bulk upload method works better when your filenames follow a pattern. The pattern that works best for Shopify stores is simple: SKU-sequencenumber.jpg.

Examples: TSHIRT-BLK-L-01.jpg, TSHIRT-BLK-L-02.jpg, TSHIRT-BLK-L-03.jpg. The SKU portion (TSHIRT-BLK-L) matches the product. The sequence number (01, 02, 03) determines gallery order.

If you do not have a SKU system yet, build one before your next photo shoot. Seriously. Our SKU Generator creates consistent patterns in minutes. A good SKU encodes category, color, size, and a unique identifier. That same SKU then drives your bulk upload, your inventory tracking, your order fulfillment, and your supplier communication. One naming system, four workflows.

Also rename your image files to be SEO-friendly. navy-blue-cotton-tshirt-front.jpg is better for image search than IMG_3847.jpg. Our Bulk Image Renamer can handle this at scale.

What to do after the upload

Images are uploaded. Now what?

Check variant assignments. If your products have variants (color, size, material), the uploaded images need to be assigned to the correct variants. Shopify’s default behavior assigns one featured image per variant. For multiple images per variant with proper gallery filtering, you need a variant image app. Rubik Variant Images handles this on the product page, with bulk assignment that processes hundreds of products in the background.

Add alt text. Bulk uploaded images often arrive without alt text. That is bad for SEO and accessibility. Shopify lets you add alt text in the admin one image at a time, but for large catalogs you will want to use a CSV update or an automation tool. Good alt text describes the product and variant: “Red leather crossbody bag, front view” not “bag1.” Check your image SEO with our Product Image Audit tool.

Verify gallery order. Shopify displays product images in the order they appear in the media gallery. If your bulk upload placed images in the wrong order, drag them into the correct sequence in the admin. The first image becomes the featured image, which is what shows on collection pages and in search results. Get this right.

Compress if you forgot. If you uploaded full-resolution photos straight from the camera, your product pages are now loading 3-5MB images. Shopify does some automatic compression, but it is not aggressive enough for large photos. Use our Image Compressor before upload (ideal) or re-upload compressed versions after.

Common mistakes (and how to avoid them)

Uploading without a naming convention. If your files are IMG_4521.jpg through IMG_4870.jpg, no bulk upload tool can match them to products. Fix your filenames before you start. This is the single biggest time waster I see.

Ignoring the 250 image limit. Shopify allows a maximum of 250 media items per product. That sounds like a lot, but stores with 20 variants and 10+ photos per variant hit it. Plan your image counts before uploading. Our variant images guide covers how to work within this limit.

Skipping alt text. Bulk upload does not add alt text. You have to do it separately. Skipping it means your images will never rank in Google Images and your store fails accessibility audits. Do not skip it.

Not testing the upload on a few products first. Before uploading 500 images, test with 5. Check that filenames match correctly, images land on the right products, and gallery order is what you expect. A 5-minute test saves you from a 5-hour cleanup.

Forgetting to assign variant images. Uploading images to a product is step one. Assigning them to specific variants is step two. Many merchants stop at step one and then wonder why all variants show all images. If you sell products with multiple colors, variant image assignment is not optional. It is the whole point.

FAQ

How many images can I upload to one Shopify product?

Shopify allows up to 250 media items (images, videos, 3D models) per product. That is a platform limit, not an app limit.

Can I bulk upload images without an app?

Yes, using the CSV import method. But you need publicly accessible image URLs, which means hosting the images somewhere first. For local files, you need either the Shopify admin (one product at a time) or a bulk upload app.

What file formats does Shopify accept for product images?

JPEG, PNG, GIF, and WebP. JPEG is the most common for product photography. PNG works for images that need transparency. Keep file sizes under 200KB for optimal page speed.

Does bulk uploading affect my store’s page speed?

The upload itself does not affect storefront speed. But if you upload uncompressed, full-resolution images (3-5MB each), those images will slow down your product pages. Compress before uploading.

How do I assign uploaded images to specific variants?

Shopify natively allows one image per variant. For multiple images per variant with gallery filtering, use a variant image app like Rubik Variant Images. It offers manual, AI, and bulk assignment methods.

Can I upload images from Google Drive directly?

Yes, with CS Smart Bulk Image Upload. Connect your Google account, select the folder, and images are imported and matched by SKU. No need to download files to your local machine first.

Stop uploading images one product at a time. Your catalog is too big for that, and your time is worth more than the 30 seconds Shopify saves you with drag-and-drop on a single product page. Try CS Smart Bulk Image Upload on your next batch.

Co-Founder at Craftshift