WordPress speed – How to reduce your load time to under 1 second

One of the most common queries we get at WP Curve is ‘can you make my site faster?’. Website speed is important for a variety of reasons. Here are 4 key reasons:

  • A faster site will increase your conversions.
  • A faster site means Google will love you.
  • A faster site will provide a better experience for your customers and visitors, resulting in fewer bounces.
  • The speed of your site is part of your brand.

The final reason was the most important to us because we’re a WordPress support provider.

In this post, I’ll run through some very specific actions you can take to speed up your website. We’ll use our site as the benchmark and demonstrate how we reduced our page load time to under 1 second.

We’ll also address the common reasons for slow websites, so you can work out which ones you need to deal with in order to improve your own page speed.

Find out how to reduce your WordPress load time to under 1 second – CLICK TO TWEET

Before and after results

Here are some before and after results from our site.

wordpress_speed_before

Our original site was put up quickly and like many websites, we added things over time that weighed it down. When we decided to invest properly in the site, it was clear it had to be completely re-developed.

The result above, 5.2 seconds is just outside the acceptable range for a typical small business. But we wanted to demonstrate best practice and get the download time to under 1 second.

Note the result above was when we were hosted on our own Virtual Private Server (VPS), running W3 Total Cache and running a Content Delivery Network (CDN) tool CloudFlare. It was as bad as 10 seconds without any caching.

Here’s how it’s looking now:

wordpress_speed_after

Note the Pingdom speed test tool can be a bit inconsistent, but I’ve had consistent times of under 1 second which was our goal.

Ok let’s get stuck in to the major ways you can speed up your site.

Hosting

The quickest and easiest win you can have with page speed, is upgrading from a cheap shared hosting provider to a managed WordPress host. Cheap hosts are good for when you are starting out, but for ultimate performance you can’t match a managed WordPress host.

Even our clients who have signed up with a dedicated server or a VPS (Virtual Private Server) struggle to match the performance of a managed host. As you can see from our results above, just having your own server doesn’t mean your site will run quickly.

We host on WP Engine and noticed an immediate 54% speed improvement the day we moved. They have a smart way of managing WordPress sites. They limit certain plugins, have different ways of managing caching and re-directs and have a built in CDN that serves images and other files at lightning speed.

Prior to WP Engine, we were hosted on our own VPS and we had a CDN as well as a caching plugin installed. So a 54% speed improvement was pretty remarkable.

If you want to know if your host is an issue, here are 2 easy tools you can use.

Google PageSpeed Insights

A really quick and dirty test is to enter your domain into Google PageSpeed Insights. If one of the issues raised is ‘Server response time’, then you can get a big win from hosting with a fast host.

server_response_time

I’ve seen these as high as 5+ seconds which is obviously a big problem if you want to get your entire site to load in a few seconds. This is just the time it takes to hear a response from the server, let alone load the whole site.

Pingdom Speed Test Tool

The Pingdom Speed Test Tool will give you some quick information about the speed of your site. This doesn’t just relate to server speed, it will give you a lot of useful and actionable information. Here’s a rough, subjective guide of what is acceptable:

  • Under 1 second is excellent
  • Under 2 seconds is good
  • Anything around 5 seconds or more requires action

These times can be influenced by a lot of things, but as a guide if you are under the 2 second mark, you probably won’t experience a huge win by changing hosting.

Plugins

It’s not just speed. Your choice in plugins will be a common reason behind a lot of WordPress problems. Because plugins are written by different developers with varying skills, you need to be careful what you install and how many you install.

As a general guide, we like to keep sites to under 20 plugins. A better rule of thumb is ‘less is best’. If you can have 0 then that’s fantastic, but probably unrealistic. We have 2 recommendations here:

Remove any plugins you don’t need

Remove any inactive or active plugins that you don’t need. Here are the plugins we removed and the reasons for removal:

  • Akismet – We use Disqus which is great spam filtering for blog comments.
  • CloudFlare – We are no longer using CloudFlare as we use the CDN that is part of WP Engine (Max CDN).
  • W3 Total Cache – This is best done at the server level and we now use WP Engine’s caching features.
  • Backup buddy – Again backups are best done at the server level, WP Engine handle this in a very simple way.
  • C Metrics – This is our own analytics plugin. It provides great information but we can get the data outside of WordPress. If your priority is speed, then these sorts of plugins can be left out.
  • Price Table – We coded our own pricing table into our sign up page.
  • Slingpic – This gave sharing options for images which I don’t think people tend to use too much. We can live without it.
  • WordPress Importer – This is a plugin that is often left installed after moving sites. We removed it. There are a lot of plugins that you only tend to use once that are best removed after use.
  • Youtube Shortcode – We use LeadPlayer to handle videos so we could remove this plugin.
  • Zilla Shortcode – We weren’t using it.
  • All In One Favicon – WE included the favicon code in the theme so we could uninstall the plugin.

This left us with 16 plugins on the site. Note I’m not saying these plugins are bad. This is just typical of a small business website. If you aren’t checking regularly you end up with a bunch of plugins that you can live without.

Removing plugins generally means doing one or more of the following:

  • Going without certain features, if you decide that speed is more important.
  • Using plugins that perform more than 1 function instead of 2 plugins. For example using WordPress SEO from YOAST as the SEO plugin and for site maps. We see a lot of clients with 2 separate plugins not realizing that YOAST already creates site maps.
  • Removing any plugins that are particularly slow. The P3 profiler plugin can be used to find slow plugins, but make sure you remove it after you use it because the plugin itself will slow your site.
  • Performing other functions outside of WordPress. For examples analytics, email, backups or broken link checkers can all be done outside of WordPress.
  • Disabling plugins you only use from time to time. For example the WordPress importer is a common one. If you aren’t using the plugin regularly, you can remove it and add it later when you need it.

Avoid problematic plugins

There are certain plugins that we’ve found can really slow down sites. I won’t mention specific plugins here because we are often going back and forth with plugin developers to get them to resolve issues. However there are a few common culprits.

  • Premium plugins with encrypted code. The plugin has to go back to a 3rd party server and decrypt the code, and that process slows the load time significantly.
  • Re-direct plugins with lots of redirects. They can dramatically slow down the speed of the site.
  • Any plugin that performs a lot of database queries. WP Engine have a good list of these plugins here. ‘Related post’ plugins are a common problem.

Plugins can have a huge impact on your site speed so be careful about what you install.

Site size

A common reason for sites being slow is because of the size (in kilobytes) of all of the elements that make up the site, namely scripts and images.

The Pingdom Speed test tool can tell you how big your site is. Our site was only 1.4 MB, which is OK. We’ve seen plenty of sites that are 4mb plus and that will have a massive impact on your download speed.

Here are some rough, subjective guidelines around the size of the site:

  • Under 500kb is excellent
  • Under 1mb is good
  • 1-3 mb is acceptable
  • 3mb plus requires action

The culprit for a large site is often large images. Here are 2 ways to find if you have images that need to be optimized:

The quick and dirty way is to use the Pingdom site speed test tool and after you run the test, click the drop down and choose ‘Sort by file size’.

If you have images in here that are over 100kb then you can take action on those images.

site_speed_image_size

A better way is to use GT Metrix. Visit GT Metrix, enter your domain name and run the search. This will give you a bunch of important facts and specifically lists all of the images that need to be optimized. It even optimizes them for you which is a neat feature. You’ll have to download them and replace the ones on your site.

page_speed_images

Here are a few other tips for optimizing images inside WordPress:

  • Optimize all images before you load them into WordPress. As a general rule, I like all images to be well under 100kb. Simply right click on the image on your computer’s file manager and choose Properties. If the size is bigger than 100kb then it’s too big. Use an image editing program or a site like picresize.com. You’d be amazed at how many speed issues are resolved by optimizing a few images.
  • Use the exact required size for images and don’t rely on your theme to resize them. For example, if your theme shows featured images at 120px wide, make sure you create them at exactly that size.
  • Squish existing images with a plugin called Smush It.
  • Use less images. You can use more CSS and less images to reduce the overall size of images. Alternatively, you can reduce the overall length of your pages which will also reduce the amount of images used.
  • Deliver your media files via a CDN. CDN’s like MaxCDN or Cloudflare can serve your images quicker. Managed WordPress hosts like WP Engine have a CDN as part of the package. If you aren’t on a managed host you can sign up for CloudFlare. WP Engine uses Max CDN on the pro plans and up.
  • Cache your images. If you aren’t using server caching or a managed WordPress host, you can cache your images with a plugin like W3 Total Cache. This improves the download speed, although I prefer having this handled by the hosting provider.

Reducing external scripts

A really common cause for slow WordPress sites, is the existence of too many external scripts. Having Facebook like buttons, your Klout score and offsite videos are examples that can have a big impact on the load time.

Once you load from other sites, it limits your options in terms of how you can treat that script.

Simply removing some of these features can have a big impact on your site speed.

On our blog, we ran with a minimalist design that focuses on the content. We removed Facebook and Twitter share totals from the blog homepage. We don’t use any externally hosted Infusionsoft forms. We compromised by keeping Disqus and SwiftType, because they are exceptional plugins.

For others, we decided we could live without the feature in favor of having the blog load quickly.

Simply deciding that you can live without certain features is sometimes all it takes to get a significant boost in speed. Here is a list of some common external scripts:

  • Video scripts like Wistia or YouTube embed scripts.
  • External commenting plugins like Disqus or Google+ comments.
  • Social media buttons like Twitter follow buttons and Facebook like buttons.
  • Social sharing plugins for blog posts.
  • Live chat plugins.
  • Conversion plugins like pop-up scripts and opt in forms.
  • Analytics services like Google Analytics or Infusionsoft web tracking.
  • External font scripts like Typekit or Google Fonts.

Not to say you should always turn these off, it’s all a compromise you may really want some of these features but you can compromise on others.

To work out which scripts are particularly big, you can use the same approach above with the Pingdom Site Speed Tool and filter by size. GT Metrix will also tell you how many external JavaScript files your site is loading. From there you might decide you can live without some of them, combine them or make them load later (more on this later).

Too much ‘baggage’

One thing that could be slowing down your site is the sheer amount of ‘stuff’ that has accumulated on your site over the years.

We found a big improvement just from re-doing the theme on our site from scratch. Even though we’d only built the old site 8 months ago, we’d added to it quite a bit and it had filled up with code that wasn’t necessary. Coding a new theme from scratch meant a lot less code.

This is not the only type of ‘baggage’ that can slow down a WordPress site. Here are a few other manifestations:

  • Databases that have become huge, particularly WooCommerce sites with lots of old orders.
  • Sites that are filled up with too many images or too many backups that clog up the server.
  • Too many plugins.
  • Too many themes.

There’s no real quick fix to the baggage issue other than to regularly keep an eye on your site and clean it out. If you’re not sure how to do it yourself, it’s probably best to find a developer to do it for you. A few improvements could be:

  • Removing older orders or making database changes in ecommerce sites. Changing from MyISAM to InnoDB can help sometimes (as your developer about that).
  • Removing old backups, particularly if there are backup plugins running.
  • Removing old themes and unused plugins that are taking up space.
  • Reviewing your theme code or even starting fresh every few years with nice clean code.
  • Removing any spam comments or trackbacks that you don’t need.
  • Removing older installations of WordPress on your server.
  • You can also store media files like PDF downloads externally on Amazon S3.

Think of it as servicing your car. You can’t leave your website in the same state year after year and expect it to perform the same way.

Speed up high traffic pages

I’ve read a few posts about how to speed up your site and very few mention this simple tip. It’s likely that 80% of your traffic is hitting only 20% of your pages. For maximum impact, it makes sense to optimize the most popular pages.

We pay particular attention to our homepage. That’s not only a high traffic page but it’s the one that has the biggest impact on our brand.

First visit Google Analytics, then click Behaviour / Site Content / All Pages. I’m willing to bet your homepage is top of the list. You can apply the same approach to any other high traffic pages.

  • Simply make it smaller. Include excerpts instead of full posts for example or just have a shorter page with less content.
  • We took the SSL certificate off our homepage and moved the signup to a dedicated page. I didn’t look at ways to optimize this, but we wanted a dedicated payment page either way and removing the SSL was one thing that could go.
  • Avoid poorly coded scripts. Some sliders for example can decrease load time by loading a lot of images at once or overloading JavaScript.

Making your home page and other high traffic pages faster will improve the speed for 80% of your visitors.

Some more advanced techniques

The techniques mentioned above should be enough to get your site load time into the good range (under 2 seconds).

If you are really keen, there are some more advanced things you can do:

  • Don’t load some scripts on high traffic pages. In our case, we moved our live chat script from the homepage and instead put a ‘contact’ us link up the top. We use the live chat script on the contact page. Another example is plugins that aren’t used on the homepage like the SwiftType search plugin can have its associated scripts loaded only on the blog pages.
  • Use CSS sprites to combine little images like icons. This is a small win, but it all helps.
  • Loading scripts asynchronously means the page will load before the script has to load in. If it’s not something that is needed right away this can be a great idea. We did this for the video script and the live chat script on our site as an example.
  • Check that you specify the image dimensions in the HTML code for all images. The GT Metrix report will pick these up for you.
  • The piece of code below in your theme’s functions.php file will remove query strings from static resources. This ensures that they are cached like other elements.

function ewp_remove_script_version( $src ){
	return remove_query_arg( 'ver', $src );
}
add_filter( 'script_loader_src', 'ewp_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', 'ewp_remove_script_version', 15, 1 );

Thanks to Doug from Efficient WP for supplying that code. He has some more tips here on WordPress speed.

Some things are more important than speed

Just as a final thought, it’s worth keeping in mind that speeding up your site involves compromise. We could probably get our site loading much quicker if we wanted. But there are always competing priorities like:

  • We want a nice design so we do have a few images on there that take a bit to download.
  • There are some plugins that give us functionality that we don’t want to live without.
  • We don’t want to go hacking plugins, so we put up with some performance hits from a few plugins that we do really like.
  • I could get my developers to constantly tweak the site and scrape a few more milliseconds out of it, but that’s time they aren’t spending helping clients.

I think if you can get your site under 2 seconds then it becomes about prioritization. If it’s important that you have a nice design, you probably do need some decent size images on there. If there are some plugins you can’t live without, it makes sense to keep them and take a bit of a hit speed wise.

Summarizing WordPress speed

You can really go deep on speeding up your WordPress site. You could probably spend weeks fine tuning all of the elements and getting it perfect. But for most people, there are a few major reasons why their site is running slow. And if you don’t deal with these issues, the fine tuning is a waste of time.

  • Quality of your host.
  • Physical size of the site, generally due to images.
  • Number and quality of the plugins used.
  • Number of external scripts running on the site.
  • Extra baggage built up over time.

If you have any questions about WordPress speed, please reply in the comments below. If you are interested in support with your WordPress site check out WP Curve.

About

Dan Norris is a co-founder at WP Curve and a passionate entrepreneur with an obsession for content marketing.

  • Tim Davies

    Great practical article. Ill be sharing this one with the dev team at work – and uni course online. Thanks again.

    • http://wpcurve.com/ Dan Norris

      Thanks Tim glad you liked it mate.

  • http://www.webporter.com.au/ Malessa Brisbane

    Thanks Dan, great advice. Optimising my website’s speed is actually on my to do list. I just ran it through Pingdom and it takes just over 8 seconds. Got some tweaking to do :)

    • http://wpcurve.com/ Dan Norris

      Hey Malessa good stuff, I hope this article helps. Perhaps the first goal can be to get under 5 seconds which should make a big difference.

  • http://www.webmaisterpro.com/ Kaloyan Banev

    It is possible without a doubt. It is always possible to squeeze the last byte. I wish it can be done on any WordPress websites.

    • http://wpcurve.com/ Dan Norris

      Can it not be? I think a lot of the time it’s just about compromising. If speed is more important than other factors (i.e. saving money hosting, loading up a blog full of ads etc) then it’s do-able.

      • http://www.webmaisterpro.com/ Kaloyan Banev

        You are right, it is about compromising. In terms of hosting, CDN, gzip compression,minification, low number of plugins, low number of HTTP requests, etc.. For blogs sure, it is real possibility to get under 1sec, but for more complicated projects based on WordPress.
        Without a doubt speed is one of the main factors, the top one is user experience.

  • http://maxlielje.co/ Max Lielje

    Suggesting not to use SSL site-wide / prepare for the use these days is a pretty bold claim, especially with so many of the future HTTP 2.0 specs already being published. Handshakes don’t take nearly as long as they used to and a decent server setup (session caching etc.), wildcard certificates and a thoughtful infrastructure in general can further improve SSL performance.

    People are (slowly but steadily) becoming more security focused in their daily browsing habits, not alone because browsers are highlighting valid certificates more and more.

    I think the way to go here is to tune every little thing in the sites infrastructure to be able to deliver a great user experience while still using SSL everywhere instead of only using it at checkout pages for example.

    • http://wpcurve.com/ Dan Norris

      Hey Max good point, I’ve re-worded this. I didn’t specifically look at ways we could have optimized this but for now I don’t think it’s needed on the homepage. For a software app or something it makes sense but for us it made more sense to have a dedicated signup page.

      Can you explain how an SSL benefits the end user on the homepage? It seems completely unnecessary to me if the page isn’t capturing any information from the user?

      • http://johndturner.com John Turner

        SSL allows you to use the SPDY protocol. http://blog.cloudflare.com/introducing-spdy

        CloudFlare does this for you automatically if you use their flex ssl cert. :)

        • http://wpcurve.com/ Dan Norris

          Thanks John. Have you done speed testing with this? There isn’t a lot of detail in that article but it sounds cool.

          • http://johndturner.com John Turner

            I haven’t but it’d be interesting test! I just wrote a post how cheap hosting can be made to be as fast as wpengine with cloudflare’s cache everything. Need to add https(SPDY) to the test.

          • http://www.kinsta.com/ Mark Gavalda

            Guys, take a look at this article by Zack, it’s awesome! (Just as this one is Dan, but I think the two complement each other perfectly) :)
            Update: somehow the link was cut off!? Trying again: https://thethemefoundry.com/blog/why-we-dont-use-a-cdn-spdy-ssl/

  • http://www.buildmyonlinestore.com/ Terry Lin

    Sweet post man! Curious if there are any workarounds you’ve found on Youtube/Vimeo/Wistia embed scripts?

    Have messed around with the LeadPlayer/LeadPages embed but doesn’t seem to help.

    • http://wpcurve.com/ Dan Norris

      Hey Terry we stayed away from the LeadPlayer script because it felt slow. I didn’t specifically time it or anything but I don’t like the way it sits there loading on the page and think it’s unnecessary when such a small % of people actually watch the video.

      The compromise for me was using the Wistia Popup with a slight twist. The pop-up means the only thing that needs to be loaded is the 640px image and the javascript file from wistia (which is about 50kb from memory). I copied the over to our installation of WordPress so it’s cached and delivered via MaxCDN (as opposed to sitting on Wistia), and we also loaded the wistia javascript asynchronously which means it doesn’t load in until the page is fully loaded so it doesn’t impact on the load time for other people. So to have the video there we have about 40kb of image and then another 40kb or so that loads after the page loads.

      It also looks better I have no idea why Wistia keep all of the player stuff visible when a video is not yet played. It looks horrible and makes no sense. I was actually considering using Vimeo or something but the pop-up works pretty well.

      • http://www.buildmyonlinestore.com/ Terry Lin

        Yeah adding another layer of LeadPlayer script just didn’t seem to make sense either. Vimeo has some huge overhead too in their embed so I guess a popup / layover image is the best solution as you mentioned!

        • http://wpcurve.com/ Dan Norris

          Yeah if you think about how few people actually watch the videos it doesn’t make a sense for everyone to cop the associated load time. The pop-up looks kind of cool too, those videos don’t look much good at 600px or smaller.

        • http://digitalscrapbookinghq.com/ Melissa Shanhun

          HA! Vimeo was had such a shocking time with load times recently. In Australia they’ve had ongoing issues, to the point where I can’t actually watch them. (Yes, I have a super fast, wired connection). It’s really annoying as a lot of people use Vimeo to deliver training video. My “to watch” list is a mile long now.

          • http://www.buildmyonlinestore.com/ Terry Lin

            Yep I ran it through the Pingdom test and there is something that takes almost 1 second to load. Will give Dan’s suggestion a shot and use an image overlap then have a lightbox popup player or something similar!

    • http://foliovision.com Alec Kinnear

      Hi Terry,

      We’ve recently added both Vimeo and YouTube API playback to FV Flowplayer. We do everything to make sure FV Flowplayer loads quickly and has a light footprint (including visual). You can disable autoplay/autoload as a global setting across your site. If you or Dan have any suggestions about how we can make FV Flowplayer even lighter or easier to use, please let me know.

      You can read more about FV Player here http://foliovision.com/player

  • http://www.filmtrooper.com Scott McMahon

    Now this was an epic post! Thank you so much. I’m glad I’m part of the email list. I didn’t understand half of what’s in this article. Haha. But I just applied a few of the tips and bam! My speeds increased significantly. Thank you.

  • flipfilter

    Hey Dan,

    I’ve noticed when I load WP Curve, the first time it loads all the p text seems to be missing – http://awesomescreenshot.com/03d2k0kib6.

    It’s fine after a refresh though. I’m using a relatively up to date version on Chrome on Mac. Any ideas?

    • http://wpcurve.com/ Dan Norris

      Hmm not sure, it could be the old version cached. I’ll have a look. We just replaced the theme and sometimes that happens. Let me know if it happens again.

    • Alicia Hurst

      Same here!

  • http://digitalscrapbookinghq.com/ Melissa Shanhun

    So if you remove Akismet, how to you stop the spammer just spamming your WP comments?

    Somehow I still get WP comments without Akismet

    Edited to add: I use Disqus! :) Have done for years!

    • http://wpcurve.com/ Dan Norris

      We use Disqus for WordPress comments. The default WordPress comments system is very average and the quality of the comments goes up with Disqus. We get no or virtually no spam with disqus and if we do occasionally get a low value comment we can just reply to delete it via email.

      • http://digitalscrapbookinghq.com/ Melissa Shanhun

        Yep, I have used Disqus for years. So I disabled askismet and within MINUTES I got dozens of spam comments emailed to me.

        I never get spam in the Disqus comments though.

        • http://wpcurve.com/ Dan Norris

          What do the comments look like? Are you sure they aren’t trackbacks? You shouldn’t be getting any comments through WordPress if you are using Disqus.

          • sidhartha

            I too have the same problem. I am using Disqus. But still daily I am getting spam comments in WordPress comment system.

          • http://digitalscrapbookinghq.com/ Melissa Shanhun

            Hmm, on closer inspection they are track backs. So how can I get rid of the spammy ones?

          • http://wpcurve.com/ Dan Norris

            Ah cool I just ignore them and delete them when i have to. You could turn trackbacks off but I like to know when people link to me so I generally leave them on.

          • http://digitalscrapbookinghq.com/ Melissa Shanhun

            I don’t really love handling an extra 100 emails a day, so I guess I’ll leave Akismet installed then!

  • http://www.damienelsing.com/ Damien Elsing

    Great post, Dan. I recently switched to WP Engine recently and so far so good (although unfortunately their Japan datacentre where I’m hosted has been giving 60 second page load times for most of the day!!).

    Do you (or anyone) know of a way to combine various tracking scripts somehow? With tools like google analytics, clicky, crazy egg, etc all running at once it slows the site down a fair bit. But as you said it’s a trade off between speed vs the benefits/insights this stuff provides.

    • http://wpcurve.com/ Dan Norris

      Hey Damien have you seen http://segment.io ?

      • http://www.damienelsing.com/ Damien Elsing

        I hadn’t seen that. Looks great. I also found Google Tag Manager, which seems good so far. It just has one small snippet of code on the site which never needs changing, then you add and update the individual tracking tags for various tools in their Tag Manager interface.

        • http://wpcurve.com/ Dan Norris

          Yeah I was going to suggest that, I had a look at their site before replying and I was a bit confused by it but I thought that was what it did.

  • Tim Blankenship

    Dan, I am a client of yours and this was a great article. Wow, what a rabbit hole!! I checked my site for all of these things and they all need attention. Does your service handle this or do you recommend someone that can take care of these things

    • http://wpcurve.com/ Dan Norris

      Thanks Tim. We do the main things for clients and I’m usually pretty confident that through a combination of us doing small fixes and clients taking our advice, we will be able to get sites into the 2-3 second range. I’ve logged a ticket for you.

      There are some things that clients often don’t want to hear though. Namely moving hosts, reducing plugins and things on the page. That always seems to be something that business owners never really want to make hard decisions on.

      Some things in this article are well out of scope. We probably spent a full week working on the speed of the site, so it wouldn’t be possible to do all of that in small fixes.

      • Tim Blankenship

        I just signed up with wpengine using your affiliate link. Thanks for your help, im just impatient.. :)

  • Paul Oaten

    Hi Dan, just to let you know you have a spelling error in Doug’s code snippet which will white screen a site if copied & pasted as is. the word “filter” in the last two lines is missing the “i” :)

    Great post – thanks for pulling it all together. Some great tips.

    • http://wpcurve.com/ Dan Norris

      Yikes thanks mate I fixed that up.

  • John Peterson

    Excellent post. I’ve just gone through a overhaul of my company’s site too. Had some poorly written plugins, unnecessary plugins, un-optimized images, and other things that were slowing things down. Went from ~2.5-seconds to ~700-ms. Still need to implement caching and perhaps a CDN. I’ve used wpEngine with great results too.

    • http://wpcurve.com/ Dan Norris

      Awesome good stuff John.

  • Juan Cervantes

    hola, i have wordpress with woocommerce. my provider told me i should move to a vps because of my traffic. now it is very slow, the server cpu is always 100% and the provider told me i have problems with a script but he wont help me.:( now i’m looking for somebody who can help. i would pay for it. my customers go down and down and i don’t know how to solve

    • http://wpcurve.com/ Dan Norris

      Hey Juan we’ve helped a few clients with WooCommerce. A few things that help:

      * Having more RAM is almost always helpful, it seems to hog ram for busy sites
      * Changing from MyISAM to InnoDB also helps
      * Removing old data can help as well, particularly on older sites the database gets filled with orders and products and loads of stuff that makes it a bit unmanageable.

      It sounds like you are on a shared server which for a busy site with a lot of orders probably won’t cut it for WooCommerce.

  • http://bloggingwizard.com/ Adam Connell

    Dan,

    This is one of the most in depth guides that I’ve found right now on improving load times for WP sites – will be including it as a reference in a post I’m working on at the moment.

    Not sure if it’s just me but the font you guys are using now isn’t too easy on the eyes.

    • http://wpcurve.com/ Dan Norris

      Thanks man great to hear. Yeah we need to fix up the font on Windows. It’s in our list.

      • http://bloggingwizard.com/ Adam Connell

        No worries! Looking forward to the font fix – thanks.

  • Samir Madi

    Dan great post… This is ideal for my new site that I am about to develop and the timing was great.

    A number of points above I was not aware of.. I bet you web performance developers don’t like to shares these points as it takes them out of a job.

    I only have a launch page but already I found that the image is too big in size..

    Well done..

    • http://wpcurve.com/ Dan Norris

      Hey Samir I’m really glad you found it useful mate, thanks for commenting.

  • Peter Knight

    fyi I’m on Chrome 32/windows. Readability sucks, open sans not rendering well at all.

    • http://wpcurve.com/ Dan Norris

      Hi Peter sorry about that, this should be resolved now.

      • Peter Knight

        Hey it’s much better now. I look forward to the day when all browsers just render fonts beautifully and consistent every time.

  • Cesar Falcao

    Nice article, very detailed, I think I will double check my plugins. Currently I’m using a 5 US/m Digital Ocean VPS (APC+NginX) and Cloudflare gave me 1.24 secs (no CDN points in South America) for a 1MB page.

    • http://wpcurve.com/ Dan Norris

      Great work Cesar and thanks. Digital Ocean are great for tech savvy people. We hosted our forum software on there recently it’s a good system.

      • Cesar Falcao

        Thanks Dan. I was very reluctant to learn Unix/Linux, even as a OSX fan, but in 4 months I could made the switch, and love it. As sidenote: you have a very cool service here.

        • http://wpcurve.com/ Dan Norris

          Thanks mate

      • Cesar Falcao

        What forum solution did you choose? – I tried all of them (I think it’s WP related, I don’t want to to hijack the post).

        • http://wpcurve.com/ Dan Norris

          We used Discourse, it was great. We actually ran it on discoursehosting.com but we played around with the open version on Digital Ocean when we were considering customizing it.

  • http://serebniti.ru Серебряные нити

    For speed up render youtube players

    http://wordpress.org/plugins/youtube-speedload/

  • mohammed chand

    This was given by google pagespeed insight was this good or bad.

    Reduce server response time
    In our test, your server responded in 0.38 seconds. There are many factors that can slow down your server response time. Please read our recommendations to learn how you can monitor and measure where your server is spending the most time.

    • http://wpcurve.com/ Dan Norris

      Hey Mohammed, .38 is not great but it’s not terrible either. Page speed will trigger that rule if the delay is over .2 of a second. We have had clients with page delays of 1-5 seconds or worse in rare cases. .38 delay is probably ok, if the rest of your site is optimized you can probably get a load time of 2-3 seconds which is fine for most small business sites.

      Generally we recommend moving hosts if you want to speed up the response time. Usually our site on WP Engine will not trigger that rule which means the response time would be under .2 of a second.

  • http://www.home-ec101.com/ Heather Solos

    Just remember if you use a caching plugin to ensure your feeds are exempt. Cached feeds can wreak havoc with RSS to email services.

    • http://wpcurve.com/ Dan Norris

      Thanks for the tip Heather.

  • Katie Keith

    Thanks a lot, some really useful tips here! Interesting to see how much improvement you got from moving to a specialist WordPress web host, even though you were already using W3 Total Cache and CloudFlare.

  • http://8bitnerds.com/ Dave

    My site appears to load quickly but when I run it through Gtmetrix or Pingdom it says it loads in 6 seconds. I disabled all the plugins except WP Super Cache and I dropped 3 seconds off the load time. But I like those plugins so I will have to go with something else. I’m on shared hosting with Cloudflare Pro but am thinking of dropping the Cloudflare in favor of DreamPress.

    Excellent article. I will be sure to come back to because I am all about speeding up my website.

    • http://wpcurve.com/ Dan Norris

      Thanks Dave good to hear mate.

  • Peter

    Great advice! I’m curious how your example site in the article went from 150 requests down to 39 requests, and down from 1.4mb to 452.6kb? Was that something WP Engine did, or how did you lower the requests and page size?

    • http://wpcurve.com/ Dan Norris

      Hey Peter, I feel like this was explained in detail in the article. Which parts do you have questions about? It’s essentially reducing image size, having less plugins and less external scripts. We also load some scripts after the page is loaded. This is all manual dev work that our developers did.

  • FBA;

    can someone tell me why my site is so slow still, http://bragnews.com/

    • http://wpcurve.com/ Dan Norris

      All of the reasons listed in the article. Too many to list again here.

  • gaffmultimedia.com

    you really tried but inactive pluggins doesnt affect the website speed, i have experimented

    • http://wpcurve.com/ Dan Norris

      I think explained reasonably well why it’s not a great idea to have inactive plug-ins.

  • Darwin Bonilla

    This is great, thank you, this has been very helpful

    • http://wpcurve.com/ Dan Norris

      No worries mate

  • KatArt Graphics

    I am running a WooCommerce Bookings site where someone can book any hour within the year 2015 (8760 blocks). The Booking Calendar is running ~3500 database queries which gives me an ~13s Server Response Time. I don’t know what I can do fix this load time.

    • http://wpcurve.com/ Dan Norris

      Hey KatArt it’s a bit hard for me to help much with that info but yeah it sounds like there’s a lot of data to manage there.

  • http://www.musclebuildingfoodshq.com/ valleyflyin

    I heard you on the SPI podcast. Thanks for this page. I already started removing unnecessary plugins.

    • http://wpcurve.com/ Dan Norris

      Good to hear mate. I’m glad you found the show useful.

  • http://www.littlesweetheartspetsitting.com Michelle Bollinger

    This is fantastic. I went a little crazy with awesome images I created in Canva, and my site got huge. I have been working diligently to rein it in and this article helped me to figure out what else was slowing down my site. Thx!

    • http://wpcurve.com/ Dan Norris

      Ha yeah Canva can be pretty addictive hehe.

  • dedicated hosting