Descrizione
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.
Why Duplicate Products Hurt Your Store
- Duplicate product URLs compete against each other in search engines, splitting ranking authority and suppressing both listings.
- Customers landing on duplicated product pages see inconsistent pricing, stock levels, or descriptions — eroding trust.
- Orphaned product meta, variation records, and postmeta rows from duplicates bloat your database and slow down admin queries.
Key Features
Three Detection Methods
Scan your entire product catalogue for duplicates using the method that fits your situation:
- By Title — finds all published products and product variations sharing an identical name.
- By SKU — queries the
_skupostmeta field and surfaces every product or variation sharing the same SKU. Empty SKUs are excluded automatically. - By Both (Title + SKU) — runs both scans simultaneously, merges results into a single deduplicated list, so you see every duplicate regardless of how it was created.
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.
Who Is This Plugin For?
- Store managers who have run product imports multiple times and ended up with hundreds of duplicate listings.
- Developers and agencies migrating a store from another platform and needing to clean up the imported catalogue quickly.
- Store owners whose WooCommerce admin is slow and suspect a bloated products table is the cause.
- SEO-focused merchants who need a clean catalogue with no duplicate URLs competing against each other in search results.
How It Works
- Go to WooCommerce Delete Duplicates in your WordPress admin.
- Choose your detection method: Title, SKU, or Both.
- Click Scan for Duplicates — the plugin queries your database and returns grouped results instantly.
- Review each group. View the name, SKU, price, stock status, creation date, and links for every product in the group.
- Select the products you want to remove — individually, by group, or across all groups at once.
- Click Delete Selected and confirm in the dialog.
- The plugin permanently deletes selected products (and their variations if applicable) and shows a deletion summary.
Technical Details
- Detection queries run directly against
{prefix}_postsand{prefix}_postmetausingGROUP BYandHAVING COUNT(*) > 1— no full table scans. - Scans cover
post_type IN ('product', 'product_variation')andpost_status = 'publish'only. Drafts, pending, private, and trashed products are excluded. - Admin page is mounted under WooCommerce Delete Duplicates and gated by the
manage_woocommercecapability. - REST API namespace:
rtddpw/v1. Endpoints:GET /duplicates?method=title|sku|bothandPOST /delete. - Built with the
@wordpress/scriptsbuild toolchain; dependencies resolved viaindex.asset.php. - Singleton pattern ensures a single plugin instance throughout the request lifecycle.
- Internationalisation-ready — all user-facing strings use
__()and_n()with text domainrt-delete-duplicate-products-for-woocommerce. - RTL stylesheet (
index-rtl.css) included and loaded automatically for right-to-left languages.
Screenshot
Installazione
Automatic Installation
- Log in to your WordPress admin panel.
- Navigate to Plugins Add New.
- Search for RT Delete Duplicate Products for WooCommerce.
- Click Install Now, then Activate.
Manual Installation
- Download the plugin .zip file.
- Go to Plugins Add New Upload Plugin.
- Upload the .zip and click Install Now.
- After installation, click Activate Plugin.
After Activation
- Make sure WooCommerce is installed and active — the plugin will deactivate itself and display an admin notice if WooCommerce is missing.
- Navigate to WooCommerce Delete Duplicates.
- Choose a detection method and scan your catalogue.
FAQ
-
Does this plugin require WooCommerce?
-
Yes. WooCommerce must be installed and active. The plugin checks for the
WooCommerceclass both on activation and on every load. If WooCommerce is missing, the plugin deactivates itself and shows an admin notice. -
What detection methods are available?
-
Three methods are supported. Title finds products sharing the same product name. SKU finds products sharing the same
_skumeta value (blank SKUs are excluded). Both runs both scans and merges results, so you see every duplicate from either method in a single grouped list. -
Does the plugin handle variable products and their variations?
-
Yes. When a variable product is deleted, all of its child variations are deleted first, preventing orphaned records. Individual variation products can also be detected as duplicates in their own right and deleted independently.
-
Are deletions permanent? Can I undo them?
-
Yes, deletions are permanent. The plugin uses WooCommerce force-delete (
$product->delete( true )), which bypasses the trash and removes all associated product metadata immediately. A confirmation dialog is always shown before any delete action. Always back up your database before running bulk deletions. -
What product information is displayed for each duplicate?
-
Each product in a group shows its name, SKU, price, stock status, creation date, a direct WordPress edit link, and the frontend product permalink — enough to compare duplicates side-by-side and decide which one to keep.
-
Can I keep one product and delete the rest of a group automatically?
-
Yes. The Keep One, Delete the Rest option lets you nominate which product to keep, then automatically queues all others in that group for deletion.
-
Who can access the Delete Duplicates page?
-
Only users with the
manage_woocommercecapability — typically WordPress Administrators and WooCommerce Managers. The REST API endpoints enforce the same capability check on every request. -
Will scanning slow down my site?
-
Detection queries use optimised SQL and run only when you click Scan — they are never triggered automatically or on page load. For very large catalogues (10,000+ products), the scan may take a few seconds but will not affect your store’s frontend performance.
-
Does this plugin affect draft or trashed products?
-
No. The duplicate detector filters for
post_status = 'publish'only. Drafts, pending, private, and trashed products are never included in scan results. -
Is RTL language layout supported?
-
Yes. A dedicated RTL stylesheet (
index-rtl.css) is included and loaded automatically for right-to-left languages. -
Does this plugin work on WordPress Multisite?
-
Yes. The plugin functions on Multisite installations when activated per-site.
Recensioni
Non ci sono recensioni per questo plugin.
Contributi e sviluppo
“RT Delete Duplicate Products for WooCommerce” è un software open source. Le persone che hanno contribuito allo sviluppo di questo plugin sono indicate di seguito.
CollaboratoriTraduci “RT Delete Duplicate Products for WooCommerce” nella tua lingua.
Ti interessa lo sviluppo?
Esplora il codice segui il repository SVN, segui il log delle modifiche tramite RSS.
Changelog
3.0.0
- Full architectural refactor using the singleton pattern for safe, predictable initialisation.
- REST API updated to namespace
rtddpw/v1withGET /duplicatesandPOST /deleteendpoints. - All REST endpoints now require
manage_woocommercecapability with nonce verification. - Detection updated to scan both
productandproduct_variationpost types. - Variable product deletion now removes all child variations first, preventing orphaned variation rows.
- Added “Keep One, Delete the Rest” workflow per duplicate group.
- Product detail view expanded to include price, stock status, creation date, edit URL, and frontend permalink.
- React admin UI rebuilt with
@wordpress/scriptsand WordPress component library. - RTL stylesheet added for right-to-left language support.
- Full internationalisation implemented across all user-facing strings.
- Improved validation and sanitisation on the REST delete endpoint.
1.0.0
- Initial release — basic duplicate detection by title, bulk deletion, and confirmation dialog.

