Delete Out-of-Stock Variants on Shopify

Deleting out-of-stock variants on Shopify takes 30 seconds if you have 5 of them. It takes an entire afternoon if you have 500. The real question most merchants skip: should you actually delete them, or just hide them? Both paths have consequences, and getting this wrong means losing variant data you can’t recover.
I’ve watched store owners nuke variants they thought were dead, only to realize two weeks later that the supplier restocked. Shopify has no “undo” for variant deletion. No trash bin. No recovery option. Once it’s gone, the SKU, the price, the weight, the images tied to that variant, all of it disappears permanently.
So before you start deleting anything, run your Product CSV Generator to grab a backup. Seriously. Do it now.
On this page
- Hide vs. delete: which one?
- Delete one at a time (native)
- CSV method for bulk deletion
- Matrixify approach
- App approach
- Inventory tracking gotchas
- What happens to variant images
- FAQ
- Related reading
Hide vs. delete: which one?
Most merchants default to deleting. Bad instinct. Hiding is almost always the smarter move, especially if there’s any chance that variant will come back in stock within the next 6 months.
Shopify gives you two ways to hide a variant without destroying it:
- Set inventory to zero and enable “Continue selling when out of stock” = OFF. The variant stays in admin but shows as unavailable on the storefront.
- Use the “Inventory not tracked” setting. The variant disappears from inventory reports but remains selectable (or not, depending on theme logic).
Why does this matter? Because if you delete a variant and the product only had one variant left, Shopify converts it to a “simple product” with no variant options at all. Recreating the option structure later is tedious. And any variant image assignments you had? Gone.
Delete when: the variant will never return (discontinued colorway, removed size, dead SKU). Hide when: seasonal stock, temporary supplier issues, or anything with a chance of restocking.
Delete one at a time (native method)
The manual approach. Fine for 5 variants. Painful for 50. Absurd for 500.
- Go to Products in your Shopify admin.
- Open the product.
- Scroll to Variants. Check the box next to each out-of-stock variant.
- Click the “…” menu. Select “Delete variants.”
- Confirm. Repeat for every product.
There’s no “delete all out-of-stock variants across the store” button. Why? I genuinely don’t know. It would save thousands of hours across the platform. But Shopify hasn’t built it, so we work around it.
CSV method for bulk deletion
This is the free method that handles scale. The concept: export your products, remove the variant rows you don’t want, re-import with “Overwrite existing products.” Shopify treats missing rows as deletions.
- Export all products as CSV from Products > Export.
- Open in Google Sheets or Excel.
- Sort by “Variant Inventory Qty” column. Filter for zero or negative values.
- Delete those rows. But keep at least one variant row per product handle. Shopify requires it.
- Save as UTF-8 CSV.
- Go to Products > Import. Check “Overwrite existing products that have the same handle.”
- Upload. Preview. Confirm.
The catch? That overwrite flag replaces everything, not just variants. If someone edited a product title or description after your export, that edit gets overwritten. Export fresh and import immediately. Don’t let a day pass between export and import. Use our CSV Validator to check for formatting issues before you upload.
Matrixify approach
Matrixify is the power tool for this. It lets you target specific variant rows with a DELETE command without touching the rest of the product. No overwrite risk.
- Export products from Matrixify. Filter by inventory quantity = 0.
- In your spreadsheet, add a “Command” column. Set it to DELETE for every row.
- Make sure the Variant ID column is populated.
- Import back into Matrixify.
This only deletes the specific variants you listed. It won’t overwrite descriptions, prices, or anything else. For stores with more than a few hundred out-of-stock variants, Matrixify pays for itself in the first use.
App approach
Several apps on the Shopify App Store handle variant cleanup with a visual interface. If you’re not comfortable with CSVs (no judgment, spreadsheets aren’t everyone’s thing), an app gives you point-and-click filtering.
| Approach | Cost | Best for |
|---|---|---|
| Native (manual) | Free | Under 20 variants |
| CSV overwrite | Free | 50-500 variants, comfortable with spreadsheets |
| Matrixify | From $0 (free plan) | 500+ variants, precise targeting |
| Hextom Bulk Product Edit | Paid | UI-driven, rule-based filtering |
| CS Bulk Delete Products | Free plan available | Deleting by collection, vendor, tag, inventory level |
If you’re running regular inventory cleanups (seasonal stores, fashion brands cycling collections), an app with scheduled deletes saves you from repeating this process every quarter. Our app stack audit guide covers how to pick tools without bloating your store.
Inventory tracking gotchas
Here’s where people trip up. Shopify tracks inventory per variant, not per product. When you delete a variant, Shopify doesn’t redistribute its inventory history. That data just vanishes. Reports that reference that variant ID will show blanks or errors.
If you’re on a Shopify plan that includes detailed inventory reports, deleting old variants can create gaps in your historical data. For accounting or tax purposes, that’s a problem. Consider exporting a full inventory snapshot before any mass deletion.
Another trap: multi-location inventory. If you track inventory across 3 warehouses, deleting a variant removes it from all locations simultaneously. There’s no “delete from Location A but keep in Location B.” It’s all or nothing.
What happens to variant images after deletion
This one bites more people than you’d expect. When you delete a variant, any images specifically assigned to that variant lose their assignment. The images themselves stay in the product gallery (Shopify doesn’t delete the files), but the connection between image and variant is broken.
If you’re using an app like Rubik Variant Images for per-variant image filtering, deleting a variant means you’ll need to reassign images to the remaining variants. The app stores assignments in metafields, and when the variant ID no longer exists, that assignment becomes orphaned.
Same story with multiple images per variant setups. The gallery stays intact, but the filtering logic has nothing to point at. If you plan to delete variants from products with complex image assignments, make a note of which images go where before you start.
And here’s an annoying edge case: if the deleted variant’s image was the product’s featured image, Shopify sometimes reassigns the featured image to the first image in the gallery. Sometimes it doesn’t. There’s no documented rule for this behavior, which means your product page might suddenly show the wrong hero image.
FAQ
Can I undo a variant deletion on Shopify?
No. Shopify has no trash bin or undo function for variants. Once deleted, the variant, its SKU, price, weight, and inventory history are permanently gone. Always back up via CSV export before deleting.
Will deleting a variant affect my SEO?
If the variant had its own URL parameter (like ?variant=12345) that was indexed by Google, deleting it will create a soft 404. For most stores this isn’t a big deal because Google rarely indexes individual variant URLs. But if you’ve built backlinks to specific variant URLs, consider redirecting them. Check our SEO Checker to audit your product URLs.
Should I delete or hide out-of-stock variants?
Hide them if there’s any chance they’ll come back. Set inventory to zero with “Continue selling when out of stock” turned off. Delete only when the variant is permanently discontinued and will never return.
Can I delete variants in bulk without an app?
Yes. Use the CSV overwrite method: export products, delete the variant rows from the spreadsheet, and re-import with the “Overwrite existing products” option checked. Free and works at scale, but be careful since it overwrites all product fields.
What happens to images when I delete a variant?
The image files stay in your product gallery, but the assignment between image and variant is removed. If you used per-variant image filtering (native or via app), you’ll need to reassign images to remaining variants.
Does deleting variants affect my Shopify reports?
Yes. Inventory history for deleted variants disappears from reports. Sales data tied to the variant ID may show gaps. Export a full inventory and sales report before any mass deletion if you need historical records.
Related reading
- How to bulk delete Shopify variants
- Bulk archive old out-of-stock products
- How to bulk edit Shopify product variants
- Shopify variant images complete guide
- Combined listings out-of-stock handling
If you’re cleaning up variants because your catalog grew beyond what a single product can handle, look into combined listings as an alternative to cramming everything into one product with dozens of variants. Splitting colors into separate products and grouping them with swatches gives you more control over inventory, images, and SEO, without hitting the variant limit wall.