18 Useful Tricks To Speed Up WordPress & Boost Performance

WordPress is a good CMS solution and even better blogging platform, but most sites using WordPress are not maximizing its potential. Performance is one of the important factor of a successful website. In this article we have compiled a list of useful tips, tricks, hacks, and plugins that can be used to speed up WordPress and boost it’s performance.

These tricks are for different skill levels and some might even seem very obvious to you, but please bare with us as we want to satisfy the needs of users on all skill levels. These tricks are very easy to implement, so you should start now.

1. Cache Complete Generated Pages

WP Super Cache

WordPress is a PHP script, so everything is dynamic, which means every time a page is loaded, WordPress must execute the queries hence making the site load slow and even crash due to the server load if you experience high traffic. The best solution to this problem is by using static pages. A plugin called WP Super Cache cache complete generated pages and serve those to your users instead of processing the heavy dynamic queries. Once you have installed this plugin, you will see significant decrease in your site load time and much more efficiency in the usage of server resources.

2. Disable Hotlinking and Prevent Leeching

Stealing is Bad

Hotlinking is also known as bandwidth theft. It is when other sites direct link to the images on your site from their articles making your server load increasingly high. If one site does it, it might not make a significant difference, but there are too many spammers that will do this and that is something your server cannot hold specially if they copy your article with a lot of images. No matter how good your web host is, it will be slowed down if hotlinking is not prevented. There are a few ways you can disable hotlinking. First way we will share is through your root .htaccess file where you will place this code below:

#disable hotlinking of images with forbidden or custom image option

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?*$ [NC]

#RewriteRule .(gif|jpg)$ %u2013 [F]

 #RewriteRule .(gif|jpg)$ [R,L]

You can make an image that will replace all hot linked image that will say Stealing is bad or something so it makes the spammer look stupid. Another way to do is through the cPanel. If you are using cPanel hosting this is much easier because you don’t have to get your hands dirty by editing the codes. In your cPanel find an option called Hotlink Protection. Select that and follow the settings like shown in the image below:

Hotlink Protection in cPanel for WordPress

Remember you must allow your feed otherwise your feed readers would not see any images.

Source: Josiahcole

3. Choose a Good Web Host

Choosing the Right Web Hosting Service

This might seem like a very obvious one, but a lot of the times people try to save a few bucks and compromise quality. It is not worth it. Pay the extra few dollars and get a better web host. One that is reliable and have strong servers. We have a beginners guide at WPBeginner where we help you choose the web host for WordPress.

Some good and affordable web hosts:

4. Split Long Posts in Several Pages

If you are making a mega resource which will require you to list about 100+ resources and you will have 100+ image on the post. It is best that you split the post into multiple pages, so each page loads much faster, and you increase your pageviews. This is very easy and it is doable from the WordPress admin panel if your theme already has this function. When writing the post you just have to enter the following code when you want to split pages:


You must make sure that your template has the function. Check out the Template tags in the Codex.

5. Use Excerpts and Limit the Count of Posts Displayed on Blog Page

Use Excerpts on Blog Page

You should never show full posts in the main blog page because you have 5 or 10 total posts on the same page. If each of your post is a list post and it is displayed in full text mode, then it will be very inconvenient for your users because the page will take immense amount of time and server resources to load. Therefore you must use excerpts and limit the count on how many posts are displayed.

In order to display excerpt, you must visit your index.php and find:

<?php the_content(__(‘(more…)’)); ?>

Then replace this with:

<?php the_excerpt(__(‘(more…)’)); ?>

Now the second step is to limit the number of posts being displayed on your blog page. You can do that through the WordPress admin panel under the tabs Settings > Reading:

Post Count on Blog Page

6. Optimize Your MySQL Database

Optimizing your MySQL Database can make a difference in your load time. There are two ways of doing this. One way is manual hard core way. Another way is a plugin. To do it manually, you need to go to phpMyAdmin and select your database. Then towards the bottom, click check all to select all tables and then towards the center of the screen, there is a drop down menu, click optimize tables there.

Optimize MySQL Database

If you don’t want to do it manually then Joost De Valk has a plugin for you. It is called Optimize DB, this plugin does exactly what we mentioned above except you don’t have to mess with phpMyAdmin.

7. Reduce the Use of External Websites and Scripts

Try to avoid relying on external scripts whether it is directly or through the plugin. Some plugins like MyBlogLog and others can take a lot of time to load depending on the server connection. They can often be the reason for page not loading properly if you are experiencing high traffic. To display widgets from top directories, alexa and others in your sidebar only slows your site down. Try to avoid it as much as you can.

8. Add Expires Header to Static Resources

An Expires header is a way to specify a time far enough in the future so that the clients (browsers) don’t have to re-fetch any static content (such as css file, javascript, images etc). This way can cut your load time significantly for your regular users.

You need to copy and paste the following code in your root .htaccess file:

ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000

The number 2592000 stands for the number of seconds in a month. You can change that number to anything you desire.

9. Use WP-CSS


WP-CSS is a plugin that uses shorthand technique. It GZIP and strip whitespace from your CSS files. It allows you to confidently use @import inside a CSS file and not worry about what happens on the user’s end. It will look through your style.css file and put any @import files into it. Using shorthand technique can make a difference in your site load time because it makes the file size smaller.

10. Compress JavaScript Files

JavaScript files are loaded in almost every page and sometimes they can be large files. Even if it is a small file, being repeatedly loaded can eat your resources and have an impact on your load time. You can use the compressors to compress the JavaScript and save resources as well as increase the speed of your WordPress site.

11. Reduce Image Sizes

This one is a gimme, but it must be reiterated here. Images help make your blog posts lively, but you do not have to put extremely high resolution images in your blog posts and even in your web design. The bigger your image, the slower your site will load and the more server resources you will use. If an article with images gets popular in social media and you get tons of traffic, you can even get suspended from your web hosts if you exceed the limits. Therefore it is best if you have low image sizes. You can obtain this by using a plugin called WP This plugin reduces the image size with minimum quality loss. You can also use this directly from the site

12. Do a Plugin Check and Remove Inactive Plugins

If you are using more than 15 plugins on your blog then you need to check to see if you really need all of those. If you don’t then you need to delete them. Also remove the inactivate plugins from the site. While checking for plugins, make sure that you use the proper format when including the plugin in your template files. Instead of including the code like this:

<?php refer_thanks(); ?>

You should add it like this:

<?php if (function_exists(‘refer_thanks’)) { refer_thanks(); } ?>

Having it this way ensures that WordPress will only pull that code on the page if this plugin is active. If you use the first way of coding, and you inactivate the plugin, your page will load with error and sometimes it even displays on the page that there is an error.

Source: Yoast

13. Cache Your Database

WordPress is fully integrated with MySQL therefore when a page is loading, multiple database queries are being executed which takes time. A plugin called DB Cache caches the database query and make the site load much faster.

14. Split Comments into Pages

Every site has few articles that went viral. These article generates tons of comments and they can consume enormous amount of server resource upon each visitor loading the page. Or maybe your blog is already popular and you are getting a good discussion going in your posts, then it is recommended that you paginate the comments to increase your site loading speed and save server resources. This can be done by going into Settings > Discussion in your WordPress Admin Panel.

Paginate Comments

15. Reduce the Number of Database Calls

Database calls make WordPress so dynamic, but sometimes you can live without it. By replacing simple text, you will be able to increase your WordPress speed. To give an example look at your header.php code which looks something similar:

<html xmlns=”” <?php language_attributes(); ?>>
<head profile=”″>
<meta http-equiv=”Content-Type” content=”
<?php bloginfo(‘html_type’); ?>;
charset=<?php bloginfo(‘charset’); ?>” />

This code above is calling useless database queries which you can simply put in as text. Like in the example below:

<html xmlns=”” dir=”ltr”>
<head profile=”″>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

By making it slightly less dynamic, you have saved yourself some load time. If you get a custom theme designed for a specific WordPress site then there is nothing wrong with removing these because it will only be used by you.

You can also reduce database calls by doing the following:

  • make your stylesheet URL’s static
  • make your pingback URL static
  • make your feed URL’s static
  • you can remove the blog’s WordPress version

Source: Yoast

16. Cutting Down the Size of MySQL Database

When writing posts, now WordPress actually autosave which even after the post is saved, the revision articles stay in the MySQL Database. Bigger database also bring the site load time down. If you are not using Revisions then you can remove them by adding the following code to your wp-config.php

<?php define(‘WP_POST_REVISIONS’,false); ?>

You can also delete unnecessary tables from the Database like:

DELETE FROM wp_posts WHERE post_type = “revision”;

Note: Only do this if you don’t use revisions. If you like to have revision in WordPress then do not take this action.

17. Stay Updated with the Latest WordPress Version

Ofcourse this is a must. You should always stay updated with the latest stable release of WordPress in order to boost performance of your site. If you don’t do this, you are also putting your site in security risks.

18. Display Page Loading Time and Queries

Display Query and Loading Time

In order for you to track how well your site is doing, it is wise to add this code in the footer. If it is a low number then it means your site is at its potential. Just paste this code in order to display page loading time and queries:

<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.

What tricks do you use to speed up WordPress? Share it with us in the comments. We will add it in the post, so everyone else can use it as well.

Leave a Reply

Your email address will not be published. Required fields are marked *