Why Shopify Images Fail to Import and How to Fix the Issue
When images are not importing into Shopify, the problem is almost always the image links in your CSV file. Shopify doesn’t upload image files from your computer during a CSV import. Instead, it downloads each image from the URL in your file, so any link it can’t reach, or any row it can’t match to a product, leaves that product without its picture.
A related problem catches many merchants by surprise: images that were fine before an import disappear afterward. Both issues have clear causes, and most can be fixed by correcting the file and importing a small batch again.
Why Images Are Not Importing: Quick Diagnosis
Start by matching what you see to the likely cause. Each row points to a fix later in the article.
| What you see | Likely cause |
|---|---|
| Products import, but none have images | The image URLs aren’t publicly reachable, or the image column header doesn’t match Shopify’s template |
| Only the first image of each product imports | Extra image rows are missing the product’s URL handle, or the file was sorted |
| Images vanished after re-importing an export | The import replaced existing images, or blank image cells cleared them |
| Variant images are missing or wrong | The variant image URL is blank or doesn’t match an image on the product |
| The same image appears twice | The URL points to a file already uploaded to your store’s Files area |
How to Fix Images That Won’t Import
Work through these fixes in order. The first one resolves most cases where no images import at all.
Make every image link public and direct
Shopify can only import an image it can download. Each URL must be a publicly accessible https:// address with no password protection, and it should point directly to the image file rather than to a page that displays it.
To test a link, open it in a private browser window where you’re not signed in to anything. If you see the image on its own, Shopify can probably reach it. If you see a login screen, a preview page or a download prompt, the link won’t work for importing, which is common with links from cloud storage sharing settings.
If your images aren’t hosted anywhere public, one option is to upload them on the Files page in your Shopify admin, copy each file’s link and paste it into your CSV. Keep in mind that Shopify downloads those images again during the import and creates duplicates, so hosting images elsewhere avoids that extra copy.
Use the right columns and row structure
Product images go in the Product image URL column, and the header must match Shopify’s template exactly. Each image needs its own row: the first row carries the product details, and each additional image goes on a new row with the same URL handle and the next image’s link.
| URL handle | Title | Product image URL | Image position | Image alt text |
|---|---|---|---|---|
| canvas-tote | Canvas Tote | https://example.com/tote-front.jpg | 1 | Canvas tote, front view |
| canvas-tote | https://example.com/tote-side.jpg | 2 | Canvas tote, side view | |
| canvas-tote | https://example.com/tote-inside.jpg | 3 | Canvas tote, inside pocket |
If the extra rows are missing the URL handle, Shopify can’t tell which product they belong to, and only the first image comes through. The Image position column sets the display order starting at 1, and each product can have up to 250 images.
Variant images use a separate column, Variant image URL, on each variant’s row. Variant images are part of the product’s own image set, which counts toward the 250-image limit. When you overwrite products, a blank variant image cell can remove an existing variant image.
Don’t sort the file
Sorting a product CSV in Excel or Numbers can separate image rows from the products they belong to. The rows still contain image links, but they now sit next to the wrong handle or no handle at all, so images import onto the wrong products or not at all.
If you need a sorted view to review your data, make it in a separate copy. Import the unsorted original, where each product’s rows stay together.
Test with a few products first
Before importing hundreds of products, import two or three that cover your harder cases, such as a product with several images and one with variant images. Then check the live product pages, not just the import confirmation, to see whether every image arrived in the right order.
If one image fails while others work, open that specific URL to check it. A single broken or private link affects only its own image, so the rest of the file can still be fine.
Why Images Disappear After a CSV Update
Images often go missing when merchants export their products, change something else such as prices, and import the file back. The image columns come along with every other column, so the import can replace each product’s existing images with whatever the file says.
That replacement can go wrong in two ways. First, when you overwrite products, a blank image cell clears that image. Second, merchants frequently report that images vanish even when the export’s image links were intact, because the links point to the product’s own existing images, and those files can be removed when the import replaces them.
The reliable prevention is to leave images out of update files. When you import with Overwrite products with matching handles selected, a column you delete from the file keeps its current value. A price update file then only needs URL handle, Title, the option columns, SKU and Price, so images can’t be touched.
Bulkflow can help with this kind of controlled update. It supports updating existing records from a spreadsheet with field mapping for Shopify, so an update can focus on the fields you actually mean to change.
If images have already disappeared
Shopify has no rollback for product imports, so recovery depends on what you still have. Start by opening a few image links from your original export in a browser. If they still load, re-import only the affected products with just the URL handle, title and image columns, starting with one or two to confirm it works.
If the links no longer load, the images need to be uploaded again from your original files, a supplier or another copy. A CSV export holds image links rather than the image files themselves, so it can’t bring back images that are gone. A backup app that stores image files, or your own folder of original product photos, is what protects against this.
Conclusion
Images not importing almost always comes down to links Shopify can’t reach, image rows it can’t match to a product or update files that replace images unintentionally. With public direct links, the right row structure and image columns left out of routine updates, your product photos will arrive and stay where they belong. We hope this guide helps you fix images not importing in your next Shopify import. If bulk product updates are a regular task, you can explore Bulkflow.



