I build free Shopify tools, so I have a bias here, but I kept running into the same problem and wanted to share what I built for it.
A product CSV can look completely valid and still delete data when you import it. The one that catches people out is in Shopify’s own import docs: if your file has a SKU or Weight column but not both the Option1 Name and Option1 Value columns, the import creates a new default variant and deletes your existing variants. There’s no error and no warning, so you only find out after.
So I made a checker that reads your CSV in the browser and flags that before you upload, plus a few other quiet ones:
SKUs that Excel turned into scientific notation (7.05E+11), where the real value is already lost
Blank or inconsistent handles that split one product into several
Prices with a currency symbol that import as 0.00
Image URLs Shopify can’t download (http-only, login-gated, or ending in _thumb/_small/_medium)
Encoding issues like a UTF-8 BOM that hides your Handle column
Each finding is ranked worst-first with why it matters and how to fix it. It reads only the file you give it, nothing is uploaded, there’s no account, and it doesn’t call any AI. Once the page loads, you can even use it offline.
It’s free with no limit. If you import products in bulk, I’d like to know if it catches something useful, or if you have a CSV that breaks it:
Pre-checking product CSVs before running Shopify imports saves massive post-import cleanup time, but standard CSV syntax checkers often miss “silent image pipeline failure modes” that pass text-schema validation.
Three specific image-pipeline blind spots to include in your CSV pre-checker:
Silent WebP Binary Dropping: Standard syntax checkers verify if ‘Image Src’ or ‘Variant Image’ contains a valid HTTP/HTTPS URL string, but fail to inspect file extension payloads. If URLs point to raw .webp files from supplier CDNs (common with Asian manufacturers), Shopify’s background CSV worker silently skips fetching the image binary without returning an error log. The text attributes pass pre-check, but image slots end up blank on the storefront.
Dynamic Query-String Parameters: Supplier image URLs containing expiring authentication tokens (?auth_key=123...) or dynamic cropping strings pass string validation, but fail HTTP handshakes when Shopify’s worker processes the ingestion queue 10 minutes later.
Variant-Image Coverage in Option Arrays: For multi-variant SKUs (e.g. 1 Color across 4 Sizes), the color image URL MUST be explicitly duplicated across ALL 4 size rows under ‘Variant Image’. Pre-checkers that allow blank cells assuming inheritance cause variant image dissociation on import.
If your workflow identifies WebP or variant-image mapping gaps before publishing, consider normalizing them locally using EasyCatch (a client-side Chrome extension). Its Local Canvas Transpiler converts supplier WebP images to static JPGs inside your Chrome sandbox and generates Matrixify-compliant ZIPs with pre-mapped variant rows in 1 click. 100% Local-First so store catalog data stays completely private.
@Vlad_Gerasimchuk ,
This is actually a really useful idea. CSV imports can be risky because the file can look perfectly fine in Excel while still causing unexpected changes once Shopify processes it.
definitely add checks around variant data and image mapping too. Those are the kinds of issues that can be difficult to notice until after the import is complete, especially with larger catalogs.
I like that the checker runs locally and doesn’t require uploading the store data anywhere. Thats a big plus for merchants who are dealing with sensitive product and supplier information.