Delete old out-of-stock products in Shopify

Deletion of old out of stock products from Shopify can be a tedious process. It gets to be so annoying that it should only take 5 minutes but ends up consuming the entire afternoon, isn’t it? One can select the check boxes and delete 50 products at a time by checking the boxes, confirming the delete action and then scrolls up to repeat the process. A client of mine in Austin spent three hours deleting 1,400 dead SKUs from a supplier that went bankrupt and Shopify still indexed those products in Google search results, displaying “In Stock/Sold Out” to shoppers actively browsing her store.

This guide teaches the difference between deleting and archiving, explains what Shopify can naturally do versus what it can’t, introduces a simple workaround for mass-changing the status of products using a .csv file, and then reveals a highly automatic app that enables bulk product deletions with many helpful filters. For fewer than 20 products, it is easiest to just delete them through the native Shopify interface. However, for more than 20 products, this approach becomes not useful and a workaround must be implemented.

For managing how variant images display on your product pages, check out Rubik Variant Images.

In this post

Delete vs archive: which one do you actually want?

Most online store owners are used to being able to simply delete items they no longer require. That’s wrong. Shopify does not have a ‘delete’ status, instead products can be set to active, draft or archived. Allowing you to always retrieve information about a product and its images, even after its been archived, as well as any previous variants and URLs.

Archiving a product will hide the product from view in your online store and sales channels. However, the product information will still remain in your admin, so if a supplier restocks your product or you want to bring back a seasonal item for next year, you can easily bring the product back to an active state. You will not have to recreate the product information again from scratch.

So when should you actually delete? Three cases:

  1. The product will never come back. Discontinued line, closed supplier, one-time event merch. Gone forever? Delete it.
  2. Your catalog is bloated and slowing down your admin. Stores with 10,000+ products notice slower search and bulk-edit operations. Trimming dead weight helps.
  3. SEO damage from thin pages. A product page with no images, no description, and a permanent “Sold Out” badge is a low-quality page. Google’s helpful content update treats those as clutter. Deleting (with a redirect) is cleaner than leaving them indexed.

If you are unsure, archive first. You can always delete archived products later, and archiving keeps the product data intact in case you change your mind.

Native bulk actions in Shopify admin

Short on time? Shopify’s product list page allows you to select products and take bulk actions; here’s what you can really do within the platform and where it falls short.

So far so good – I can check the individual items (or checkboxes next to categories) and there is a “Select all” checkbox at the top that I can mark to select all products on the page. Problem is, there are only 50 products per page. But on the top banner, there is a link that reads “Select all 1,400 products in your store”. So, this feature is likely fully functional but the “Select all” checkbox does not function as it should.

First, I was able to filter out all available products, then select all results, which is the correct approach. However, I was not able to use many of the available filter options. Specifically, I did not see an option to “filter by: inventory > out of stock.” I also did not see “no vendor,” “vendor is not ‘none’,” “products tagged with ‘none’,” or “products in no collection.” Even more frustrating are the filters that are available within the admin, but that were not available within the report widget. Specifically, I would have liked a “created older than” option, something like “created older than X months.” Alternatively, I might have liked “products with zero sales in the last year.” None of these options seem to be missing from the admin for no reason, and I am completely stumped as to why they are not available within the report widget.

The 50-at-a-time problem. Although you can select all products across all pages to delete many at once, Shopify still does the delete in batches and it can time out on large numbers of products. I have seen this happen for store owners with less than 500 products and it is definitely a bigger issue for those with 500+ products. Strangely, sometimes all are deleted, sometimes some are deleted and you have to manually go through the remaining products to confirm which ones were deleted and which were not.

We wouldn’t recommend native Shopify bulk actions for stores with more than 100 dead products (Yes, it becomes too tedious). What to do with dead inventory before choosing what to liquidate? Check the Product Page Grader on individual products to see if they have value elsewhere.

The CSV status update method

If you don’t want to install the app, you can manually use the CSV import workaround that won’t delete your products but will archive them.

  1. Export your products. Go to Products > Export. Choose “All products” and CSV format. You will get a file with every product and variant row.
  2. Filter in a spreadsheet. Open the CSV in Google Sheets or Excel. Sort by the “Variant Inventory Qty” column. Find all rows where quantity is 0 (or blank). You can also sort by “Created At” to find old products.
  3. Change the status column. Set the “Status” column to “archived” for every product you want to hide. If a product has multiple variant rows, change all of them.
  4. Re-import. Go back to Shopify admin > Products > Import. Upload your modified CSV. Shopify matches by Handle and updates the status.

This method can archive hundreds of products at a time. It does not delete though, so you will still have to go into your admin to manually delete the archived products, or you can use an app to delete archived products. Note: Be very careful when editing the columns in the CSV, as you can accidentally change prices, rename products, change inventory levels, etc. Archive products method is best used in conjunction with an export of your current products, and you should keep the original export for reference in case something goes wrong. I would recommend running the original export through the CSV Validator, and then working off of that cleaned up copy to make your edits before importing the modified copy back into your store.

Using the CS Bulk Delete Products app

We created the CS Bulk Delete Products app to help with this exact problem. Set up your filters, preview products that will be removed, confirm, and the app takes care of the rest for you.

Many different filters are available to choose from including Collection, Vendor, Product Tags, Created Date and your Product’s current Inventory Level. Even a “Created before January 2024” filter is missing in the Shopify admin! Filters can also be combined together to find the perfect group of products to delete. For example, you could in one click delete all products from vendor “OldSupplier” that have been out of stock for more than 6 months with just two clicks of a filter.

All products in the filter have to be shown in preview before any of them are deleted. You can see the total number of products that would be removed and double-check the names. No accidents. I’ve seen many merchants set a wrong filter and accidentally delete their ENTIRE CATALOG until they realized what was happening. The preview step prevents that.

You can also schedule items to delete out of the app. So if you get weekly drops from a supplier, you can set up the system to delete last week’s items the day this week that new items arrive. There is also a ‘trash’ feature to allow for Archive instead of delete, for items you may want to retrieve at a later time.

Note that the app does NOT create 301 redirects for you, and for SEO reasons you should probably do this yourself in your sites pages or site settings. Read the next step for why.

SEO cleanup after deleting products

Deleting a product removes the URL from the product page from the product’s URL. If the URL was indexed in Google, all those search results are now 404s to the shopper. This is bad for the shopper and really bad for your crawl budget.

For the fix, you need to add 301 redirects for the deleted products. The redirects should point to either relevant products or the parent collection. For the implementation, Shopify has a native redirect function found under Settings > Navigation > URL Redirects. For large numbers of redirects, you can upload them via a CSV file or use our Redirect CSV Generator to make the process faster.

After removing the items from your store, go ahead and resubmit your sitemap in the Google Search Console. As mentioned before, your sitemap /sitemap.xml updates automatically. However, you may want to instruct the Google spider to crawl your store again to remove the deleted products from search results index as quickly as possible. Using our Sitemap Checker you can check if the deleted products are really removed from your sitemap.

If there were backlinks to the deleted products, the 301 redirect should now follow those links and bring whatever link equity those deleted products had. Don’t’ forget this step – I’ve seen stores drop as much as 15% in organic traffic after a big product clean up because they forgot to add redirects. See the full Shopify SEO checklist for this step and more.

How often should you clean up?

Quarterly. Seriously. Most store product inventory doesn’t get cleaned out and reorganized unless it’s absolutely necessary-like before a sale, or before a redesign of a part of the site. And by the time it’s time to clean things up, it can seem like a huge job.

Set a recurring calendar event every 90 days to remind yourself to do this task. Filter your catalog for zero inventory products that have been out of stock for more than 60 days. Go through the list and archive/delete the products and create the necessary redirects. This task only takes about 30 minutes if you do it on a recurring basis. But if you only do it once a year, it will take a full day and simply isn’t worth the risk of forgetting.

Stores with high SKU turnover (such as fashion and seasonal products) should aim to remove out of stock or discontinued items on a monthly basis. If you are running a dropshipping store with suppliers who regularly discontinue items, you may find it is faster to automate the process entirely using the scheduled delete feature in the Bulk Delete Products app.

And if you are reorganizing your catalog structure during this process of cleaning up your shop, check out this guide on how combined listings work so you don’t mistakenly delete products that could be grouped within a combined listing. The problem may not be as much the number of products as the way you have set up your product structure.

Dealing with out-of-stock variants (not whole products)

Variants of products can be a problem, even if the majority of the variants are in stock and full quantity. For example, someone might create a product for 12 different colors of t-shirts, where 8 of the color variants are permanently out of stock. The correct action in this situation would NOT be to delete the product, as the 4 in-stock variants would still be selling. However, having 8 “Sold Out” variants clutter the product page and confuses the shopping experience for customers.

Shopify allows you to delete product variants from the product editor. For a few products this is fine but for hundreds of products it is far easier to use the bulk variant editor or re-import products from a CSV file with only the active product variants included.

Hide sold out options: Rather than deleting the options you no longer have in stock, you could hide them. This will keep the product variants functioning as inventory trackers in the backend of your site, but the customer will not see the out of stock option. This is particularly useful for stores where hiding out of stock options is a problem in the first place. Some variant image apps, like Rubik, allow you to adjust the swatches so that out of stock options are not visible.

FAQ

Can I recover a deleted Shopify product?

No. Once you delete the product, all associated content and variant information will be permanently removed from the store and cannot be retrieved. Once a product is deleted, it cannot be restored. Shopify does not have a recycle bin to store deleted products. Please be advised that it is not possible to un-delete a deleted product. However, you can archive products first and then delete the archived products if required.

Does deleting products affect my SEO?

If you don’t set up 301 redirects. When you delete a product, your customers are going to get a 404 error if they had bookmarked that page or found it via Google. You should redirect that old URL to a relevant product/collection page. Our Redirect CSV Generator helps you create a redirect file in no time.

What is the fastest way to delete 500+ out-of-stock products?

The Shopify admin only supports up to 50 selections per page and becomes unreliable when attempting large bulk deletes. Use the CS Bulk Delete Products app to filter by certain criteria (in this example, inventory level and date), then preview the match list and confirm the delete. The app will then process the deletion in the background.

Should I delete or archive seasonal products?

Archive. Seasonal products. Archiving a product does not remove it from Shopify but will hide it from your website and online sales channels. Listings, images, reviews and website SEO details will all be preserved. Simply set the product to active again when the season returns and the product will be back to normal without any page recomputes.

Can I schedule automatic product deletions?

Shopify doesn’t support scheduled automatic product deletions in their native admin. The CS Bulk Delete Products app does. Set up your filters, then schedule the cleanup to run at intervals chosen by you.

Does archiving a product remove it from Google?

Archiving a product changes its status to “archived” which means it will no longer be displayed in the storefront or in any online sales channels. Shopify’s sitemap will remove the archived products after the next crawl, however Google can take up to weeks to remove the URL from their search index. If you need the product removed faster you can use Google Search Console’s URL Removal tool.

Want to clean up your catalog in just minutes? Install CS Bulk Delete Products and clean out products in your store filtered by multiple criteria in under 5 minutes!