DBStorage Insights
DBStorage Insights is a single, no-nonsense audit tool that answers the question „why is my WordPress site this big?“ — both on disk and in the database — and gives you safe, one-click cleanup for the most common culprits.
Everything happens inside Tools -> DBStorage Insights. No external services. No tracking. No premium upsell. Just real numbers.
What it shows you
The plugin is organized into nine focused tabs:
- Posts & Pages — database size used by each post (content + revisions + postmeta + comments), sortable, filterable by post type, searchable. Delete revisions per post or site-wide.
- Plugins — disk size of every plugin in
wp-content/plugins/, with active/inactive status and file count. Click any plugin name to drill down and see exactly where its disk space goes: top-level folders, file-type breakdown, and the 20 largest individual files. Finally know why that one plugin is 350 MB. - Themes — disk size of every theme, with active / parent / inactive status. Same drill-down view as plugins.
- Autoload & Transients — total autoload weight, the 20 largest autoloaded options (the #1 hidden performance killer in WordPress), and a one-click „Disable autoload“ button per option. Core options are flagged so you don’t break the site. Plus: expired and orphaned transient counts with a single-button cleanup.
- Database & Cleanup — raw
SHOW TABLE STATUSfor every table (rows, data, index, reclaimable overhead) with a per-table Optimize button. One-click cleanup for orphaned postmeta, orphaned termmeta, spam comments, trashed comments, trashed posts, and abandoned auto-drafts. Known high-volume plugin tables (WooCommerce sessions, Action Scheduler, Wordfence, WP Statistics, Redirection, etc.) are annotated so you know what’s safe to clear. - Uploads — total
wp-content/uploadssize, breakdown per year/month, the 20 largest files, and oversized image detection (anything over 1 MB). - wp-content — full disk breakdown of
plugins/,themes/,uploads/,cache/,upgrade/,mu-plugins/,languages/, and „other“ as a visual bar chart. Lists known cache/backup folders (UpdraftPlus, All-in-One WP Migration, BackUpWordPress, WPvivid, W3 Total Cache, LiteSpeed, Divi cache, etc.), must-use plugins, and active drop-ins (object-cache.php,advanced-cache.php,db.php). One-click delete forwp-content/debug.log. - History — daily WP-Cron snapshots of database size with a trend chart and snapshot log. Spot „the DB grew 500 MB last month“ growth before it becomes a crisis.
- System Info — WordPress version and constants, PHP runtime limits, MySQL server variables (max packet, wait timeout, InnoDB buffer pool), disk free space, loaded PHP extensions, and the plugin’s own schema/cron status. Useful for support requests and for understanding why a particular limit might affect what the plugin can scan or clean up.
How it works
- Read-only by default. Every cleanup action is an explicit click with a confirmation dialog. Nothing is deleted in the background.
- Real measurements. Database content sizes come directly from
LENGTH()of the underlying columns; on-disk sizes come fromSHOW TABLE STATUS; plugin, theme, uploads, and wp-content sizes come from a recursivefilesize()walk. - Cross-version aware. Works on WordPress 6.4 and later. Detects both the legacy autoload values (
yes/no) and the WordPress 6.6+ values (on,auto,auto-on). - Cached scans. Disk walks are cached for 10 minutes so opening the admin page again is instant. Use the „Recalculate sizes“ button on any tab to force a fresh scan.
- No external requests. The plugin runs entirely on your server and does not send any data to a remote service.
- Front-end untouched. Nothing runs on the public side of the site. All measurement and cleanup work happens only on the Tools page.
Configuration
There is no settings page. After activation, open Tools -> DBStorage Insights and use the tabs along the top. Every destructive action is gated behind a confirmation dialog. For large operations (site-wide revision deletion, orphaned-metadata cleanup, large spam/trash purges) the plugin processes records in batches with a progress indicator so the request never times out.
