How to Optimize WordPress Database – Complete Guide

Do you want to optimize your WordPress database and speed up your entire WordPress website or online shop? If you are looking for a definitive WordPress database optimization guide, we have got you covered.

In this article, we will show you everything you need to know about WordPress database structure, why optimizing it is a good idea and several ways to optimize it!

Understanding the WordPress Database Structure

WordPress is a popular content management system that uses a database to store and organize site content. The database stores all the essential information needed to run a WordPress site, including user information, website settings, and published posts and pages.

By default, WordPress uses the MySQL database management system to store its data. MySQL is a widely-used, open-source database system known for its reliability and performance. WordPress can also be configured to use other database management systems, such as MariaDB or PostgreSQL.

The WordPress database comprises several tables, each storing specific data. Some of the most critical tables in a WordPress database include:

  • wp_users: This table stores user information, including username, password, and email address
  • wp_usermeta: This table stores additional user metadata, such as first and last name, website URL, and display name
  • wp_posts: This table stores all of the published posts on a WordPress site, including the post content, title, and author
  • wp_comments: This table holds all of the comments made on a WordPress site, including the comment content, author, and associated post
  • wp_links: This table store links to other websites that are added to a WordPress site’s blogroll

In addition to these core tables, a WordPress database may include additional tables for custom post types, plugin data, and other site-specific information.

It’s important to note that the prefix wp_ used in the table names above is just the default prefix used by WordPress. This prefix can be changed during the WordPress installation to help secure the database against attacks.

Why We Must Optimize WordPress Database

A WordPress database is the heart of any WordPress site, as it stores all of the essential information needed to run the site, such as user data, website settings, and published content. As a result, it’s necessary to optimize the database to ensure it runs efficiently and effectively.

There are several reasons why optimizing a WordPress database is essential. These include:

  1. Improved performance
  2. Reduced server load
  3. Reduced risk of corruption
  4. Better Security
  5. Enhanced User Experience

Now, let’s take a closer look at each reason.

Improved Performance

An optimized database can improve the overall performance of a WordPress site, as it reduces the time it takes to retrieve data from the database. This can result in faster page load times, which is essential for user experience and search engine rankings.

Reduced Server Load

Optimizing the database can also help reduce the server load as it requires fewer resources to retrieve data from an optimized database. This can help prevent server downtime and improve the site’s reliability.

Reduced Risk of Corruption

An unoptimized database is more prone to corruption, resulting in lost or damaged data. WordPress database optimization can help reduce the breakdown risk and protect against data loss.

Better Security

When it comes to security, an unoptimized database is more vulnerable to attacks as it can be difficult for the database management system to identify and prevent malicious queries. Optimizing the database can help to improve security by reducing the risk of attacks.

Enhanced User Experience

A slow and unoptimized database can negatively impact the user experience on a WordPress site. Users may become frustrated with slow page load times or errors and may be less likely to return to the site. Optimizing the database can help to improve the user experience by providing faster and more reliable access to site content.

That’s the main advantage of an optimized WordPress database. Next, let’s see the step-by-step process of WordPress database optimization.

How to Optimize WordPress Database

You can optimize the WordPress database in two methods.

  1. Using plugins
  2. Manual method

We will show you both methods below. So, you can pick a suitable strategy as per your requirements and skillset. But before that, let’s have a look at some of the best database optimization plugins for WordPress and the features they offer.

Best WordPress Database Optimization Plugins

If you prefer a simple database optimization method, you should choose the plugin method. Multiple plugins are available to clean a WordPress website’s/WooCommerce store’s database. Some of the popular ones are:

  • WP-Optimize
  • WP Rocket

Both plugins come with an easy-to-use configuration panel and unique features. Before moving forward with the method, let’s take a quick look at each plugin and what it has to offer.


wp optimize

If you prefer a dedicated database optimization plugin for WordPress, check out WP-Optimize.

It is a free plugin, and with it, you can easily clean your MySQL database with just a few mouse clicks. Over 1 million people are using WP-Optimize to clean their databases and speed up their entire WordPress website/WooCommerce store.

Besides database optimization, WP-Optimize can also deal with caching and image optimization as well. Overall, if you are looking for the best plugin that’s both free and beginner-friendly, you should check out WP-Optimize.

WP Rocket

wp rocket

If you prefer a WordPress caching plus database optimization plugin for your website, check out WP Rocket.

WP Rocket is a premium WordPress caching plugin that will help you speed up your WordPress website with multiple optimization rules. Some of the popular features of WP Rocket are page caching, cache preloading, GZIP compression, eCommerce optimization, CDN integration, database optimization, media optimization, and so on.

The plugin comes with an easy-to-use dashboard, and anyone with some technical knowledge can easily configure it.

Moreover, Its inbuilt database optimization tool will also help you clean the database at every selected interval. If you are handling a blog and publishing articles frequently, you need to clean your database every day or every week. So, this feature can be especially beneficial.

Now you know each plugin and why it is best. Next, let’s move forward and use a plugin to complete the database optimization.

1) Optimizing WordPress Database With WP-Optimize

For this tutorial, we are going to pick the WP-Optimize plugin.

The very first thing you need to do is install and activate the plugin WP-Optimize on your WordPress website. Log in to the WordPress Admin Dashboard and go to the Plugins section. From there, go to Add New and search for WP-Optimize.

Once you have found the plugin, install it.

install wp optimize- optimize wordpress database

After installation, make sure to activate the plugin so it can start working.

activate wp optimize

Once the plugin is activated on your site, you will see the plugin’s settings on the left-hand side.

wp optimize settings

The plugin allows every user to optimize the database and images, deal with caching, minify the static files, and so on. It has a pre-defined configuration, but you can always tweak it from the settings section.

Since we cover database optimization, the Database section contains all the features we need.

database optimization

You can see multiple optimization rules there. If you have a look at the page, you will see options to clean the

  • Database tables
  • Post Revisions
  • Auto drafts
  • Trashed posts
  • Trashed comments
  • Spam comments
  • Pingbacks
  • Trackbacks
  • Post metadata
  • Comment metadata
  • User metadata

You can select all the rules:

select all the rules - optimize wordpress database

Or mark individual ones:

optimize selected rules - optimize wordpress database

Once you have chosen the optimization rules, run it.

run selected optimizations

On the other hand, you can also run individual optimizations on the go.

run individual optimization

That’s it!

This is how you can clean and optimize your WordPress database using a dedicated WordPress plugin such as WP-Optimize.

However, we understand not all users prefer to add third-party plugins to their sites. So, if you are one of them, check out the next section to optimize the WordPress database manually.

2) Manually Optimize the WordPress Database

In this section, we will show you how to optimize the WordPress database and speed up your WordPress website manually.

2.1) Optimize Database Tables (from PHPMyAdmin)

If you are using a shared hosting provider, you probably have access to the cPanel and related tools. Once you have logged in to the cPanel, look for PHPMyAdmin.


Once you have opened it, you can see all the database tables.


To optimize the database, go to the bottom section, select all the tables, and optimize them.

optimize tables

This way, you can use PHPMyAdmin to optimize the WordPress database. 

2.2) Unused Plugins and Themes

Plugins are an excellent way to enhance the website’s features. But if you have unused plugins installed on the website, that is not a good sign. It will consume more disk space and also make your database bulkier. The best thing you can do is remove the unused plugins.

Under the plugins section, you can see all the unused plugins.

unused plugins - optimize wordpress database

You can select the ones you need to remove, choose Delete from the dropdown, and remove the plugin files entirely from the WordPress website.

delete plugins to optimize wordpress database

This way, you can remove unused plugins from your website. Similarly, you can also remove unused WordPress themes from the website.

To do it, you need to go to Appearance > Themes. There, you can see all the installed themes.


From there, select a theme you need to delete. On the bottom right-hand side, you will see an option for deleting the theme.

delete unused themes to optimize WordPress database

You will not have the option to remove all the unused themes in a single click. You will need to remove themes individually.

Now, if you have done this part, let’s move to the next one and optimize the post-revisions.

2.3) Post Revisions

When you write blog posts, you might save them as a draft several times. Each time you keep the post as a draft, WordPress will save a revision of it for future use. Here is an example of it.


When you run a multi-author blog, your database will be populated with loads of post revisions. It can affect your website’s performance and database. The best way to prevent this is by adding a single line of code to your wp-config.php file.

Either you can limit the number of post revisions that are being saved or altogether remove the feature from your website.

To limit the post revisions, you need to add the below code to the end of the wp-config.php file:

define( 'WP_POST_REVISIONS', 3 );

You can replace 3 with the number of revisions you need to save.

On the other hand, if you need to remove the feature, you can use the following code:

define( 'WP_POST_REVISIONS', false );

That’s it!

2.4) Comments

Many businesses target the WordPress comments systems to promote some tool or service. So, don’t be surprised if you are running a WordPress blog and getting too many spam comments. By default, all these comments will be landed in the pending review section. You can manually delete all of them from there.

Once you have deleted the comments, they will be moved to the trashed comments section. You need to delete the comments from there too.

Alternatively, if you are interested, you can also use a dedicated plugin like Akismet. It will help you prevent spam comments. Or just run this code to remove the spam comments:

DELETE FROM wp_comments WHERE comment_approved = 'spam'

The above code will remove all the spam comments from the WordPress website.

2.5) Empty the Trash

When you delete a post, page, or custom post, they will be landed in the trashed posts section. WordPress will keep these until you manually delete them. So if you do not need a post, page, or custom post anymore, delete them from the trashed posts too. Otherwise, the deleted posts will still occupy space on your MySQL database.

So, in order to optimize your WordPress database, always keep an eye on the trashed items. You can also automate the process by editing the wp-config.php file. Adding the below code to the wp-config.php file will probably help you delete the rashed items automatically.

define( 'EMPTY_TRASH_DAYS', 4 )

In this example, we have added four as the example. You can tweak the days accordingly.

2.6) Remove the Unused Tags

Tags in WordPress are handy if you need to assign specific posts together. Under Posts, you will see a section for creating new tags and managing existing ones.

tags - optimize wordpress database

If you have unused tags, delete them from here. It will help you speed up the WordPress site. Alternatively, you can also do this through PHPMyAdmin. If you need to see all the unused tags in your WordPress/WooCommerce website, run this command:

FROM wp_terms wterms INNER JOIN wp_term_taxonomy wttax ON
wterms.term_id = wttax.term_id
WHERE wttax.taxonomy = 'post_tag' AND wttax.count =0;

Ensure you are using the correct database prefix.

Now, to delete them, run this command:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

That’s it!

2.7) Pingbacks and Trackbacks

Finally, disabling pingbacks and trackbacks is another way to optimize the database. WordPress will send automated notifications when you insert a third-party website’s URL into your blog posts or pages. However, you can disable this feature in WordPress easily.

To do it, go to Settings > Discussion. Disable the first two options, and you are good to go.

pingbacks and trackbacks

Note that you must remove the existing pingbacks and trackbacks from your database. You can complete it by running this command on your database through PHPMyAdmin:

UPDATE wp_posts SET ping_status= “closed”;

That’s it!


Google considers a website’s speed as a ranking factor. So if you need to rank higher in SERPs, you should consider optimizing your website’s or online store’s speed for the best. There are many ways to optimize a WordPress website’s speed, and cleaning the database is one of the main things you need to do.

As you can see in this tutorial, there are two ways to optimize a WordPress website’s database.

  • Using a dedicated plugin
  • Manually

The plugin method is the simplest option if you prefer the most straightforward way to optimize the database. Many plugins are available for cleaning the database, and you can use them to speed up your WordPress website.

On the other hand, if you do not need to use a plugin for the task, you may go with the manual method. The manual process would take a little more time than the plugin method, but it would be a great experience if you need to learn more about WordPress and speed optimization.

That’s it!

This is how you can optimize the WordPress database without getting any errors. We hope you have found this article helpful and enjoyed the read. Please consider sharing his post with your friends and fellow bloggers on social media if you did. For more related posts, feel free to check out our blog archive.

Similar articles you might like: