🎉 Use coupon MYXERO to enjoy 20% recurring discount on any plan. View Pricing
Biddut Revision Cleaner
Biddut Revision Cleaner

Biddut Revision Cleaner

0/5 (0 ratings) — active installs Updated Apr 20, 2026
Dashboard — Analyze and Cleanup with live stats grid and breakdown table

Dashboard — Analyze and Cleanup with live stats grid and breakdown table

Biddut Revision Cleaner helps you take full control of WordPress post revisions. Set smart retention rules per post type, analyze your database before touching anything, preview exactly what will be deleted, and clean with a single confirmed click — safely and without guesswork.

The plugin covers all post types that support revisions — not just public ones. This includes Reusable Blocks (wp_block), Full Site Editing Templates (wp_template), Template Parts (wp_template_part), Navigation menus (wp_navigation), and any custom post type that registers revision support.

Smart Revision Retention Rules

  • Global Retention Limit — Keep only the last X revisions per post site-wide. Set to -1 for unlimited, 0 to keep none.
  • Per-Post-Type Limits — Override the global limit for Posts, Pages, Reusable Blocks, FSE Templates, and any Custom Post Type individually
  • Age-Based Deletion — Optionally delete revisions older than a configurable number of days during cleanup
  • Auto-Draft Cleanup — Option to remove orphaned auto-drafts alongside revision cleanup

One-Click Safe Cleanup

  • Analyze First — Scan your full database before making any changes
  • Live Stats — See total revision count, how many will be deleted, estimated space freed, and number of posts affected
  • Breakdown Table — Per-post-type summary showing total revisions, revisions to delete, and active retention limit per type
  • Preview List — See individual revisions (up to 50) queued for deletion — post title, date, and author shown
  • Confirmation Prompt — Explicit confirmation step before any deletion takes place

Scheduled Cleanup (v1.1.0)

  • Enable Auto-Cleanup — Run cleanup automatically on a schedule, no manual action required
  • Daily / Weekly / Monthly — Choose the default frequency that suits your site
  • Preferred Run Hour — Set the hour of the day (0–23, site local time) when the scheduled cleanup fires. Choose an off-peak window to avoid busy traffic periods.
  • Per-Post-Type Frequency — Each post type can have its own cleanup schedule independent of the global default. Options: Use Default, Daily, Weekly, Monthly, or Disabled (excludes the type from scheduled cleanup entirely).
  • WP-Cron Integration — Runs silently via WordPress’s built-in task scheduler
  • Next Run Indicator — Settings page shows when the next scheduled cleanup will fire

Post-Cleanup Email Notifications (v1.1.0)

  • Enable Email Summary — Automatically receive a summary email after every scheduled or smart-triggered cleanup run
  • Configurable Recipients — Enter one or more email addresses (comma-separated). Invalid addresses are silently skipped.
  • Email Content — Summary includes: trigger type, revisions removed, auto-drafts removed, space freed, duration, and the date/time of the next scheduled run
  • Manual cleanup runs do not trigger an email — only automated (scheduled or smart) runs send notifications

Smart Trigger Mode (v1.1.0)

  • Enable Smart Triggers — Master toggle for all threshold-based auto-cleanup
  • Global Revision Count Threshold — Trigger a full site-wide cleanup when total revisions exceed a configured number
  • Per-Post-Type Revision Thresholds — Each post type can have its own threshold. Only that type is cleaned when its individual count is exceeded — without touching the rest of the site
  • Database Size Threshold — Trigger a full site-wide cleanup when the estimated revision table footprint exceeds a configured MB value
  • Asynchronous Execution — The threshold check on each page load is lightweight (at most two queries). When triggered, the actual cleanup is dispatched to a background WP-Cron job so the current page request is never blocked
  • Concurrency guard — A short-lived transient prevents multiple concurrent jobs from being queued simultaneously
  • Evaluation order — Global count Per-type counts DB size (each stage only evaluates if the previous did not trigger)
  • All three thresholds can be enabled simultaneously or independently
  • Every smart trigger run is logged in Cleanup Logs and triggers an email notification if enabled

Cleanup Logs

  • Full Cleanup History — Every cleanup run (manual, scheduled, or smart-triggered) is logged
  • Log Details — Date and time, trigger type, number of revisions deleted, auto-drafts removed, estimated space freed, and duration
  • Aggregate Totals — Lifetime totals for runs, revisions cleaned, and space freed shown at the top of the logs page
  • Paginated Log Table — Proper WordPress-style pagination with Prev/Next buttons, ellipsis for large page counts, and row count summary
  • Trigger Badges — Color-coded badges distinguish Manual, Scheduled, and Smart trigger runs
  • Clear All Logs — One-click log history reset with confirmation prompt

Post-Level Cleanup

  • Per-Post Cleanup Button — Remove excess revisions for a single post directly from the post editor sidebar, without running a full site cleanup
  • Revision Count Meta Box — Displays the current stored revision count and active retention limit per post
  • Revision Count Column — See revision counts at a glance in the Posts, Pages, and Custom Post Type list tables

Automatic Revision Trimming

  • Every time a post is saved, the plugin automatically trims revisions that exceed the configured retention limit for that post type — no manual cleanup needed for new saves

Lightweight & Secure

  • Covers all revision-supporting post types via post_type_supports() — not just public ones
  • Built using WordPress native APIs only — no external libraries or dependencies
  • Nonce verification on every AJAX request and every admin page GET interaction
  • current_user_can() checks before every privileged action — manage_options for admin operations, edit_post for per-post cleanup
  • Full input sanitization (sanitize_text_field, absint, sanitize_key, sanitize_textarea_field, wp_unslash) and output escaping throughout
  • PHP 8.1+ with declare(strict_types=1)

License

Biddut Revision Cleaner is licensed under the GPL v2 or later.
See https://www.gnu.org/licenses/gpl-2.0.html for details.

Privacy

This plugin does not collect, store, or transmit any user data outside your own WordPress database. Cleanup log entries are stored locally in a custom database table ({prefix}_bdrc_cleanup_logs) and can be cleared at any time from the Cleanup Logs page. Email notifications are sent using the site’s own wp_mail() function and do not involve any third-party services.

Support or Feature Requests

Contributing

Contributions are welcome! Visit the GitHub repository to submit a pull request or open an issue.

Credits

  • Built with WordPress
  • Follows WordPress coding standards and best practices
  • WordPress Dashicons used