WordPress is one of the most popular and widely used blogging platforms using which a plethora of blogs and websites have been created and are being created on daily basis. The biggest reason for its humongous success is actually the fact that it allows for easy customization of your blog/website’s look, feel and functionality easily and quickly just by using a nice looking and suitable theme and plugins.
Plugins are one of the most important features provided by WordPress which help you customize and enhance your blog/website in a matter of just a few minutes. Plugins can help you optimize almost every single feature of your blog including the usability, speed, efficiency, images, content etc.
Why Site Speed Is Important
When someone lands on your site for the first time, you only have a few seconds to capture their attention to convince them to hang around.
In a joint conference presentation, Eric Schurman (from Bing) and Jake Brutlag (from Google) discussed the impact of web server delays.
Bing performed an experiment testing to see what would happen if their pages loaded 1.5 seconds longer than usual.
Bing search team reported, a 2-second longer delay in page responsiveness reduced user satisfaction by 3.8%, increased lost revenue per user by 4.3%, and a reduced clicks by 4.3%.
If your site takes too long to load, most people are gone, lost before you even had a chance.
Not only that, but Google has included site speed in it’s ranking algorithm. That means that your site’s speed effects it’s SEO, so if your site is slow, you are not only losing visitors out of impatience, but you are also losing them by having reduced rankings in search engines.
How To Speed Up WordPress
In this article, I will explain how to optimize WordPress performance. Not just the WordPress some of the optimizations can be applied to any website. So, I hope that you’ll like this post.
1. Choose a good host
Like most things, making a decision on which web hosting company to choose can be tough. With all the companies out there each promising to have 99% uptime, unlimited resources, and knowledgeable support, there has to be a way to cut through the jargon and make an informed decision. Right?
While starting out, a shared host might seem like a bargain, it comes at another price: incredibly slow site speed and frequent down time during high traffic periods.
If you plan on publishing awesome stuff, you’re killing yourself by running your WordPress site on shared hosting. The stress of your site going down after getting a big feature is enough to create a few early gray hairs: don’t be a victim, invest in proper hosting.
2. Optimize your Images
Images are essential part of every website so it is important to have them optimized. Use images with the proper size. Do not upload big images and then scale them with HTML. Make sure that your photos and other images are not bigger than the size you’re actually displaying them in.
Yahoo! has an image optimizer called Smush.it that will drastically reduce the file size of an image without losing quality. Smushing them will remove all the additional data from your photos e.g. creation date, camera used for the photo, gps coordinates, etc. Fortunately there is an amazing free plugin available which will do that process WP Smush.it.
3. Use an effective caching plugin
WordPress plugins are obviously quite useful and Installing a cache plugin will have the biggest effective on your page loading times. Some of the caching plugins covers many things from this list.
By far my favorite WP Super Cache because of its easiness and well function.
4. Use a content delivery network (CDN)
Content delivery network (CDN) is a system of distributed servers (network) that clone your site on all of their servers and deliver webpages and other Web content to a user based on the geographic locations of the user, the origin of the webpage and a content delivery server. I personally use and recommend CloudFlare.
There are many WP plugins available that you can use to minify resources used on your webpage. You can also use online tools to minify your resources. I personally recommend and use CSS Minifier.
6. Optimize your homepage to load quickly
There are few things that you can do to ensure that your homepage load quickly:
- Reduce the number of posts (i.e. 5-10)
- Show Excerpt instead of full post.
- Use less widgets, Remove inactive plugins and widgets.
- Don’t use unnecessary share widgets use them in post instead.
Keep in minimal, clean and focused!
7. Leverage browser caching
.htaccess file is a quick & easy solution for Leverage browser caching.
## LEVERAGE BROWSER CACHING ##
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
## LEVERAGE BROWSER CACHING ##
Recently I wrote detailed post on Leverage browser caching.
8. Enable gZIP compression
PageSpeed Insights by Google
All Modern browsers support and automatically negotiate gZIP compression for all HTTP requests. Enabling gzip compression can reduce the size of the transferred response by up to 90%.
The easiest way to enable the gZIP compression for your images, CSS and JS files is to add these lines to your .htaccess file in the root WordPress folder:
## ENABLE GZIP COMPRESSION ##
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
## ENABLE GZIP COMPRESSION ##
9. Optimize your WordPress Database
Your WordPress database stores all of your website content, blog posts, pages, comments, custom post types such as links, form entries, and portfolio items and It also stores website settings, theme settings, and plugin settings. This is why database optimization is so important by removing unnecessary data.
If your wordpress site is still on MyISAM engine then you can simply use the WP-Optimize free plugin. Plugin lets you optimize your database (spam, post revisions, drafts, tables, etc.) and reduce their overhead. (InnoDB tables will not be optimized) however you can still you it to remove spam comments, post revisions and drafts etc.
Another great plugin that you can use is WP-DB Manager this plugin lets you schedule dates for database optimization.
10. Add LazyLoad to your images
LazyLoad is delays loading of images in long web pages. Images outside of viewport are not loaded until user scrolls to them. This is opposite of image preloading. Using LazyLoad on long web pages will make the page load faster as images are not requested upfront.
You can simply use BJ Lazy Load this plugin automatically does that.
11. Control the amount of post revisions stored
Usually when we write we draft before publishing and we do that frequently. Every time we save draft, wordpress store one revision as backup copy. When post is finalized and published, why would you need revisions?
I use the Revision Control plugin to make sure post revisions to a minimum (set it to 2 or 3).
12. Turn off pingbacks and trackbacks
Trackbacks give the ability to communicate between WP websites. Its something like one person saying to another “This is something you may like”.
pingback is a type of comment that’s created when you link to another blog post where pingbacks are enabled.
By default, WordPress interacts with other blogs that are equipped with pingbacks and trackbacks. Turning off trackbacks and pingbacks will not effect on backlinks to your site, just the setting that generates a lot of work for your site.
Turning off the trackback and pingback notifications in WordPress is very straightforward. To disable notifications for trackbacks and pingbacks on your WordPress site, simply login to the admin dashboard. Then go to Settings > Discussion and uncheck the ‘Allow link notifications from other blogs (pingbacks and trackbacks)’ option.