This tutorial will give you some tips on how to improve the speed of your WordPress website. Having a fast site is essential if you want to provide your visitors with great user experience and rank well in the search engines like Google and Bing which take the loading speed of your pages into consideration.

Enable Dynamic Caching

Adding Dynamic caching to your WordPress site will have great effect on its speed. There are many services like Varnish and APC that can be used but all of them require a lot of server configuration and tweaking of your application to work correctly. This is why, we at SiteGround have created a tool called the SuperCacher. With it, all you need to do is install a small plugin and enable the Dynamic caching with a single click. For more information on how to use it, please check out our SuperCacher Tutorial.

Enable gZIP compression

To decrease the size of data that's being transferred between your server and your visitors, you can enable the gZIP compression for your images, CSS and JavaScript files. By doing this, the web server will compress (like creating a ZIP file for example) this content before it's transferred over the Internet to your browser. On the other side, the browser decompresses the content before rendering it. This significantly lowers the size of information that's being transferred lowering the loading times of your website's pages.

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

## ENABLE GZIP COMPRESSION ##

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

</IfModule>

## ENABLE GZIP COMPRESSION ##

Use a CDN

Content delivery networks (CDN) are server networks that clone cached copies of your site on all of their location nodes. This means that when your visitors request your site, cache of it will be served by the closest server location, rather than the main datacenter of your hosting provider. For more information on that matter, check out our Cloudflare CDN Tutorial.

Optimize your Images

Images are essential part of every website. It is important to have them optimized. There are few things regarding your images that you should have in mind when developing your WordPress site:

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.

Smush your images. Smushing them will remove all the additional data from your photos - creation date, camera used for the photo, GPS coordinates, etc. There is a plugin that does that for you called WP Smush.it.

If possible, use Sprites for your themes. Using sprites is a CSS technique that uses a single image to show multiple design elements on your pages. This way instead of loading dozens of small images (making http requests each time), your site will open a single one. Sprites, however, must be considered when the theme is designed. So always look for themes that utilize sprites.

Minify your JavaScript and CSS files

Minifying your CSS and JavaScript files means that all the unnecessary data from them like double spaces, empty new lines, comments, etc. will be removed from the files lowering their size. There are many online tools that you can use for free to minify your files. In addition, if you're using the W3 Total Cache plugin, it has an option to automatically minify your theme's CSS and JS files.

Leverage browser caching

Leveraging the browser caching means that you can specify for how long your visitors' browsers should cache your images, CSS, JS and flash files. However, if any of those resources is cached, your server will notify the visitor's browser and the cached content will be replaced with the new one. You can add the following lines to the .htaccess file of your WordPress in order to enable this technique.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

## LEVERAGE BROWSER CACHING ##

<IfModule mod_expires.c>

ExpiresActive On

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-javascript"access 1 month"

ExpiresByType application/javascript"access 1 month"

ExpiresByType application/x-shockwave-flash"access 1 month"

ExpiresByType image/x-icon"access 1 year"

ExpiresDefault"access 2 days"

</IfModule>

## LEVERAGE BROWSER CACHING ##

Optimize your WordPress Database

It's a good practice to optimize your WordPress database from time to time. For more information on that matter, check out our article on MySQL Optimization Using Indexes.