

<strong>Detection Settings</strong> — Choose between Title, SKU, or Both detection methods and initiate a scan.
RT Delete Duplicate Products for WooCommerce is a fast, safe, and easy-to-use store cleanup tool that scans your WooCommerce catalogue for duplicate products and lets you permanently remove them in bulk — all from a modern React-powered admin interface inside your WooCommerce dashboard.
Duplicate products accumulate through CSV imports, API syncs, migration scripts, and copy-paste mistakes. Left uncleaned, they damage your store’s SEO rankings, confuse customers, and inflate your database. This plugin makes the cleanup process visual, controlled, and irreversible only when you say so.
Three Detection Methods
Scan your entire product catalogue for duplicates using the method that fits your situation:
_sku postmeta field and surfaces every product or variation sharing the same SKU. Empty SKUs are excluded automatically.Grouped Duplicate View
Results are displayed as grouped sets — every duplicate group shows all products that share the same title or SKU together. For each product in a group you can see: product name, SKU, price, stock status, creation date, a direct edit link, and a frontend permalink. All the information you need to decide what to keep and what to delete — without leaving the page.
Bulk Selection and Deletion
Select individual products or an entire duplicate group in one click. Delete across multiple groups at once. The plugin reports exactly how many products were deleted and how many (if any) failed, so you always know the outcome.
Keep One, Delete the Rest
For any duplicate group, nominate one product to keep and automatically queue the rest for deletion — the safest and fastest way to resolve each group without manual cherry-picking.
Safe Deletion with Confirmation Guard
Every delete action requires an explicit confirmation step. A modal dialog asks you to confirm before anything is permanently removed — protecting you from accidental bulk deletions.
Permanent Deletion — Bypasses Trash
Products are force-deleted using WooCommerce’s own $product->delete( true ) — they are not moved to trash. All associated postmeta is removed at the same time. This keeps the database clean and the operation final.
Full Variable Product and Variation Support
When a variable product is deleted, the plugin first loops through and removes every child variation before deleting the parent. Variation products that are themselves duplicates can also be detected and deleted independently. No orphaned variation rows are left behind.
React-Powered Admin Interface
Built with @wordpress/scripts and WordPress’s own component library, the interface looks and feels native to WordPress 6.x. All scanning and deletion happens over a secure internal REST API — no page reloads. RTL layout is fully supported.
Secure REST API
All API endpoints under /wp-json/rtddpw/v1/ require the manage_woocommerce capability. The scan endpoint validates the method parameter against an allowlist. The delete endpoint validates and sanitises every product ID before acting. Nonce verification is enforced throughout.
{prefix}_posts and {prefix}_postmeta using GROUP BY and HAVING COUNT(*) > 1 — no full table scans.post_type IN ('product', 'product_variation') and post_status = 'publish' only. Drafts, pending, private, and trashed products are excluded.manage_woocommerce capability.rtddpw/v1. Endpoints: GET /duplicates?method=title|sku|both and POST /delete.@wordpress/scripts build toolchain; dependencies resolved via index.asset.php.__() and _n() with text domain rt-delete-duplicate-products-for-woocommerce.index-rtl.css) included and loaded automatically for right-to-left languages.