Bulk Updating Product Images in Shopify

Shopify gives merchants a bulk editor for almost every product field except the one that matters most on the page — the images.

|Shopify catalog management workflow automation product image optimization

Open Shopify's bulk editor, click the column picker, and scroll the list. You will find price, inventory, weight, status, tags, and dozens of other fields. You will not find images. If you want to bulk update product images across a Shopify catalog, the native tool built for bulk editing is the one place you cannot do it.

That gap is not a minor annoyance. Product imagery is the single largest driver of on-page conversion in e-commerce, and it is also the asset that ages fastest — backgrounds drift, standards change, a marketplace tightens its requirements, a brand refresh lands. Every one of those events creates a job that touches every SKU at once, and Shopify has no first-class way to do it.

What merchants do instead falls into three buckets: CSV imports, third-party bulk apps, and brute-force manual work in the admin. Each solves part of the problem and breaks somewhere specific. This piece maps where each one breaks, and what a workable bulk image workflow actually looks like in 2026.

What Shopify’s native bulk editor can and cannot do

The bulk editor is genuinely good at what it covers. Select products from the product list, click Edit products, add columns, and you get a spreadsheet-style grid you can tab through. For price changes, inventory corrections, or flipping fifty products from draft to active, it is the fastest tool available.

Its blind spots are consistent and well documented. Images are absent from the column picker on every plan — so are SEO title, meta description, URL handle, SKU, vendor, and most metafields. Two more constraints bite at scale:

  • No undo. Changes commit the moment focus leaves a cell. There is no confirmation step and no rollback.
  • 50 products per page. Editing beyond fifty products means repeating the whole selection-and-edit cycle page by page.

Beyond the editor, the platform itself sets hard ceilings worth knowing before you plan any bulk job: individual image files cap at 20MB, and a single product can hold a maximum of 250 images.

Before you start

The bulk editor's lack of undo applies to every field, not just the risky ones. Duplicate the products you intend to touch, or export a CSV backup first — it is the only rollback you get.

The three ways merchants actually bulk update images

Since the native editor is out, every real workflow reduces to one of three approaches. They are not equivalent, and the right choice depends far more on catalog size and variant complexity than on budget.

MethodGood forBreaks when
CSV import/exportSwapping image URLs, setting alt text, reordering positionVariant image assignment, products with many rows
Third-party bulk appCompression, resizing, filename and alt-text rulesAnything requiring judgement per image
Manual admin workUnder ~30 SKUs, one-off fixesImmediately past that, on wall-clock time
Direct API connectionEditing and publishing in one passRequires an app that supports write access

CSV. Export your products, edit the Image Src, Image Position, and Image Alt Text columns, re-import. This works, and it is free. The trap is the CSV's row model: a product with multiple images and multiple variants spreads across many rows, and the relationship between an image row and a variant is expressed through the Variant Image column rather than the image rows themselves. Get that wrong on re-import and you scramble which photo shows for which colorway across the whole catalog.

Bulk apps. The Shopify App Store has a solid category of image apps that handle mechanical transformations — compress everything under a size threshold, resize to a fixed square, rename files from a template, generate alt text from the product title. These are excellent for rules that apply uniformly. They cannot help when the answer differs per image, which is most retouching work.

Manual. Perfectly reasonable for a small catalog. The break point arrives faster than people expect, because the cost is not the editing — it is the round trip.

The round trip is the real cost

Ask a merchant how long it takes to update a product image and they will estimate the editing time. That is rarely the expensive part. The expensive part is the loop around it.

A single image update in a typical setup looks like this: find the SKU in the admin, download the current image, open it in an editor, make the change, export at the right size, go back to the admin, find the product again, delete the old image, upload the new one, drag it back into the correct gallery position, retype the alt text, save. Eleven steps, and only one of them is the actual edit.

11Steps per image update
1Of them is editing
~70%Of the time is file shuffling

Multiply by a 400-SKU catalog with four images each and the arithmetic stops being about editing skill. A refresh that sounds like a week of retouching becomes a month of downloading, uploading, and re-dragging thumbnails into order. This is why catalog refreshes get postponed indefinitely at exactly the stores that need them most — the ones with several years of accumulated, inconsistent imagery.

It is also why the bulk-edit question is usually framed wrong. Merchants ask for a faster editor. What removes the bottleneck is removing the round trip: connecting the tool that edits the image directly to the store that holds it, so the finished file never touches a downloads folder.

What a connected workflow removes

A direct store connection changes the shape of the job rather than the speed of any one step. Instead of exporting files and re-importing them, the tool reads your product catalog, you work on the images in place, and finished images are written back to the product record.

Download / re-upload loop

  • Locate SKU in admin, download each image
  • Edit locally, export at target size
  • Re-find the product, delete old media
  • Upload, drag into position, retype alt text
  • Filenames drift from any naming convention
  • No record of which SKUs are done

Connected workflow

  • Search or browse store products in the tool
  • Edit, review, approve
  • Push back to the product record directly
  • Filename, alt text, and gallery position set on write
  • Naming convention applied consistently
  • Connection status visible; revoke any time

The three fields set on write-back are worth calling out, because they are the ones merchants most often lose track of during bulk work:

  • Filename — the only durable place a naming convention lives once the file is on Shopify's CDN.
  • Alt text — required for accessibility, read by image search, and blank on the majority of catalogs we see.
  • Position — controls gallery order, which controls what a shopper sees first and what appears as the thumbnail in collection listings.

Retouchable's Shopify integration works this way: you install it through Shopify's standard OAuth flow, browse or search your store's products from inside the app, and push finished images straight back to the product with those three fields set. Nothing is downloaded and nothing is re-uploaded by hand.

Permissions, and what a store connection can actually touch

Any app that writes images to your products needs write access to products, and merchants are right to ask what that means in practice. The honest answer is that Shopify's permission scopes are broader than most apps' actual behaviour, so the scope name alone does not tell you much — you have to read what the app says it does.

ScopeWhat it grants
read_productsList and search products, variants, and existing media
write_productsCreate and modify product media, including filename, alt text, and position

What those two scopes do not include is equally important: no access to orders, no access to customer records, no access to payment or payout data, no ability to change prices or inventory, and no theme access. An image app asking for customer or order scopes should prompt a question.

Three things to check before installing any image app

Does it list scopes beyond products? Does it state what happens to your images on uninstall? Can you see and revoke the connection from your Shopify admin's Apps page at any time? Any app worth installing answers all three plainly.

On uninstall, Shopify fires mandatory compliance webhooks and a well-behaved app deletes the store's data on receipt. That is the mechanism behind "your data is removed when you disconnect" — worth confirming an app implements it rather than assuming.

Sequencing a catalog-wide image update

Bulk image work fails more often from sequencing than from tooling. A catalog refresh that starts with the highest-effort SKUs stalls before it reaches the ones that generate revenue. Order the work by traffic, not by product ID.

Where to spend effort first, by share of catalog revenue
Top 20 SKUs
~62%
Next 80 SKUs
~26%
Long tail
~12%

A workable sequence for a catalog of any size:

  1. Export a CSV backup first. Whatever method you use, this is your rollback. The bulk editor has no undo and neither does a bad import.
  2. Audit before you edit. Pull the current image count, dimensions, and alt-text coverage per product. You will usually find a cluster of SKUs with one image and no alt text — that cluster is the highest-return work in the catalog.
  3. Fix the mechanical issues in bulk. Compression, dimensions, and filename conventions are rule-based. Use a bulk app or a script; do not do these by hand.
  4. Standardise the hero shot across your top sellers. Consistent framing, background, and crop across the products that appear together in a collection grid is the change shoppers actually notice.
  5. Set position deliberately. Decide the gallery order once — hero, detail, scale reference, in-use — and apply it uniformly rather than leaving it as upload order.
  6. Work the long tail last, in batches. Ten SKUs a week finishes a 500-product catalog in a year without ever blocking anything else.

For more on auditing what you already have, see our product image catalog audit checklist. If your problem is consistency rather than volume, consistent product photo backgrounds covers the specific case of unifying imagery shot across different sessions. And if you are still deciding what your baseline should be, our Shopify product image optimization guide sets out the sizes and formats to standardise on.

Frequently Asked Questions

Can you bulk edit product images in Shopify’s admin?

No. Shopify’s native bulk editor does not include images in its column picker on any plan, alongside other omissions like SEO title, meta description, URL handle, and metafields. Bulk image work has to go through CSV import, a third-party app, or a connected tool with write access to products.

How many images can a Shopify product have?

A single product can hold up to 250 images, and each individual file must be under 20MB. In practice, most product pages perform best with four to eight images — the ceiling matters mainly for configurable or highly variant-heavy products.

Does a CSV import overwrite existing product images?

It depends on how the CSV is structured. Rows that specify an Image Src replace the media at that position, and omitting image rows for a product generally leaves existing images alone. Because the behaviour is easy to get wrong on variant-heavy catalogs, export a backup CSV before importing and test on a handful of products first.

What permissions does an image app need for a Shopify store?

Reading and writing product media requires read_products and write_products. Those scopes cover products, variants, and media — they do not grant access to orders, customers, payments, inventory pricing, or your theme. An image app requesting customer or order scopes is worth questioning.

Why does Shopify image position matter?

Position controls gallery order on the product page, and the image in the first position is what appears as the product thumbnail in collection and search listings. Left as upload order, position is effectively random — setting it deliberately means the strongest shot leads everywhere the product appears.

Skip the download-and-re-upload loop

Connect your Shopify store to Retouchable and push finished product images straight back to your listings — filename, alt text, and gallery position included.

Try Retouchable Free No credit card required