Sitemap Validator (Free)
Free XML sitemap validator: Google's 50,000 URL / 50 MB limits, lastmod format, duplicates, sitemap indexes and redirecting or 404 URLs. Runs locally.
View Sitemap Validator (Free)
Run your product CSV through one command and see every problem Shopify would reject, plus the silent ones that delete variants, before you click Import.

Find the problems in a Shopify product CSV before Shopify does, and fix the mechanical ones automatically. Built from Shopify's product CSV documentation (current and older column names), as a Python CLI and a Claude Code skill. Offline, standard library only, Python 3.9+.
The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 10 tests OK on Python 3.13 and 3.10.

./demo.sh
./run_tests.sh # 10 tests
python3 -m shopcsv check products.csv # exit 1 if anything would fail the import
python3 -m shopcsv check products.csv --fix products.fixed.csv --issues issues.csv| Area | Checks |
|---|---|
| File | UTF-8 (Excel/Windows encodings flagged), comma delimiter, column count per row |
| Headers | Unknown columns (only Collection may be added), duplicates, wrong case, older template names (Handle, Variant Price, Image Src...), Barcode and Barcodes together (rejected), market (Price / Canada), metafield and Google Shopping columns allowed |
| Data loss | Variant columns without Option1 name/Option1 value, which deletes existing variants when overwriting |
| Products | Title on the first row, handle format (letters, numbers, dashes, no spaces), blank handles, rows of one product split across the file, blank Status when the column exists, 250 tags max |
| Variants | Option values without option names, duplicate option combinations, duplicate SKUs, 20 barcodes max, all-or-none packed dimensions (unless Requires shipping is false) |
| Values | Prices without currency symbols, compare-at not above price, true/false columns, Status / inventory policy / weight unit / dimension unit values, whole-gram weights, inventory tracker, fulfillment service handle format |
| Limits | SEO title 70, SEO description 320, image alt text 512, Collection 255 characters |
| Images | Public http(s) URLs, _thumb/_small/_medium suffixes, image position numbers |
Only changes with one right answer: currency symbols and thousands separators removed ($1,299.00 -> 1299.00), weights converted to grams (4 lb -> 1814, 0.98 kg -> 980), yes/no -> true/false, enum case, blank handles filled from the title, handles with spaces or symbols normalized. Each change is logged in <out>.changes.csv with row, column, old and new value. Everything else is reported for you to decide.
Zip, 16 KB, v1.0, 14 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by Shopify.
Check a Shopify product CSV before import: headers, handles, variants, prices, weights and images, with safe auto-fixes and a change log. Works with old and new templates. $19 once.
Free XML sitemap validator: Google's 50,000 URL / 50 MB limits, lastmod format, duplicates, sitemap indexes and redirecting or 404 URLs. Runs locally.
View Sitemap Validator (Free)Check a WooCommerce product CSV before import: variations, prices, booleans, encoding, duplicate SKUs and image paths, with a safely fixed copy. $19 once.
View WooCommerce Product CSV Checker SkillFree hreflang checker: invalid codes, missing self-references and return links, x-default, and alternates that redirect, 404 or are noindex.
View Hreflang Checker (Free)