Have you ever optimized your WordPress database? Optimizing your database cleans up unwanted data which reduces database size and improves performance. In this article, we will show you how to easily optimize your WordPress database with one-click.
Why You Should Optimize Your WordPress Database?
If you have been using WordPress for a while, then there is probably a lot of useless data in your database such as post revisions, spam comments, trash, transient options, orphaned meta data, and so on.
This data increases your WordPress database size, which means your WordPress backups will take more disk space and time to restore.
Cleaning up this unwanted data significantly reduces your WordPress database size, which means faster backups, easier restore, and improved database performance.
Having said that, let’s see how to easily optimize your WordPress database and remove clutter.
Video Tutorial
If you don’t like the video or need more instructions, then continue reading.
How to Optimize Your WordPress Database
Since you will be working on your WordPress database, you need to make sure that you create a complete WordPress backup before moving forward.
Next, you need to install and activate the WP-Optimize plugin. For more details, see our step by step guide on how to install a WordPress plugin.
This plugin is built by the same team behind the popular WordPress backup plugin, UpdraftPlus.
Upon activation, the plugin will add a new menu item in your WordPress admin bar labeled WP-Optimize. Clicking on it will take you to plugin’s settings page.
You will see a list of operations that the plugin will perform on your database. Review them carefully and uncheck any item that you don’t want to run at the moment.
Items marked in red require more intensive database operations. If the process is interrupted during the operation, then it may corrupt data. That’s why we strongly recommend that you create a backup of your website before selecting the items in red.
After selecting the items, click on ‘Run on all selected items’ button at the top.
The plugin will now start optimizing your WordPress database and show you the progress.
That’s all, you have successfully optimized your WordPress database.
Note: If your MySQL database tables are using the InnoDB engine, then WP-Optimize will not perform database table optimization. You can perform that operation manually, using phpMyAdmin. See our beginner’s guide on WordPress database management with phpMyAdmin for detailed instructions.
We hope this article helped you optimize WordPress database. You may also want to see our ultimate guide to boost WordPress speed and performance.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Usman says
Is it necessary to take a backup first then Optimize the Database?
WPBeginner Support says
While not necessary, we strongly recommend it on the off chance something goes wrong or you run into an error. While it is rare for that to happen, it is better to be safe
Admin
Nikita Shevchenko says
Hello! Great article! I have one question. Can I use this plugin simultaneously with autooptimize and wp3 total cache plugins?
Editorial Staff says
This is a plugin that you can use and then disable once you’re done cleaning the database. We recommend using this plugin once every 6 – 12 months.
Admin
ANTESH KUMAR SINGH says
How to fix “Optimize InnoDB tables anyway” in WP-Optimize plugin?
Have any solution to optimize InnoDB tables in WordPress?
James Finn says
Hey guys,
In this article:
/plugins/how-to-clean-up-your-wordpress-database-for-improved-performance/
It is stated:
“… the main [benefit of wp-sweep over wp-optimize] is that it uses proper WordPress delete functions as much as possible instead of running direct delete MySQL queries. Whereas the WP-Optimize plugin uses direct delete SQL queries which can leave orphaned data left behind. In other words, WP-Sweep is a better coded plugin than WP-Optimize.”
Quote and closed quote!
Perhaps you can explain why you have two clearly contradictory articles published on your site at the same time. Edit one, or the other, please!
An incredibly influential site such as this needs more attentive editorial review.
Thanks bunches!
WPBeginner Support says
Hi James,
We often recommend plugins that do the same thing. If there is a difference, then we also try to highlight it as you have quoted. One great thing about WordPress is that you often have plenty of excellent solutions for a problem.
Admin
Neal Umphred says
You used to recommend WP-Sweep for this service:
(https://www.wpbeginner.com/plugins/how-to-clean-up-your-wordpress-database-for-improved-performance/).
What happened?
WPBeginner Support says
Hey Neal,
We still recommend it. You can use either of these two plugins for the job.
Admin
Neal Umphred says
Thanks for the response!
If I use WP-Optimize, do I need an occasional clean-up from WP-Sweep?
Ian Spare says
In a previous article (https://www.wpbeginner.com/plugins/delete-old-post-revisions-in-wordpress-with-better-delete-revision/) you made an update stating that post revisions would not impact database performance. Are you now saying they do?
Mayank Debnath says
Yea! I am confused too ..
Ian Spare says
It’s clear that actions like removing post revisions will make no difference whatsoever to “database performance”. I think the confusion is caused by some misunderstanding about how relational databases work and specifically about how indexed queries are executed.
The problem is exacerbated by so many WordPress users being quite certain that optimising their database is required. Given that relations databases and related technologies like Indexed Sequential Access Method (ISAM) on which the internals are based have been around for some 50 years it ought to be well understood.
The entire point of using a database is to access data in a way that scalable. The time it takes to find an indexed record, for example, a published WordPress post, is not dependent on the size of the database.
I’d invite the authors of this article to actually test this. Create a WordPress install and create a few thousand revisions of a post. You’ll find it makes zero difference to performance.
The time it takes to find a post is dependent on the number of seeks it takes. You can work this out like this:
log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1
I can tell you that the number of seeks will not increase between thousands of revisions and tens of thousands. You’ll get an extra seek when you enter the hundred of thousands of rows. But, the odds are it’s in query cache anyway so it won’t matter.
I know from testing, for no reason at all, that having a post with 200,000 revisions is just as quick to access as one with none.
Matilda Moo says
So if my host is saying my sites keep going down because i need to optimise my db, really it’s the number of hits/seeks that my hosting can’t cope with?
Rob Smelik says
I can’t speak for the author but thought I would throw some thoughts out there.
When it comes to loading your site on the front end, WordPress is actually smart enough to ignore previous revisions as it loads individual pages. However, overall database bloat can slow down a site if you have a large site with many pages and posts. Post revisions do add to the overall size of a database but are certainly not the only contributor. That being said… anything that you can do to reduce the size of your database will keep your site running at peak performance.
I have been using WP Optimize for years both on personal and client sites and can honestly say it does an excellent job at keeping your database clean. I have also noticed speed boosts when installing on older sites with larger databases that haven’t been optimized. With regard to post revisions, It has a great setting that allows you to limit the number of stored revisions. I keep it set at about 10 which is more than enough for post revision backup purposes.
I believe the premium version of the plugin also lets you schedule optimization cycles without having to manually go in and click the optimize button.
WPBeginner Support says
Hi Ian Spare,
Post revisions don’t affect database performance or your site’s page load times. However, they do increase database size. On older websites with lots of content, cleaning up or limiting post revisions can significantly reduce database backup file size. This means you will be to do on-demand backups, restore from backups, or move backup files around a bit faster. It will also save space on your cloud storage service where you save your backups.
Admin
Ian Spare says
Thanks, I think you’re moving closer to an accurate position now.
I think we can dismiss size considerations pretty quickly. A MySQL dump of WordPress database is pretty small. It’s highly compressible data as well, I’d suggest as pure text with a midrange compressional level you’d get around 10:1.
So I suggest this site might have 1000 posts with 10 revisions per post which for some (unlikely) reason are all the same size (in practice, they’ll be smaller you’d think). And we’ll say a post is about 2800 characters in size because that’s around the size of your post here, we’ll add a bit because it’s not going to make a lot of difference and say 3000 chars.
1000 * 10 * 3000 = 30000000
or about 28mb which is going to be around 2.8mb in compressed size.
Which is, in technical terms, diddly squat. A handful of images at best.
The footprint of an average WordPress post is very often the associated images. They’ll need backing up as well. That footprint will only be trivially impacted by the number of revisions.
There’s not a realistic chance these backups will fit into, for example, the free cloud storage of 2gb on Dropbox. So, anyone storing backups in the cloud might well have paid for a service which will be delivering unlimited storage (ie the jetpack backup service) or terabytes.
It’s hardly a realistic concern to be bothered about a couple of mb in size for a backup file. I appreciate there’ll be some who’ll produce a contrived use case where 10k makes a difference which is fine, I’m just saying in general usage, this is nothing.