Speed Up WordPress – Your Complete Optimization Guide

WordPress is a very powerful and popular Content Management System (CMS). It currently powers over 29% of all the sites on the internet. That means every 1 in 4 sites that you visit is most likely running WordPress. Sites like EA, CBN, ESPN, etc. all use WordPress to power their sites. I personally think WordPress is the best solution for business owners and even enterprise sites when it comes to simplifying the online marketing of their website.

Speed Up WordPress

Even though WordPress is super popular it can also come with a price. And that price is web performance. Originally WordPress was created as a blogging platform. But it has evolved into much more than that. With that evolution comes the need for more functionality. And with so many different configurations out there WordPress can run quite slow if not setup correctly. In this post I want to cover, step by step, exactly how I configure all my WordPress sites and how you can easily achieve speeds of under 500ms load times.

A little bit about me. I have spent over 10 years using WordPress and currently work for Kinsta, a high-performance managed WordPress hosting company. Previous to this, I worked for KeyCDN, a global content delivery network. I have spent hundreds of hours optimizing WordPress sites to ensure that they are running at optimal performance. As an internet marketer, WordPress has helped me achieve amazing things and it can also help you! Just follow the steps below to instantly speed up WordPress.

I promise you, no matter what your background or level of expertise, you will find something in my post that is useful.

1. Fast WordPress Hosting

One of the easiest and most important ways to speed up WordPress is to start with a solid foundation. And that means picking a reliable and fast Web Hosting provider. I’m sure you see guys all the time advertising BlueHost hosting. Unfortunately, a lot of those sites are run by affiliate marketers simply trying to make a quick buck. And most of the time the affiliate marketer doesn’t actually use them, they simply refer people to them. Picking a host like BlueHost is one of the worst decisions you could ever make when it comes to hosting your website.

Did you know that BlueHost is owned by EIG? EIG is a corporation that has been buying up all the crappy hosts. Here is a full list of hosts owned by EIG. You can pretty much expect the same horrible service from all of them.

While it is true that I am an affiliate marketer, my passion for web performance has always trumped that. That is why I will only be referring you to web hosting providers that I currently use for my websites. Having a superior web hosting provider means that you don’t have to worry about downtime or speed. Below are three WordPress hosting providers that I fully stand behind.

Option 1 – Affordable WordPress Hosting – SiteGround

If you are looking for more affordable WordPress hosting, I highly recommend SiteGround. They offer shared hosting with HTTP/2, PHP7, SSD and tons of other features starting at only $3.95 a month! This is about as good as it gets for shared hosting folks. Make sure to check out our in-depth SiteGround review.

siteground shared wordpress hosting

SiteGround is great if you need a cheap host that still has some of the latest features that the bigger guys do. Once you start getting a lot of traffic though I recommend investing in a bigger host like WPHostingSpot or Kinsta below.

Visit SiteGround

Option 2 – High Performance Managed WordPress Hosting – Kinsta

If you are looking for high performance managed WordPress hosting, I have nothing but praise for Kinsta. Kinsta’s vast feature set is really what sets them apart from the other managed WordPress hosting companies out there. Kinsta is the kind of host you want if you go on Shark Tank. Some of Kinsta’s current clients include Mint.com, Ubisoft, Swagway, Intuit, and AdEspresso! Make sure to check out our in-depth Kinsta review.

Kinsta WordPress hosting

Some of Kinsta’s features include Nginx, Ubuntu 16.04, PHP 7, HTTP/2, CDN, Free SSL, MariaDB, Free premium DNS via Amazon Route 53, uptime monitoring via New Relic, and they have some of the best support in the business!

Visit Kinsta

2. Content Delivery Network (CDN)

No matter how fast your web hosting provider is, you can never beat the latency issue. When you host your website it is always stored on a single server somewhere in a data center. For visitors across the country, things are much slower because it has to download everything across the globe. A CDN fixes that by storing copies of your assets, like images, CSS, and JavasScript on servers, also known as POPs, around the globe. It also caches them. This way when a visitor from across the globe is looking up your website, the content is delivered from the local POP instead of your web server. Make sure to check out my article on CDN for dummies if you want to learn more about how CDNs work.

I use KeyCDN of course for all of my websites. Now yes I work for them so I might be a little biased. But at $0.04/GB (lowest price globally) with more POPs than MaxCDN, there really is no comparison and it’s a no brainer. KeyCDN also offers origin shield and secure token free of charge which most other providers charge hundreds of dollars for. KeyCDN also has a free Let’s Encrypt integration so you can deploy SSL for free. And they fully support HTTP/2 and the latest protocols so that your content is delivered as fast as possible. Make sure to also check out my full review of KeyCDN.


If you aren’t using a CDN yet then you are hurting yourself. A blog with a decent amount of traffic usually is in the 20-25GB bandwidth range, and to implement a CDN it costs less than a $3 per month. And suddenly your site is supercharged from multiple POPs all over the world. I used the free CDN Enabler plugin to deploy my CDN.

Setup the WordPress CDN Plugin

CDN Enabler is a completely free WordPress plugin that was designed for the sole purpose of linking your assets to your content delivery network provider (CDN). Check out our blog post on how a CDN can help speed up your website by 68%! As of writing this, the plugin currently has 6,000+ active installs and a rating of 4.8 out of 5 stars. People seem to love it. Here are just a few of the reviews below.

Can’t find easier plugin than this to power your website with a CDN. Fast and easy, all you need! kmartin26

It’s blazing fast, no unneeded functionality. bnwmovies

If you are running on redis cache and don’t want any bloated caching plugin this is very lightweight and seems to work well. rsmith4321

What exactly does the plugin do? Basically, when you are using a CDN, they will give you a special URL, such as cdn.yourdomain.com. This needs to be updated on all your WordPress images, CSS, and JavaScript files. This plugin lets you input your CDN URL and boom, you are ready to go! Follow the steps below to install it and set it up.

Step 1

Under “Plugins” in your WordPress dashboard click on “Add New” and then search for “CDN Enabler.” It should be the first one that comes up and says By KeyCDN. Click on the “Install Now” button. You can also download CDN Enabler directly from the repository if you prefer.

install cdn enabler

Step 2

Click on “Activate Plugin.”

activate cdn enabler

Step 3

Under “Settings” in your WordPress dashboard click into “CDN Enabler.” You will then want to input your CDN URL and also enable the HTTPS option if you are using a CDN that is running over HTTPS. If you don’t know how to find your CDN URL, you can always ask your CDN provider for help. Then click on “Save Changes.”

cdn enabler setup

And that is it! Now everything on your website will be linked to your CDN and turbocharged.

Download CDN Enabler

3. Utilize the perfmatters Plugin

perfmatters is a lightweight WordPress performance plugin developed by myself and my brother which basically includes all the hacks we use on our sites to gain the extra edge over the competition. Get all the secret sauce from our sites with a few clicks.


Some of its features include:

  • Disable emojis
  • Disable self-pingbacks
  • Disable XML-RPC
  • Disable and or limit WordPress revisions
  • Remove query strings from static resources
  • Disable embeds
  • Change frequency and or disable Heartbeat API
  • Change autosave interval
  • Support straight from the developers of the plugin

You can also disable scripts in WordPress on a per page/post basis. This is very powerful and can drastically increase the speed on your WordPress sites (especially your homepage). A few examples of what this can be used for:

  • The popular Contact Form 7 plugin loads itself on every page and post. You can easily disable it everywhere with one click and enable only on your contact page.
  • Social media sharing plugins should only be loaded on your posts. You can easily disable it everywhere and load only on post types, or even custom post types. For example, the social sharing plugin you see right now on the sidebar of this post, doesn’t load on any of our pages, thanks to the perfmatters plugin.
Scripts Manager
Scripts Manager

And much more!

Get perfmatters

4. Optimize Database

The next thing to do is to ensure that the WordPress database is optimized. If you have never done this before you will want to check and make sure you don’t have any mixed MyISAM and InnoDB tables. Basically, there are two different types of MySQL tables. InnoDB has proven itself to be much faster. You can follow this tutorial here on how to convert MyISAM to InnoDB. When it comes to ways to speed up WordPress, this is often an overlooked optimization.

The next thing to do it clean up old post revisions and drafts that are most likely sitting in your database. I am always surprised by how many WordPress website owners don’t do this.

You should treat WordPress like a car, that means oil checkups, tuning, etc.Click To Tweet

You can install the free WP-Optimize plugin and run an optimization. As you can see below, in my case, there were 108 revisions sitting in the database. This is not a lot, but going forward its always nice to start with a fresh slate. Check out my in-depth post on how to delete old WordPress revisions from your database. Note: I delete the plugin immediately after I am done running the cleanup.

wp-optimize plugin
WP-Optimize optimization

Now that the old post revisions are cleaned up, it is time to limit the number of revisions so they don’t start bloating the database down the line again. There are a couple ways you can do this. I recommend using our perfmatters plugin. You can limit or disable them with a single click, as seen below.

disable and or limit wordpress revisions
Disable and or limit WordPress revisions

Or you can do it manually by adding the following code to your wp-config.php file. In this example, I am limiting them to 3.

define('AUTOSAVE_INTERVAL', 300); // seconds
define('WP_POST_REVISIONS', 3);

It is important to add the code above the ‘ABSPATH,’ otherwise, it won’t work.

limit wordpress revisions
Limit WordPress revisions

You can also disable revisions altogether.

5. Lightweight WordPress Themes

WordPress themes can make or break your site. There are a ton of bloated themes out there which can bring your site to crawl. When you looking for a WordPress theme you want to make sure you are buying from a reputable company with good developers and support. I use MyThemeShop on a lot of my websites and couldn’t be happier. I saw a 250ms decrease simply by changing themes, without anything else! Kudos to the team over at MyThemeShop because they know how to code properly, keep things lightweight, and still include schema markup and rich snippets, which are things most competitors don’t.


I went from MyThemeShop to ThemeForest, and am back on MyThemeShop. Yes, I was stupid. I won’t make that mistake again. I’m not saying that all developers at ThemeForest are bad, but unfortunately a lot simply add bloat to increase their sales. If you are interested I am currently running their socialMe theme. Feel free to check out my MyThemeShop review.

Head over to MyThemeShop and grab a super fast theme!

6. Got Rid of 12 Plugins I Can Live Without

live without you
Src: imgflip

The next step was to get rid of all the unnecessary plugins that I could technically live without. Now thankfully this is where I have to shout out to MyThemeShop again. I had a lot of plugins installed with my ThemeForest theme because I lost functionality leaving MyThemeShop (MTS).

Here are plugins I got rid of:

7. Took My Custom CSS to Bare Minimum

custom css

With my ThemeForest theme, I had to fix a lot of things to make it work the way I wanted. My custom CSS file had 247 lines of code. I went through each line after switching themes and managed to drop this down to 88 lines of code. This just goes to show you how much better these guys code. And I could probably clean this up even more.

New CSS Button

If you are curious, here are my new CSS buttons I am using.

Sample Button

.btn {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0px;
  font-family: Arial;
  color: #ffffff !important;
  font-size: 22px;
  background: #8cc462;
  padding: 12px 22px 12px 22px;
  text-decoration: none;
  border-bottom: 4px solid #6a944a !important;
  position: relative;
  display: inline-block;

.btn:hover {
  background: #97d26a;
  text-decoration: none;

Here is the HTML code. You could even go one step further and create your own shortcode. But by doing it this way, I get rid of one HTTP request from the button plugin.

<a class="btn" href="" target="_blank">button text</a>

8. Changed Web Fonts

I have been doing a lot of research recently on web font performance. I ditched the Adobe Typekit service. I saw an additional 300ms reduction by doing this. Typekit adds 2 external HTTP requests and it also base64 encodes all the font formats. If you aren’t familiar with fonts you no longer need to serve all the font formats, you only need WOFF and WOFF2 (if you are going for extra compression).

I switched back over to Google Fonts and am using the web font only for my headers. The rest of my site uses a web safe font, “Arial.” This ensures fonts are not slowing down my site whatsoever. Did you know there is a 200ms different between Google’s fastest font and a web safe font? (Update: I have moved back to a Google font for my body text as I could no longer stand Arial lol. But again the external call to Google is much faster than using a third party like Typekit.) And when Typekit goes down, which it does once in a while, it seems like half the internet breaks.

arial vs open sans
Src: KeyCDN

I also added prefetching for the Google fonts domain by adding this to my header.php file.

<link rel="dns-prefetch" href="//fonts.googleapis.com/">

9. WordPress Caching

Speed Up WordPress - Cache Enabler

Obviously everyone knows by now the importance of caching for your WordPress site. There are free caching plugins out there such W3 Total Cache and WP Super Cache, but I have never been that impressed by them as far as speed goes. I used to use WP Rocket, which I was pretty happy with, and it performed well for over a year. However there is a new caching plugin on the block, and it is completely free. I am referring to WordPress Cache Enabler. Check out how it boosted speeds on a fresh WordPress install by over 27%!

WordPress Cache Enabler

The free WordPress cache enabler plugin is created by the team over at KeyCDN, a global content delivery network which focuses on speeding up content delivery. The plugin was developed with HTTP/2 and simplicity in mind. Setting up a caching plugin shouldn’t have to be crazy complicated or involve 25+ steps. How does it work? Well, basically it creates static HTML files which are then stored on your web server’s disks. When a visitor hits your website, the static HTML file is served. Due to it being static, this can be delivered super fast! Why? Because it pretty much bypasses the plugins, database, etc.

As of writing this, the plugin currently has a rating of 4.6 out of 5 stars. People seem to love it. Here are just a few of the reviews below.

Simplicity and effectiveness. Love it! atomiccherry

Loving this lightweight plugin! It even supports WebP! Saw a speed increase after installing! tandkb

Nice and simple caching plugin, works great, and even supports WebP images generated by EWWW Image Optimizer. Awesome! nosilver4u

Cache Enabler Features

The cache enabler plugin features the following:

  • Caching HTML to disk
  • Feature to automatically purge cache when publishing new pages/posts
  • Manual purge feature
  • Displays the total size of cache in your WordPress dashboard
  • Minify your HTML and JavaScript
  • Supports WP multisite and custom post types
  • Ability to set the expiry directive
  • WebP Support (when combined with Optimus)
  • Supports responsive images via srcset since WP 4.4
  • Works with Autoptimize
  • HTTP/2 Focused

Example of Cache Size in Dashboard

In your WordPress dashboard you can clearly see on the “At a Glance” widget the size that is currently in the cache.

cache size dashboard

Example of Cache Size in Dashboard

You can individually purge pages/posts or clear the entire cache right from the WordPress admin bar.

clear cache wordpress dashboard

How to Install Cache Enabler

Follow the steps below on how to install the free WordPress Cache Enabler plugin.

Step 1

In your WordPress dashboard under “Plugins” click on “Add New” and search for cache enabler. Ensure that it says By KeyCDN for the author. Click on the “Install Now” button. You can also download it directly from the WordPress repository.

search cache enabler

Step 2

After you activate the plugin you will want to enable a few settings. In your WordPress dashboard under “Settings” click into “Cache Enabler.” I recommend enabling the pre-compression option and also the WebP support. You can take advantage of this with the Optimus Image Optimizer plugin. WebP is Google’s image format and has been shown to decrease image sizes by sometimes up to over 70%! I also recommend enabling cache minification for both HTML and JavaScript. Note: if you have any issues, you might have to disable the JavaScript minification and only use HTML. The Disqus plugin is one for example that doesn’t play well with JavaScript minification.

cache enabler settings

Step 3 (optional)

There is an advanced snippet of code you can use to bypass PHP in WordPress. This is an optional step, but you will see even faster speed increases! I am using this for the speed tests you see further below. Follow the tutorial here on how to enable the advanced snippet for Nginx and Apache.

Cache Enabler Speed Results

So now lets see what the speed tests say. I am using this on a fresh install of WordPress with the twenty sixteen theme running. If you have a larger site you can expect to see even faster increases!

Without Caching

I first ran 5 tests via Pingdom and took an average without a caching plugin running.

wordpress speed without cache

With Cache Enabler

I then ran another 5 tests via Pingdom and took the average with the free Cache Enabler plugin enabled.

wordpress speed with cache

You can see that the Cache Enabler plugin decreased load times from 537 ms down to 390 ms. That is a 27.37% speed increase for only 2 minutes of setup work using a free plugin! Not too shabby.

As you can see, for a free plugin, the WordPress Cache Enabler plugin can do wonders for your website or blog. It is super simple to setup and you will see drastic speed increases.

Download Cache Enabler

10. Google Analytics – Removed Advertising and Remarketing

Having worked in the corporate agency setting in the past I have always enabled advertising features and remarketing in my Google Analytics accounts by default. However, on my blog I don’t use any of the data, so better to remove it. Why? Because if you are running these features you will actually have a 2nd HTTP request for this file: https://stats.g.doubleclick.net/r/collect? and then your main Google Analytics script will have a 302 redirect in the response header.

google analytics collect

You can fix this by turning both remarketing and advertising reporting features off in your Google Analytics account.

google analytics data collection

You can also disable the features by adding the following code to your Google Analytics script.

  ga('set', 'displayFeaturesTask', null);

After disabling this you should no longer have that 2nd HTTP request and your main script will no longer have a 302 redirect.

google analytics no redirect

Speed Up WordPress Test Results

And here are my speed test results after I did everything above. The tests were run 8 times each.

Before Optimization

brianjackson before optimization
Src: Pingdom

After Optimization

brianjackson after optimization
Src: Pingdom

As you can see I managed to reduce my HTTP requests from 90 down to 44. I decreased my page size from 939.9kb down to 497.6kb. And I decreased my load time from 1.52s down to 276ms!

11. Get a Web Performance Audit

Still need an extra boost? If you still aren’t satisfied with your speed, I always recommend hiring an expert and getting an audit done on your site.

One day I’ll probably offer web performance audits, but right now I simply don’t have time. For now, I highly recommend Mike Andreasen, a Codeable expert, for web performance audits and HTTPS conversions. Here is an example of a client’s site before and after Mike’s web performance optimizations.

Website performance audit from Mike
Website performance audit from Mike

I personally chat with Mike on regular basis. He is one of the only webperf guys out there which I agree with on just about everything when it comes to optimization, which services and tools work the best, etc. 😉 And trust me, that is rare. I personally vouch for his work as I have the graphs, speed tests, and data from actual clients to back it up!

12. Additional Speed Up WordPress Tips

Here are a few additional things I am already doing that you might want to check out.

Call me crazy but I am actually still not happy with the results. My next goal is to bridge the 200ms barrier into the land of 100 ms! Stay tuned, as I already have some tricks up my sleeves on how to accomplish that. Hopefully my experience above on how to speed up WordPress will be eye opening for you. I would love to hear any feedback below!

Get More Stuff Like This

Marketing, WordPress, Blogging Tips, SEO and Reviews, once a week.

Thank you for subscribing.

Something went wrong.

84 thoughts on “Speed Up WordPress – Your Complete Optimization Guide

  1. Great article Brian.
    What type of hosting are you using?

    In the past I was able to load 87studios in around 250ms (98score on pingdom) without cacheing plugin, just doing VPS optimization, sever side cacheing and stuff.

    • That’s awesome Kris! I am on Kinsta managed WP hosting right now. Simply because I don’t have time if things break. I pay the extra $ so I can spend any free time I have writing. Ya there is a lot of optimization that can be done. Have you ever used Varnish caching server-side? One of the things I am playing with next is storing web fonts in localStorage instead of browser cache. Should be an interesting experiment.

    • Wow Tomasz, that sounds like an interesting plugin. Can you specify homepage loads as well? For example, my social sharing plugin js… can I then disable that from loading on the homepage? How well does it play with WP Rocket concatenation? Thanks

      • Hi Tomasz, Brian
        I’m also interested in how it plays with WP Rocket. Sounds like something to check out and write about…
        Brian – this is a great rundown, thanks for documenting your experience!

      • Yes, if plugin is correctly registered you can disable it even on homepage. Well, unfortunately I didn’t have possibility to test it with WP Rocket but I think it shouldn’t collide with it because it uses other technique of optimization.

  2. Nice article Brian, I am always looking at this also. I managed to get 1.5s off a bloat site by getting rid of google fonts all together. Plugin “Remove Google Fonts References” first, then generated webfontkit versions of my desired font with the utility on FontSquirrel, uploaded font files to my local webserver. In CSS, loaded the local fonts with @font-face in .eot, .woff, .ttf formats. The font loads then benefit fully from local cache.

    It’s a bit of messing around but has the added benefit that Chinese sites can load you up fast with your desired fonts – as google is blocked for them. And of course speed.
    Regarding caching, I use plugin FFPC -it’s a different thing entirely, why not shift your caching from disk to memory…..

    • Hi, thanks for your comment. I have done testing with local fonts and have found it slower sometimes vs Google fonts depending on the user’s location. But this is because of Google’s use of a CDN to power their font distribution. You could however load the fonts locally and then off of your own CDN. Actually what I am experimenting next with is using a tool like this: http://jaicab.com/localFont/ and storing fonts in localStorage vs browser cache (maybe that is what you are referring to).

      I will have to test with FFPC as I have not done much ever with caching to memory vs disk. Will give it a try :)

      • I tend to lean away from anything that needs multiple calls to a remote server, just personal preference. And again – China. That localfont sounds good, if it takes out a step for the local approach.
        FFPC I have had great results with, you do need access to the shell to enable e.g. memcached, but as it caches the actual DB calls it might actually work nicely together with every disk caching solution.
        Great tip on Mythemeshop, looking at it, love that performance – I might have to have a look into replacing themes on some news sites we have. Thanks!

  3. Good tips Brian, thanks for putting it all together.

    I did have one comment though – it seems to me a tad bit unfair to compare Themeforest and Mythemeshop.

    Themeforest is a marketplace where developers can sell their products, whereas Mythemeshop actually produces and sells their own themes? In my experience there are both great and terrible themes for sale on Themeforest, but at the end of the day Themeforest is not responsible for the code quality of the end product. This responsibility lies with the individual developer/agency, so it would be interesting to hear who was behind your original theme?

    • Hi Simon. Thanks for calling me out on that. I have edited my wording a little bit above. I do agree that not all the developers are bad on Themeforest. And they do have to make a living which means sometimes adding features to compete even if they don’t want to. My TF account has over 80+ downloads in it, so I have been through quite a few themes for myself and clients. Everything from Theme X, Avada down to minimal themes like Orca and Readme.

      • I think this problem can largely be attributed to the popularity of multi-purpose themes. As buyers/freelancer we are inclined to gravitate towards extra options and features, thinking more options will better equip us to meet the client’s needs. You never know what a client will dream up, and it’s nice to be covered.

        Unfortunately this includes a lot of bloat and as you say, the developers may feel forced to add functionality even knowing that it will compromise performance.

        Clients will rarely complain about poor performance, but will be quick to request new features, so it’s a fine line!

      • I think you had it right in the first place. ThemeForest is a lowest common denominator market place without much brand to protect. Bloated themes to newbies seems to be their main business model.

        Buy direct from a respectable developer (we are buyers of themes not sellers ourselves, no conflict of interest): do yourself, your client and the world a favour.

  4. Nice post Brian. I’m not going to pimp my service here, but I proxied your site through my server and had a total load time of 263ms, so breaking 300ms with your current host shouldn’t be too hard. After looking at your waterfall, I have a few tips. 1st, ob_start your header to chunk critical resources so only html and CSS are at the top. Once you have CSS on top, content ONLY in body, then load server-side scripts in the footer. The last part is key, 3rd party requests kill you, so unless it is needed for page paint, use a script loader to inject “extras” after the OnLoad event has fired. That alone will get you under the 300ms mark, if you want to get a little more extreme Skype me @CDSalmons and I’ll help you with the rest of it. As far as the Pingdom comparisons though, your main culprit wasn’t mentioned in the post which is the main thing most people forget about… DNS ;) So using DNSMadeEasy or Dyn(.)com will take care of that part. Anyhoo, always glad to see a fellow performance nut speaking out. If you need help let me know, take care

    • RE: DNS
      How much of an improvement can DNS hosting create? I looked into DNSMadeEasy and Dny and ended up using AWS Route 53 on one of my sites. The site is small and using a shared hosting solution, but it includes a CDN via cloudfront + s3. The new nameservers have propagated, but I’m not really seeing much of a change. I’m wondering if my understanding of the situation is unclear —or is the shared hosting holding it back? Appreciate enlightenment via links or comments!


  5. Hi Brian, as usual fantastic article. I am about to implement Optimus & Gonzales based off this. Keep up the amazingly informative articles. Most blogs write more overviews and very rarely get down to the real reasons behind implementing a certain practice and you have to take their word for it. Your articles provide background and enough in depth analysis which lets the reader feel confident about giving something you recommend a try!

  6. Sub-300 has me thinking “wow cool, I should try this stuff soon.” Sub-200 will turn me into “OMG MUST DO THIS NOW.” You’re a wizard, sir. Keep up the awesome work.

    • Haha, thanks TJ :) Ya I haven’t had any time to try and hit sub-200 yet. But it is coming :) One hint is that I am playing with web fonts and localStorage vs simply using Google’s font CDN.

  7. And one more (sorry for all the questions…) Which plugin do you use for redirects? I notice redirects for affiliate links, I’ve always struggled to find one that didn’t slow down tremendously as the number of redirects grew

  8. Just want to share a warning on WP Rocket – don’t depend on their 30 day money back guarantee. It’s got a bunch of conditions which basically require you to prove that it’s slower (never mind conflicts, etc.).

    Also see more recent posts from Brian recommending Cache Enabler. My experience so far is:
    Cache Enabler is super fast (when paired w/ CDN in particular). ZenCache is fast, WP Rocket has conflicts with themes (e.g. Kleo) and money back guarantee is just a farce. W3 Total Cache is buggy, and seems to slow things down more.

    http2 is a savior for performance, and negates the need to combine resources.

  9. Also to let you know, I’m having an email discussion with @tomaszdobrzyski:disqus with a feature request for Gonzales to support wildcards, so you can include/exclude resources from loading on site.com/page/*
    This is great if you’re running bbpress or buddpress, where pages are typically under site.com/forum/*, /members/*, /groups/*, etc. This would also work great for categories and tags (at least the default URL structure.

    I’m not sure if anyone else would find this useful, I know Tomasz has received quite a few feature requests for his awesome plugin, and shouldn’t necessarily add a ton of features and make it bloated. But I think this in particular (or an alternative of include/exclude by page type – page/post/forum/…) would take Gonzales to the next level.

  10. Still can’t stop thinking how you changed the whole look of the schema theme. This edited theme looks way better than the original demo of the theme. Schema is surely one of the fastest theme out there, but editing styles is a bit of pain… Really appreciated!

  11. Great article Brian. I’m wondering – why you choose to add all of those plugins in the first place? Just kidding :)

    One questions though: moving over to https – any gain/loss details you could share?

    • Haha don’t ask. I got lazy :( But no more.
      Moving to HTTPs, because of HTTP/2 and now HPACK compression, I didn’t see any performance losses. It made up for the slight overhead of TLS, but even that is minimal now. HTTPs doesn’t hurt you like it used to.

      Another big reason to move is SEO benefits and better referral data in analytics. Its hard to gauge just how much the ranking factor is weighted, but man, every little bit helps!

    • For me it was hard to test that because I actually migrated from PHP5.6 to HHVM, and then from HHVM to PHP7. So my scenario was a little bit different than most and from HHVM to PHP7 I didn’t notice huge differences. Although PHP7 is now more stable than HHVM in my opinion.

  12. Hey Brian,

    just wondering if caching still works with Kinsta? I recently moved to Kinsta and they already provide server level caching (which they claim is better than any caching plugins). Caching plugins are also part of their disallowed plugins list.

    • They do have a great affiliate program. But that is not why I use them. I use them because their themes are fast, they know how to code clean, and their support is beyond phenomenal.

      • Has been totally opposite in my experience. They’re absolutely trash with perhaps $5 / hour coders working on their themes. But to each his own, I guess.

        • Strange ya I have used them for years. Never had any issue with their code and I have ripped them pretty much apart :) ThemeForest themes in my experience have been totally the opposite. But everyone has their own preferences.

  13. Hi Brian.

    Just found your site.

    You have a new fan.

    Where did you learn all of this? You seem to have a very deep knowledge.

    Are there any comprehensive books or resources (apart from this blog) that you learned from?

    Sharing now on my social media.


    • Thanks Simon! I have been using WordPress for over 10 years. I can’t even remember a time when I wasn’t blogging :) I am definitely self-taught, which is one of the best ways to learn in my opinion. I always recommend “learn by doing.” Thanks for the share.

      • I run 40+ sites on 8mb memory VPS system at OVH. All sites perform under 400ms with zero tweaking. Just regular 17 plugins plus per site on a theme. If you made the effort, you might hit 250ms (Some sites do). Server in Germany, test in Australia. I doubt you’d get under 250ms unless you spent a lot of time on it. TBH – we’re here to make $ from the sites and anything under 2s makes Google happy. Our easyengine system is tweaked for 5000 threads and other things like max security, not a standard install. My partner used to work for Google as a SysAdmin and I’m obsessed with security as WP security is so bad.

        We’ll be offering bulk hosting shortly. Currently doing testing with the 40+ managed sites for last 3 months. We tried eNginx but EE is 10x faster, literally. We’ll go to a dedicated 32mb memory machine once we hit 50 sites.

        Thanks for the rantspace!

  14. Google analytics run asynchronus, so it suppossed not slowing down your site… better option ? Use google tag manager

    • That is true, but I actually host my Google Analytics on my CDN now. Tag manager has some of the same issues. See this article: https://www.keycdn.com/blog/local-analytics/ I will be updating the post above later tonight to reflect that.

      – By hosting locally you can ensure that their large script loads from your web server, or CDN, instead of having to reach out to Google.
      – Instead of 2 HTTP requests to Google, you now only have 1.
      – When you host locally, you now have full control over caching, expires headers, cache-control, etc.
      – Take advantage of your single HTTP/2 connection

  15. Hey Brian, great post. I’d love to hire you to work on speeding up my site but I noticed you’re not taking on client work. Can you recommend someone who knows WP as good as you?

  16. Hey Brian,

    Awesome guide. I’ve gone through the whole thing back to front, and signed up using your links for a few of the services you recommend. I noticed that WPhostingspot has possibly sold? Went through their site, and they don’t really come out and describe their deployment stacks… Do you still recommend them? I’d love to be on Kinsta, but kind of hard to justify the price at the moment.

    I’m on a $200/mo liquidweb dedicated server (shared cost between other projects though), and I can’t seem to get my page load speed anywhere close to what you’ve been able to achieve. (despite following all of your/and kinsta blog tutorials)

    I’m guessing it’s all the cpanel/whm bloat on the server for other projects, and the fact that they don’t have a supported Nginx config I can deploy to get away from Apache.

    Any experience with a Cloudways deployment on Vultr or similar? Also noticed Flywheel is on Nginx, but kinda seems like the little sister of Kinsta… Ever tried them?

    Great site, I’m going to link to your guides in my hosting/speed case study once I get everything figured out!

  17. Hello Sir, You are using generatepress right now but you recommended mythemeshop. please specify what is your most preferable theme? I really excited to know your recommendation. Thanks

  18. Hi Brian,

    Your plugin perfmatters is awesome. I am using on two of my websites and it did reduced a lot of loadtime and increased my site speed. Love your tips and tricks.

    Thank you!

Leave a Comment