Menu Close

WordPress – Speed Up Your Website

wordpress speed

WordPress website speed. There is nothing that will loose you readers and customers more quickly than a slow website! The chances are good that a person will click away when a website takes more than 10 seconds to open.

Google’s PageSpeed Insights, of course, wants a website to open quicker than that, preferably in milliseconds to get a good SEO [Search Engine Optimization] score. The other two main website performance [speed] testers are GTmetrix and Pingdom.

There are quite a lot of things to look at to get your website to a good speed score all around. It is a little disorientating in the beginning, though, when you don’t even know where to begin. But here is a good starting point to get you there!

You need to install the following plugins first:


Test different setting combinations to see what works for you.

Autoptimize makes optimizing your site really easy. It can aggregate, minify and cache scripts and styles, injects CSS in the page head by default (but can also defer), moves and defers scripts to the footer and minifies HTML.

HTTP/2 Server Push

http2 server push
No settings

HTTP/2 is the new generation of the venerable HTTP protocol that powers the web. Among its most powerful features is server push, a way for web servers to send resources to the browser before it even realizes it needs them. This avoids the usual HTTP request/response cycle which happened for every script or stylesheet on a page.

Remove Query Strings From Static Resources

remove query strings
No settings

This plugin will remove query strings from static resources like CSS & JS files inside the HTML <head> element to improve your speed scores in services like Pingdom, GTmetrix, PageSpeed and YSlow.

WP Super Cache

super cache
See recommended settings below

This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts. You can, of course, test different combinations of Super Cache settings to see what works for you.

You will, along the line, hear about a CDN – Content Delivery Network – and how important it is to your website performance [speed]. It is.

‘A CDN service speeds up your website speed by serving cached static content from servers located near your user’s geographic location.’

But a CDN is not your headache for now. You will get by perfectly well without it for the moment. As a matter of fact, when the time comes, Super Cache offers you an alternative way of crossing this bridge. Just check out CDN on the Super Cache settings. You can use a subdomain – – to get a CDN working.

super cache settings
Click on image to view

And here are the speed tweaks to copy and paste into the .htaccess file in your root directory:

Header unset Pragma
FileETag None
Header unset ETag

<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 text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"

<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault "now plus 1 hour"
# CSS and JS expiration: 1 week after request
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
# Image files expiration: 1 month after request
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/ "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
# Webfonts
ExpiresByType font/truetype "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/ "access plus 1 month"

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
<filesMatch "\.(css)$">
Header set Cache-Control "public"
<filesMatch "\.(js)$">
Header set Cache-Control "private"
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
# END Cache-Control Headers

<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml


Images are important in your website speed factor. Use .jpg pictures instead of .png – they load faster. And WP Smush automatically compress images when uploaded. (Remember to activate this on the Smush settings.)

Image sizes:

Your website will battle if your images are an astronomical size like 3000px or 4000px wide. A  width less than 1500px is recommended. You won’t need bigger images than that in your posts because the images in a post are usually smaller than 800px. Download the free and user friendly to check and resize images under ‘Images’  on the toolbar. You can also save .png as .jpg here.

(Big images retain their quality if reducing size. Small images loose their quality if enhancing size.)

How to find an image size: If you touch your mouse on the image the small pop up  will give a size – 300 x 200. width=300 and height=200. Or right click and go to properties.


Another thing that can slow down your website really badly is too many plugins. You can imagine what 70 or 80 plugins will do to your website performance when they all have to start up in the background every time that a page opens on your website.

A good number of plugins is to try and keep it below 50. Your system will be able to breathe with such a number of plugins.

Outdated and poorly coded plugins can also affect the performance [and security].  Do the footwork and check if freshly installed plugins affect the performance and always check when a plugin was last updated on the ‘details’ link.

Sometimes you may find that the plugin you need didn’t have an update in maybe 2 or 3 years.Try to reconsider and find a way to work around it. If a plugin is not maintained then that plugin’s code gets outdated and may not be compatible with recent products.

Any Questions? Leave a comment


0 0 vote
Article Rating
Posted in Wordpress

Related Posts

Notify of
Inline Feedbacks
View all comments
This site uses cookies. Find out more about this site’s cookies. GOT IT!
Would love your thoughts, please comment.x
scroll to top