WP-Sweep is a WordPress Plugin Directory app by Lester Chan. With a rating of 4.7★ from 138 reviews, it currently ranks #288 in the Popular category.
WP-Sweep is the #288 ranked Popular app on WordPress, with a 4.7 average rating from 138 reviews, as of Sep 11, 2026.
AppRanks verdict
Generated from marketplace data as of Sep 11, 2026
WP-Sweep ranks #288 of 510 in Popular on WordPress. It holds a 4.7★ average from 138 reviews on WordPress.
Pros
+4.7★ average across 138 reviews
Cons
−No declared third-party integrations on the listing — verify compatibility with your existing tools before installing
How WP-Sweep works
Show full descriptionShow less
WP-Sweep finds the rows WordPress leaves behind and removes them. Revisions of posts you edited years ago, meta belonging to a post that was deleted, terms attached to nothing, term relationships pointing at posts that no longer exist, expired transients: none of it is visible anywhere in wp-admin, and all of it is in your database.
It uses the proper WordPress delete functions wherever they can reach the row, rather than running raw delete queries, so the hooks other plugins rely on still fire. Only the rows the API refuses to touch — orphaned meta whose object ID is 0 — are deleted directly.
Features
Revisions
Auto drafts
Deleted posts
Unapproved comments
Spammed comments
Deleted comments
Orphaned post meta
Orphaned comment meta
Orphaned user meta
Orphaned term meta
Orphaned term relationships
Unused terms
Duplicated post meta
Duplicated comment meta
Duplicated user meta
Duplicated term meta
Transient options
oEmbed caches in post meta
Optimizes database tables
Delete functions used
wp_delete_post_revision()
wp_delete_post()
wp_delete_comment()
delete_post_meta()
delete_comment_meta()
delete_user_meta()
delete_term_meta()
wp_remove_object_terms()
wp_delete_term()
delete_transient()
delete_site_transient()
Known incompatibilities
These plugins keep data in places WP-Sweep reads as orphaned. Protect their meta keys with the filters under Usage before sweeping.
Custom Fonts
Elementor Popup Builder
MailPress
Meta Slider
Polylang
Slider Revolution
Viba Portfolio
WPML
Donations
I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.
Usage
Every sweep is irreversible, so back your database up first.
The screen lists every sweep with a short description of what it removes, how many items that is, and what proportion of the table they are. Tick the ones you want and use the Sweep bulk action, or use each row’s Sweep and Details buttons one at a time. Nothing on the screen needs JavaScript: the buttons are ordinary links and the bulk action is an ordinary form.
There is no settings screen. The one thing worth tuning — how many items Details lists, 500 by default — is the wp_sweep_limit_details filter. The cap exists because the whole sample is held in memory and written into the page.
wp_sweep_postmeta_whitelist (array) — post meta keys that must never be deleted, by the orphaned or the duplicated post meta sweep. * matches any run of characters. Default: empty.
wp_sweep_commentmeta_whitelist (array) — the same, for comment meta.
wp_sweep_usermeta_whitelist (array) — the same, for user meta.
wp_sweep_termmeta_whitelist (array) — the same, for term meta.
wp_sweep_excluded_taxonomies (array) — taxonomies left out of the orphaned term relationships sweep. Default: array( 'link_category' ).
wp_sweep_excluded_termids (array) — term IDs left out of the unused terms sweep. Default: each taxonomy’s default term, plus any term that is the parent of another.
wp_sweep_limit_details (int) — how many items a Details list shows. Default: 500.
wp_sweep_defer_counts (bool) — whether the Sweep screen renders first and fetches its counts afterwards, one at a time. Return false to compute every count with the page, as versions before 2.0.1 always did. Default: true.
wp_sweep_capability (string $capability, string $context) — the capability required. $context is one of sweep, ajax or rest.
wp_sweep_total_count (int $count, string $name) — the total number of rows a sweep’s percentage is measured against.
wp_sweep_count (int $count, string $name) — how many items a sweep would remove.
wp_sweep_details (array $details, string $name) — the sample list shown by Details.
wp_sweep_sweep (string $message, string $name) — the message reported after a sweep has run.
Actions
wp_sweep_admin_post_sweep, `wp_sweep_admin_comment_sweep`, `wp_sweep_admin_user_sweep`, `wp_sweep_admin_term_sweep`, `wp_sweep_admin_option_sweep` and `wp_sweep_admin_database_sweep` all fire below the sweep table, in that order.