RT Product Cleanup – Bulk Delete Products for WooCommerce
R

RT Product Cleanup – Bulk Delete Products for WooCommerce

0/5 (0 ratings) 40 active installs Updated Nov 15, 2026
Filter tabs: General, Categories & Attributes, Inventory, Pricing & Sales, Product Data, Custom Fields, Advanced.

Filter tabs: General, Categories & Attributes, Inventory, Pricing & Sales, Product Data, Custom Fields, Advanced.

Bulk Delete Products for WooCommerce (Raintech Product Cleanup) is a WooCommerce admin tool that finds exactly the products you want to remove and deletes them safely in batches. You build filters, click Find products, review the list, untick anything you want to keep, download a CSV backup, and confirm.

It is made for stores with hundreds or thousands of products: old imports, discontinued items, duplicate listings, products that never sold, products missing images or prices, or catalogs that need a clean start.

What can this plugin do?

  • Delete WooCommerce products in bulk – move them to the Trash or delete permanently.
  • Filter by product meta (custom fields) – any post-meta key, 21 comparison operators, text / number / decimal / date / time comparison, key autocomplete, wildcards for repeater rows.
  • Filter by ACF (Advanced Custom Fields) – pick a field and the operators adapt to its type: text, number, true/false, select, checkbox, relationship, image, file, date, date-time, time, repeater row count and repeater sub-fields.
  • Filter by product attributes – global attributes (Color, Size…), any custom product taxonomy, and custom per-product attributes by name and value.
  • Filter by category, tag, brand and shipping class – has any, all or none of the selected terms, include sub-categories, or products with no term at all.
  • Find products that never sold – filter by never ordered, ordered, number of order items or units sold.
  • Find duplicate products – same title, same title and price, or titles that differ only by “(2)” or “Copy”; keep the oldest, newest, lowest or highest ID.
  • Preview before deleting – table with image, SKU, price, type, status, stock, categories, past orders and date.
  • Export a CSV backup of the matched products, including the meta and ACF columns you filtered on.

Every filter, by tab

General

  • Status: published, draft, pending, private, scheduled, trash
  • Product type, catalog visibility (shop / search / hidden), featured
  • Title: contains, does not contain, starts with, ends with, exact, list, regex
  • Keyword search, created date range, modified date range
  • “Created more than N days ago” and “not edited for N days”
  • Author, password protected, has featured image, has gallery, has description, has short description

Categories & Attributes

  • Categories, tags, brands, shipping class
  • Global attribute rules: has any of, all of, none of, has any value, has no value
  • Custom (per-product) attribute rules: has attribute, value equals, value contains

Inventory

  • Stock status, backorders, stock management, stock quantity range
  • Sold individually, number of variations (find variable products with none)

Pricing & Sales

  • Current, regular and sale price ranges, has a price
  • On sale now, not on sale, sale scheduled, sale schedule ended
  • Units sold, never ordered / has been ordered, number of order items
  • Average rating, number of reviews, reviews enabled
  • Tax status and tax class

Product Data

  • SKU: contains, starts with, ends with, exact, list, regex, plus variation SKUs
  • GTIN / UPC / EAN / ISBN, external product URL
  • Virtual, downloadable, weight, length, width, height
  • Has upsells, cross-sells, purchase note

Custom Fields (Meta & ACF)

  • Unlimited meta rules and ACF rules with AND / OR logic
  • Operators include equals, not equals, greater / less than, between, in list, contains, starts / ends with, regex, exists, does not exist, is empty, is not empty

Advanced

  • Only these IDs / never include these IDs (ranges like 40-55 allowed)
  • Duplicate finder, sorting, skip and limit (for example, keep the 100 newest and delete the rest)

Built to prevent mistakes

  • Review first – nothing is deleted until you search, review and confirm.
  • Untick individual products – select all, none or invert, with pagination.
  • Stale-result protection – if you change a filter after searching, Delete is disabled until you search again.
  • Typed confirmation – permanent deletion requires typing DELETE.
  • Order warning – you are told how many selected products appear in past orders.
  • CSV backup before deleting.
  • Images handled carefully – media is only removed for permanent deletes, and never if another product still uses it.
  • Batch processing – adjustable batch size, progress bar and a Stop button, so large catalogs do not time out.
  • Presets – save and reuse filter sets.
  • History – log of the last 50 bulk operations, with the filters used.
  • Permissions – requires the delete_products capability and checks each product.

Works with

  • WooCommerce (required), including High-Performance Order Storage (HPOS)
  • ACF free and ACF PRO (optional)
  • Any plugin that stores product data in post meta or product taxonomies

Hooks for developers

  • rtbd_query_args – filter the WP_Query arguments before the lookup
  • rtbd_matched_ids – filter the final list of matched product IDs
  • rtbd_before_delete_product – action fired before each product is removed

The admin screen is a React app (its own bundled React) compiled with @wordpress/scripts. Source is in src/, compiled output in build/.

Support

Need help? Contact us at https://raintech.pages.dev/contact