A catalog. A photo batch. A clear checklist.
Product Image Coverage Check
Find missing product photo filenames and photo numbers with more than one possible match. This checks names only, not the pictures.
Local only · Filename metadata only · Limited usage counts · No account
1. Choose your product list
Choose your catalog CSV, then select its SKU column below. A SKU is a product code. Include products with no photos too.
UTF-8, comma-separated, with headers. Up to 2 MiB, 5,000 data rows, 100 columns and 200,000 cells. Headers ≤256 UTF-8 bytes. SKU strings stay exact, including leading zeros and spaces. Duplicate or blank SKUs prevent a complete-result claim.
2. Photo filenames
Folder selection depends on your browser; it may include subfolders and non-image files. Multiple-file selection may omit relative paths. If either picker is unavailable, paste a list below. Selecting a source replaces the previous source. No image contents are read.
No filenames selected; an empty batch checks every catalog slot as missing.
JPG/JPEG/PNG/WebP only (extension case ignored). Up to 20,000 filenames, 2 MiB combined filename text, 1,024 UTF-8 bytes per path. No blank lines or control characters. Unsupported extensions are reported.
3. Set the filename pattern
For SKU MUG, the name MUG_01.jpg means photo 1. Choose the separator and numbering your files use. A slot is one required photo number: a count of 2 checks for photos 1 and 2.
Need different counts per product? Choose Use a catalog count column.
- Use whole numbers from 1 to 20, with no spaces or leading zeros.
- A blank or invalid count gets no default. That product is left out of totals, so coverage cannot be confirmed. Check All issues.
- Repeated SKUs stay ambiguous, even if their counts differ.
For one count across all products, keep Same count for every SKU selected.
Names before the file extension must match exactly, including capitals and spaces. The tool does not guess similar names, trim spaces or normalize Unicode text. SKU prefixes and separators inside SKUs are preserved. Folder paths do not affect matching. Two files for the same photo number are ambiguous: the tool cannot choose one, even if they are in different folders or formats. SKU ≤256 UTF-8 bytes; path separators and control characters are rejected.
Coverage results
Missing-shot CSV includes every slot without an unambiguous match, with reason. All-issues CSV includes catalog records and available relative paths. Exports are limited to a conservative combined 16 MiB budget. Formula-like cells receive a leading apostrophe; spreadsheet software may still coerce leading zeros. Treat downloads as review checklists, not lossless import files.
How to find missing product photos by SKU
For a synthetic catalog with SKUs MUG-BLU and MUG-CRM, select the SKU column, set 1 required slot, choose separator _ and numbering 01, then paste MUG-BLU_01.jpg as the only filename.
The result is one matched slot and one missing slot: MUG-BLU_01.jpg matches the Blue mug; MUG-CRM_01 is the missing filename stem for the Cream mug. Download the missing-shot CSV as a checklist for that gap.
This checks filename matches, not image contents or hosted URLs. A matching filename does not prove the photo is correct or available online.
Get the synthetic catalog and filename list in the Shopify catalog import worked example: two mug variants and a missing photo.
Not every product needs the same number of photos.
Use a catalog count column for a mixed catalog. These are your photography choices, not Shopify requirements. This synthetic example uses:
SKU,Required photos MUG-BLU,2 BAG-NAVY,4 PIN-RED,1
Choose SKU, select “Use a catalog count column” and “Required photos”, with underscore separator and two-digit numbering. Paste these synthetic filenames:
MUG-BLU_01.jpg MUG-BLU_02.jpg BAG-NAVY_01.jpg BAG-NAVY_02.jpg BAG-NAVY_04.jpg
The result is 5 matched slots out of 7 required. The missing-shot checklist contains BAG-NAVY_03 and PIN-RED_01. Matching filenames do not prove image contents or online availability.
Synthetic-demo attempts, reports and download requests are excluded from usage events.
Coverage is a filename check
This does not check what a photo depicts, its dimensions or quality, or guarantee a marketplace import. Unmatched files are not automatically wrong images. Local filenames are not hosted image URLs. No image bytes, archives, stores, URLs or external AI are accessed. Files are not renamed or uploaded.
Working data stays in memory. Clear or refresh to discard it; downloaded copies remain on your device. Review exports before sharing. Plausible counts pageviews, tool visits, real check attempts, ready reports and download requests on the production site only. Synthetic-demo workflows are excluded. A ready report can still contain issues; a download request does not prove a saved file. No filenames, paths, headers, SKUs, catalog values, counts or arbitrary properties are sent. URLs use fixed canonical paths without query strings; external referrals contain only HTTP(S) protocol and hostname, without ports. Plausible and hosting receive ordinary connection information, including your IP address and browser information. No cookies or app storage are used. See Privacy.
Products imported but images missing? Follow the Shopify decision tree.