Finding your next read
Practical craft for people building for the web.
Explore DevelopmentFinding your next read
THE FINDERPRESS TOOL DIRECTORY
Explore this tool and check the official listing for its latest features and requirements.
01 / SOURCE DETAILS
🚀 GitHub Repository – Found a bug or have a feature request? Let us know! 💬 Slack Community – Got questions or just want to chat? Come hang out with us on Slack! A WordPress database collects data it no longer needs: old post revisions, auto-drafts, trashed posts, spam comments, expired transients, meta left behind by deleted content, and options and tables left behind by plugins you removed. This plugin shows you all of it, lets you preview exactly what would be deleted, and cleans it up on demand or on a schedule. It is a database cleaner and optimizer, not a malware scanner: it removes unused data, it does not look for malicious code. <?php echo 'Small database, fast site.'; ?> 🚀 Everything in One Place Cleanup, table optimization, a scheduled-events (cron) manager, and the deepest wp_options and autoload tools available: a tracker that finds autoloaded options your site never actually reads, per-option history with one-click restore, and automatic snapshots before risky changes. ✨ Key Features Database Cleanup – Remove post revisions, auto-drafts, trashed posts, spam, trashed and pending comments, pingbacks and trackbacks, orphaned post/comment/term/user meta, duplicate meta, orphaned term relationships, oEmbed caches, expired transients, and content left behind by post types that no longer exist. Every type shows a live count. Preview Before You Delete – See exactly which rows a cleanup would remove, and keep the last N days of anything with a date. Scheduled Cleanups – Give each cleanup type its own schedule (hourly, twice daily, daily, weekly or monthly) with its own keep-the-last-N-days rule. No limit on the number of schedules. Action Scheduler Cleanup – Clear finished, failed and canceled actions and their logs (WooCommerce and many other plugins fill these tables). Tables: Sizes, Optimize, Repair – Every database table with its rows, size, overhead and engine. Optimize and repair tables, convert MyISAM to InnoDB, and find tables left behind by removed plugins; those can be emptied or dropped after you type the table name to confirm. Scheduled Events (Cron) Manager – See every scheduled event with its next run and owner, run one now, delete it, and spot events that may belong to plugins you removed. Database Health Dashboard – An at-a-glance scorecard (0–100) with database size, autoload size, cleanable rows, transient and orphan counts and last backup, with prioritized one-click recommendations. Activity Log – A recent-activity summary on the Dashboard plus a dedicated, searchable and filterable Activity tab showing every change and who made it. The log keeps the latest 300 changes within your retention period. No Extra Tables – The plugin adds no database tables of its own. Its history and snapshots are stored as non-autoloaded options with fixed size limits, and all settings live in a single option. Modern React Interface – A fast, dashboard-first admin app organized into Dashboard, Browse, Optimize, Tools, Integrations, and Settings. Autoload Usage Tracker – Records which autoloaded options are actually used on real front-end page loads, then flags the ones that are never used so you can safely turn off their autoload; filter the list by usage status and bulk-disable every unused option at once. Autoload Health Check – Analyze total autoloaded data size and identify heavy options that slow down your site. Transients Manager – Dedicated view of every transient with size, expiration, status, and its guessed owner (a plugin, theme, or WordPress core); filter by status or owner, add and edit values (with expiration) directly, and select rows to bulk delete. Manage Options – Add, edit, and delete options with sortable columns, search, pagination, and bulk delete; filter the list by guessed owner (a plugin, theme, or WordPress core). Usermeta, Postmeta, Commentmeta & Termmeta Support – Browse, add, edit, and delete user, post, comment, and term meta entries just like options; narrow usermeta or postmeta to a single user or post by searching its name/title in a type-ahead picker. On multisite, user meta (shared by every site in the network) is available only to network administrators. Serialized Data Handling – Serialized and JSON values open as structured data you can edit safely, and are saved back in their original format. Scheduled Backups & Snapshots – Create restorable snapshots of your wp_options table manually or on a daily/weekly schedule, with automatic snapshots taken before Search & Replace and Import. Snapshots are compressed and skip transients, so they stay a small fraction of the table they protect; a scheduled snapshot is skipped when nothing has changed. The latest 15 are kept (the oldest is removed automatically), and the Backups panel shows how much space they use. Option History & Rollback – Every option edit and delete is recorded with its previous value. Open any option’s History from its row in Browse, or use the Activity tab, and restore a previous version in one click. Orphan Scanner – Find and clean up leftovers from uninstalled plugins. Options Table Analytics – See every option grouped by its name prefix with a row count, sorted highest first, so you can spot which plugin’s options weigh the most on your wp_options table. History Retention – Keep the change history for as many days as you choose, pruned daily or on demand with “Prune history now”. Settings shows how many entries the history holds and how much space it uses. Global Search & Replace – Safely replace strings across the options table, with a live count of matching options as you type and a dry-run preview that lists every match. Import / Export – Export every option, or search and pick just the ones you need. Import shows a preview first (new, modified, unchanged or protected, with the current value) so you choose exactly which options to bring in; files are checksum-verified, and exports from older versions import too. Integrations – Browse third-party plugin tables (WP Recipe Maker ratings, analytics and changelog; Better Payment) from the same interface with search and sortable columns. Tables whose plugin is no longer active are flagged. Allow HTML in Option Values – Off by default: HTML is stripped from option values you add or edit. Turn it on to store values exactly as entered. Follows WordPress’s own rule: only users allowed to save unfiltered HTML can store it. Core Option Protection – WordPress core options can’t be deleted by accident. Multisite Ready – Network-activate it and every site gets its own Database Cleaner for its own data, history, snapshots and schedules. A Network Admin screen lists every site with its database and autoload size, and lets network administrators browse and clean network-wide options and site transients. User meta, which is shared across the network, is limited to network administrators, and uninstalling cleans up every site. WP-CLI Support – wp nhrotm list and delete for options, wp nhrotm cleanup list and cleanup run <type> [--older-than=<days>] [--dry-run] for cleanups, and wp nhrotm tables list and tables optimize . Every list takes --format=json . The earlier wp nhr-options command name still works. AI Agent & MCP Ready – On WordPress 6.9 and later the plugin registers its features with the WordPress Abilities API, so AI agents and MCP clients (through the WordPress MCP Adapter) can read the health score, cleanup counts, autoload report, tables and cron events, preview a cleanup, and run the safe actions: a cleanup (dry run by default), disabling autoload for an option, optimizing a table and taking a snapshot. Administrators only. Option values are never returned, and nothing irreversible beyond a cleanup is offered. ⚡ Easy Installation & Instant Setup No complex configurations needed! Just install, activate, and head to Tools → Database Cleaner for the dashboard-first interface. 🎯 Safe by Design WordPress core options, tables and scheduled events are protected. Cleanups show a count and a preview before anything is deleted, options changes can be restored from history, and a snapshot of your options is taken automatically before Search & Replace and Import. Cleanups of posts, comments and meta cannot be undone from the plugin, so keep a full database backup as you would before any maintenance.
02 / SOURCE DETAILS
Install the plugin from Plugins → Add New , or upload the plugin folder to /wp-content/plugins/ . Activate it. Go to Tools → Database Cleaner . That’s it! You’re done.
03 / SOURCE DETAILS
Where do I find the plugin after activating it? Go to Tools → Database Cleaner . On multisite, network administrators also get Network Admin → Settings → Database Cleaner . Is this a malware or virus scanner? No. It cleans up unused data (revisions, drafts, spam, expired transients, leftovers from removed plugins) and optimizes tables. It does not scan for or remove malicious code. What exactly can it clean? Post revisions, auto-drafts, trashed posts, spam, trashed and pending comments, pingbacks and trackbacks, orphaned and duplicate meta, orphaned term relationships, oEmbed caches, expired transients, Action Scheduler logs, and content of post types that are no longer registered. Each one shows a count and a preview first. Can I undo a cleanup? Changes to options can be restored from Activity, and snapshots cover the options table. Cleanups of posts, comments, meta and tables are permanent, which is why each one shows a preview and asks for confirmation. Take a full database backup before a large cleanup. Will a schedule delete things without asking? Yes, that is what a schedule is for. Schedules are off until you turn one on, each has its own keep-the-last-N-days rule, and the riskier cleanups (duplicate meta, unregistered post types) can only be run manually. Is it safe to drop a table? Only tables that no installed plugin or theme claims can be emptied or dropped, and you have to type the table name to confirm. WordPress core tables and tables of installed plugins are protected. Does this plugin require any dependencies? No, it works as a standalone plugin. Will it affect my website’s performance? No, but it will help you optimize your database for better performance. The optional Autoload Usage Tracker records which autoloaded options are read on front-end page loads, and stops writing once it has sampled 10,000 page loads. Is it safe to delete options? What if I remove something important? WordPress core options are protected and can’t be deleted. Every option edit and delete is recorded in Activity, so you can restore an option to its previous value, and you can take a snapshot of the whole wp_options table before any cleanup. The plugin also takes one automatically before Search & Replace and Import. Can I edit, delete, and add options easily? Absolutely! Add and edit options in a modal, or select rows to bulk delete. The same works for usermeta, postmeta, commentmeta, termmeta, and transients. Does it support serialized data? Yes! Serialized and JSON values open as structured data for editing and are saved back in their original format. Can I delete expired transients? Yes. Delete them from Cleanup or the Transients tab, or give expired transients a schedule on the Cleanup screen. Can it find and remove leftover options from plugins I’ve already uninstalled? Yes, the Orphan Scanner cross-references wp_options prefixes against your installed plugins and flags anything left behind so you can clean it up safely. Does it help with autoloaded data specifically? Yes. The Autoload Health Check shows total autoload size and your heaviest autoloaded options, and the Autoload Usage Tracker flags autoloaded options that are never read on the front end so you know which ones are safe to turn off. How long should I let the Autoload Usage Tracker run? Let it collect data across normal traffic for a few days, so rarely visited pages are covered too. An option marked “Unused” was never read during that period, which makes it a good candidate. Review the name before you turn off autoload. Can I back up my options table before making changes? Yes. You can create manual snapshots or schedule daily/weekly backups, and the plugin automatically snapshots before Search & Replace and Import operations. Is there a command-line interface? Yes. wp nhrotm list and delete manage options, wp nhrotm cleanup list and cleanup run <type> run cleanups (with --older-than=<days> and --dry-run ), and wp nhrotm tables list and tables optimize cover tables. Add --format=json to any list for machine-readable output. The earlier wp nhr-options command name still works as an alias. Can an AI agent or MCP client use this plugin? Yes, on WordPress 6.9 or later. The plugin registers twelve abilities with the WordPress Abilities API (they all start with nhrotm/ ). Eight only read: health score, cleanup types and counts, cleanup preview, autoload report, tables, cron events, option search and the activity log. Four make changes: run a cleanup (it only counts rows unless the agent passes dry_run: false ), disable autoload for an option, optimize a table, and create a snapshot. To use them over MCP, install the WordPress MCP Adapter plugin; this plugin does not bundle it and contains no AI model of its own. What can an AI agent not do? It can’t read option or meta values (they often hold API keys), edit or delete individual options, empty or drop tables, run Search & Replace, import, delete cron events or change settings. Every ability requires an administrator ( manage_options ), the same as the admin screen. Which PHP versions are supported? PHP 7.4 and every later version. Each change is tested on PHP 7.4 through 8.5, and on the upcoming 8.6. I used the menu capability filter in 1.x. Do I need to change anything? Yes. In 2.0.0 the filter was renamed from nhrotm-options-table-manager/menu/capability to nhrotm_menu_capability . Update your callback to use the new name. What happens to my data when I delete the plugin? Deleting the plugin removes its own settings, schedules, history and snapshots (on every site of a multisite network). The plugin creates no database tables of its own. It never touches the data you managed with it.
KEEP EXPLORING