Cache plugins (kind of) clean your WordPress database, but they don’t let you remove tables left behind by old plugins.
They also don’t show you whether certain plugin modules are adding database bloat. This can happen when you run plugins & modules that collect lots of data (Wordfence, SEO plugins, etc).
That’s why you should install a database cleanup plugin like WP-Optimize. By removing unused tables and disabling plugin modules that add overhead, you can reduce your database size. This can speed up both the frontend and backend of your website while reducing CPU usage as well.
In this guide, we’ll install a database cleanup plugin, remove junk (trashed comments, transients, etc), remove old plugin tables, and learn which modules add the most overhead.
1. Backup Your WordPress Database
Use UpdraftPlus to backup your database.
You shouldn’t have to worry about this but in case anything goes wrong, you’ll have a backup. Install the plugin, go to your UpdraftPlus settings, and connect a third party service to download your files to (I use Dropbox). Once that’s done, you can do a 1-click backup. I normally don’t do this for regular maintenance but in case you’re not comfortable, a backup is always a good idea.
2. Install WP-Optimize
Install the WP-Optimize plugin then go to WP-Optimize → Database.
3. Remove Trash From Your Database
Now you’ll see 3 tabs for optimizations, tables, and settings.
We’ll start with optimizations. This is the junk most cache plugins already delete but you can also use WP-Optimize to do it. The screenshot below shows everything I would keep or delete.
- Optimize database tables: similar to defragmenting a hard drive only with your WordPress database. This reclaims unused space in your database tables which reduces the amount of storage and makes accessing your tables more efficient.
- Post revisions: before you delete post revisions, go to WP-Optimize → Settings and make sure you keep some post revisions (5-10 is usually fine). You want to keep some backups of your posts which are saved any time you hit the “publish” button. Or you can always limit post revisions manually with code or Perfmatters.
- Auto draft posts: if you exited your browser while editing your site, WordPress will automatically save your work as an auto draft. I wouldn’t delete these just in case.
- Trashed posts: when you delete pages/posts, they’re moved to the trash (delete).
- Spam and trashed comments: comments you marked as spam or trash (delete).
- Unapproved comments: blog comments you haven’t approved. Since I have moderate comments, there are usually quite a few of these I haven’t gotten to you. I wouldn’t delete them unless they’re all spam, so make sure you double check.
- Expired transient options: unused cache data (for example, social sharing plugin store “share counts” on pages or posts). These expired transients can be deleted.
- Pingbacks/trackbacks: notifies blogs when you link to them, but there’s no reason to store these in your database unless you want a record of them (delete).
- Post meta data: information shown to users on each post (author, publish date, category, etc). This will delete orphaned meta data that doesn’t belong to a post.
- Comment meta data: same as post meta data only for comment information.
- Orphaned relationship data: usually created by plugins when posts are deleted.
4. Delete Tables Left Behind By Old Plugins
Next, go to WP-Optimize → tables.
Pay attention to tables marked as “not installed” or “inactive.” You’ll also see the Remove button in the Actions tab. These are tables left behind by old plugins you deleted or they’re currently deactivated (so you should delete them if you don’t plan on using the plugin again).
5. Disable Plugin Features Adding Bloat
While going through your database tables, you may see plugins that add lots of overhead.
Rank Math’s analytics, Wordfence’s live traffic report, and even the link counter in SEO plugins can accumulate quite a bit of data. Click the Overhead button to filter tables by their overhead.
Some plugins are module-based or let you disable features in their settings. If a feature is adding lots of database overhead, consider disabling it if you think you can live without it.
6. Schedule Ongoing Database Cleanups
I like WP-Optimize for scheduled database cleanups because it lets you keep a certain amount of post revisions and take a backup beforehand. I don’t believe any cache plugin can do either.
7. Use Other Plugins To Clean Your Database
Plugins Garbage Collector – similar to WP-Optimize only lets you delete any database table.
Advanced Database Cleaner – I don’t like how they make you pay for the premium version to see which plugin each table belongs too, but it does have settings for cron jobs which is a plus.
FlyingPress – standard database cleanup setting for cache plugins (can’t keep post revisions).
LiteSpeed Cache – also lets you keep post revisions in the DB Optimization settings.
WP Rocket – standard database cleanup setting for cache plugins (can’t keep post revisions).
SiteGround Optimizer – there are literally no database settings other than ON/OFF (not good).
Frequently Asked Questions
How do I clean my WordPress database?
Install WP-Optimize and use it to remove junk along with unused database tables left behind by old plugins. You also use it to take backups before scheduling cleanups.
Which plugin is best for cleaning the WordPress database?
WP-Optimize lets you do many things most other database and cache plugins can't: remove unused tables, keep a certain amount of post revisions, and take backups during scheduled cleanups.
How often should you clean your database?
Once a week is fine for most sites. If you have a larger website or constantly install/delete plugins, you can clean your database more frequently.
Does WP Rocket clean your database?
Kind of. It removes some things but can't remove unused tables, keep post revisions, or take backups like WP-Optimize can.
I hope this article was helpful in cleaning your WordPress database and helped you speed up your site! If you have questions, leave a comment below and I’ll get back to you as soon as I can.
See Also: My Ultimate WordPress Speed Guide
Thank you for such a detailed guide, which helped me a lot. I have a quick question.
We have ‘WP-ROCKET’ installed as our Cache plugin right now. Can I also install and use ‘WP-Optimize’ as well? I mean at the same time. I want to use ‘WP-ROCKET’ for Cache purposes and ‘WP-Optimize’ for Database cleaning porpuses.
Would I have any problems?
Keep up the great work.
Yes, you can use WP-Optimize only for database cleaning – that’s also what I do with FlyingPress. I believe the out of the box WP-Optimize settings don’t interfere with WP Rocket, but you may want to double check the settings and turn everything off except database options.
Thank you, sir, useful for me. I will reduce my database size in use these methods.
Delighted in perusing the substance above, really clarifies everything in detail, the article is very intriguing and successful. Much thanks to you and best of luck with the articles.
Do you also use WP Optimize to compress images? If not what do you use for that?
I use TinyPNG.
This is really amazing! Thank you so much for sharing this post!
Enjoyed reading the content above, actually explains everything in detail, the article is extremely interesting and effective. Thank you and good luck with the articles.