How to Find Shopify Products with Missing Images, SKUs or Barcodes (Free Methods + CSV)

Shopify will happily publish a product with no image, sell a variant with no SKU and sync a barcode-less item to a marketplace that rejects it. It will not tell you which ones. There is no "missing image" filter in the admin, so the list has to be built another way. Here are the four free ways, from the admin itself to a spreadsheet to a Flow rule, and the automated check that does it before a catalog is generated.

Updated 18 October 2026 · 8 min read

Why these three fields, and why now

Images, SKUs and barcodes are the three fields that other systems demand and Shopify does not enforce. A product without an image is an empty box in a catalog and a skipped line on a buyer's order. A variant without a SKU cannot be ordered by wholesale, picked in a warehouse, or matched by an accounting system. A variant without a barcode is rejected or flagged by marketplaces and by some retailers' receiving systems, and cannot be scanned at a POS. Each of them is a thirty-second fix on the product page; the cost is finding them in a store of 2,000 products, which is what the rest of this guide is about.

Method 1: What the admin can and cannot filter

The honest answer first: the Products page in the Shopify admin cannot filter by missing image, missing SKU or missing barcode. Its filters are status, vendor, product type, tag, collection, sales channel, market, gift card and category, and the search box matches titles, SKUs, barcodes and vendors, which helps you find a known value, not an absent one. There are three things the admin does give you:

Method 2: CSV export plus a spreadsheet filter

This is the method that works at any size, takes five minutes, and costs nothing. It is also what every "find missing images" app does internally.

  1. Go to Products, click Export, choose All products and CSV for Excel, Numbers, or another spreadsheet program. For more than one page of products Shopify emails the file.
  2. Open it in Google Sheets or Excel and turn on a filter on the header row (Data → Create a filter, or Data → Filter).
  3. Understand the row structure before filtering, because it is the step that trips people up. Shopify exports one row per variant, plus one extra row per additional image. Only the product's first row has the Title; the following variant rows have the Handle and option values but no title; image-only rows have the handle, Image Src and Image Position and nothing else.
  4. Missing images: filter Title to non-blank (that is one row per product) and Image Src to blank. Shopify puts the first image on the product's first row, so a blank there means the product has no image at all. Copy the handles.
  5. Missing SKUs: clear the filters, filter Option1 Value to non-blank (that is one row per variant, and it excludes the image-only rows) and Variant SKU to blank. The remaining rows are the variants to fix; the handle and option values tell you which.
  6. Missing barcodes: same as SKUs, with Variant Barcode blank.
  7. Duplicate SKUs, while you are there: add a column with =COUNTIF(SKUcolumn, thisSKU) and filter for values above 1. Two variants with the same SKU will be shipped wrong sooner or later.

In Google Sheets the whole thing is one formula per check. Handle is column A and Title is column B in every export; find Option1 Value, Variant SKU, Variant Barcode and Image Src in your header row and substitute their letters for O, S, K and M below (they shift when metafield columns are included):

Each returns the list of handles. Count them before you start fixing; a few percent of 2,000 products is an afternoon, not a minute. Note that this catches products with no image. A product whose variants have no variant image but whose product has one is fine for a catalog and is not listed.

Method 3: Fix them in the bulk editor

Finding is half the job. For SKUs and barcodes, the fastest place to type the fixes is the bulk editor: on the Products page, select the products (use the tag from method 1 to select them all at once), click Bulk edit, and add the SKU and Barcode columns from the Columns menu. You get a spreadsheet-like grid of every variant of the selected products, with the blanks visible, and you can paste a column of barcodes straight in. Save once at the end.

Two limits: the bulk editor does not handle images (those are added on each product page or by a CSV import with the image URLs), and it does not help you find the blanks, only fix the ones you selected. Use it after method 2, not instead of it. If you have hundreds of barcodes in a supplier spreadsheet, a CSV import with the Handle, option values and Variant Barcode columns is faster than the editor, but back up with an export first, because an import that does not match the variants exactly can create new ones.

Method 4: A Shopify Flow rule so it does not happen again

Shopify Flow is included on Basic and higher plans and can catch the problem at the moment it is created. The idea is a workflow with the trigger Product created (and a second one on Product updated, if you want it strict), a condition that checks the product's featured media is empty or that any variant's SKU or barcode is empty, and an action that adds a product tag such as needs-data and, if you like, sends an email or a Slack message to whoever owns product data. The saved view from method 1 then shows the queue, and a second workflow removes the tag when the product is updated and the condition no longer holds.

Flow does not run retroactively on products that already exist, so it complements the CSV check rather than replacing it. Test it on one product before switching it on for the store; the condition editor's names for the fields (featured media, variant SKU, variant barcode) differ slightly between Flow versions, and "any variant" versus "all variants" is the switch to get right.

What to fix first

MissingWho noticesFix
ImageEvery buyer, every catalog, every adUpload one photo on a white background per style; a line sheet needs one image, not six
SKUWholesale buyers, warehouse, accountingSet a pattern (STYLE-COLOUR-SIZE) and fill the blanks in the bulk editor; never reuse a SKU
BarcodeMarketplaces, retailers' receiving, POSGS1 barcodes if you sell through retailers; your own internal codes only for your own POS
Duplicate SKUThe buyer whose order ships wrongRename one of the two; check the order history first

Fix images before you make any catalog, SKUs before you send a line sheet, barcodes before you list on a marketplace or ship to a retailer. The priority is set by what you are about to do, not by the count.

The automated version: a preflight before the catalog

If the reason you are looking for these products is a line sheet or a PDF catalog, the check can run at the moment it matters, on exactly the products going into the document. Sheetfolio's preflight reads the collection you selected and lists, before any PDF is made, the products with no image, no SKU, duplicate SKUs, no retail price, no wholesale price (if the catalog reads a metafield), no barcode (for the price list template), descriptions that will be cut, and products with more variants than fit on one row. Each finding links to the product in your admin. It runs in under a second on 1,000 products and is on the free plan as well as Pro.

It is a check, not a fix. The app requests read access to products only and never writes to your store; you still make the correction on the product page, like every method above. The difference is that you make it for the 17 products in this catalog today, instead of for 2,000 products someday. The CSV method remains the right tool for a store-wide clean-up and for barcodes on products you never put in a catalog.

Frequently asked questions

Can I filter Shopify products by missing image in the admin?

No. The Products page filters by status, vendor, product type, tag, collection, sales channel, market and category, not by whether an image, SKU or barcode is present. The quickest free check is a CSV export filtered in a spreadsheet; for a small store, the Inventory page shows the SKU column and can be scanned by eye.

Which columns of the Shopify product CSV show missing images, SKUs and barcodes?

Image Src, Variant SKU and Variant Barcode. A blank Image Src on a product's first row (the row that has the Title) means the product has no image at all. Filter Variant SKU and Variant Barcode for blanks on the rows that have an Option1 Value, because rows with a Handle but no option value are extra image rows of the same product.

Does Sheetfolio fix missing images or SKUs?

No. Its preflight lists products with no image, no SKU, duplicate SKUs, no barcode (on the price list template), no price and no wholesale price, and links each finding to the product in your admin. You fix the product in Shopify; the app only reads your store and never writes to it.

Related: PDF catalog with variants: the size × colour matrix · How to create a wholesale line sheet from Shopify · Best Shopify line sheet & PDF catalog apps.

See the Gaps Before the Buyer Does

Sheetfolio's preflight lists missing images, SKUs, prices and barcodes for the products in your catalog, with a link to each one. Free plan, no card.

Install Sheetfolio on Shopify