A WordPress admin plugin to Customize and secure your WordPress dashboard
Look inside the database before blaming the host
A WordPress database cleanup shouldn't be a button that makes things disappear.. This tool shows you where the space went - expired transients, the largest tables, options loaded on every request - and deletes only what is safe to delete.
How it works
The page has three parts. Two are read-only and exist to give you a picture; the third is the only one that touches anything, and it deals with the most harmless data there is.
A single number tells you almost nothing: knowing your database is 480 MB doesn’t say whether that’s your content or an abandoned plugin’s leftovers. The page lists the ten largest tables with their row count and size on disk, ordered by weight, so the answer takes one glance instead of a session in phpMyAdmin.
It’s usually enough to spot the culprit. A log table from a plugin you removed two years ago, a statistics table nobody has looked at since launch, a queue that stopped being emptied — these are the entries that turn a database from tidy into unwieldy, and they never announce themselves. What the list won’t do is delete them for you: from the size alone there is no way to tell an orphaned table from one your shop still writes to every hour.
The advice is written in the page itself, not just here: big entries left by removed plugins should be reviewed, not deleted blindly. And before any cleanup, take a backup.
The same screen also holds the migration tool: a serialization-aware search and replace with a mandatory preview.
Frequently asked
Five answers on what takes up space, what actually slows a site down, and why this tool deletes so little.
Less often than the plugins offering it as a weekly routine would suggest. A tidy database isn’t a goal in itself: it matters only when something is slowing the site down or taking up space out of all proportion.
The sensible approach is to look rather than clean on a schedule. The page shows three lists — expired transients, the ten largest tables, and the heaviest options loaded on every request — and from those you can tell whether there is anything to do. On most sites the answer is no.
Transients are temporary caches that plugins store in the options table with an expiry date. When they expire WordPress doesn’t always remove them: they sit there as dead rows, and on a site with many plugins they can run into the thousands.
They are also the only thing this tool genuinely deletes, after an explicit confirmation. It is the safest database operation there is, because whoever wrote that data already declared it disposable. When there is nothing to clean the page says so, rather than showing a button that would do nothing.
They are the options WordPress loads into memory on every single request, even when no line of code will use them — the default behaviour of the WordPress Options API. A five-hundred-megabyte table nobody queries costs less in load time than two megabytes of autoloaded options left behind by a plugin you removed.
That’s why the list of heaviest options is the first place to look when a site is slow for no obvious reason. The table shows them with their size, so leftovers stand out on their own.
Because that’s a decision, not a missing feature. A large table might belong to a plugin you uninstalled — in which case it can go — or it might hold your orders, your statistics, or the data of a form you still use. From the list alone you cannot reliably tell, and a tool that let you drop it with one click would be the fastest way to lose data.
The list is informational on purpose: it tells you where to look, and you remove things knowing what you are removing. Core WordPress options are marked as protected and have no delete button at all; everything else takes two confirmations, and the second one shows the exact name.
Yes, and that is precisely why this tool does less than others. Plugins that optimise blindly — emptying revisions, trash, orphaned metadata and unknown tables in one pass — are a common cause of sites that stop working after maintenance, and the damage usually surfaces days later.
Take a backup before any cleanup. It is the only undo that exists once you write to a database, and the module is part of the same suite.