The Ultimate Guide to Dramatically Speeding Up WordPress

Speed Matters

Website speed may be one of the last things you think about as a website owner, but it should not be ignored.

Boosting your WordPress page load speeds to be as fast as possible should, in fact, be a priority.

Why I Wrote This Article

I’ve been obsessive about trying to improve my site load speeds over the past couple years. It used to be something I completely ignored, until one day I actually ran one of my top-earning pages through a website speed test and found it took nearly 17 seconds to load!

Yikes.

While I didn’t know how important fast loading websites were, I did know one thing: 17 seconds was bad and it was likely raising my bounce rate.

So I spent weeks learning as much as I could about optimizing website speeds. The site in question was not a WordPress blog and to fix the issue required spending thousands of dollars and month of custom coding.

But since then, I do my very best — and I pay top dollar — to keep my earning sites loading as fast as possible.

And you know what? Once I started to optimize all my best earning sites for blazing fast speeds, my earnings increased. More ad clicks, more affiliate sales, better user experience stats.

I can’t give an exact figure for how much of an improvement I saw, but it was substantial enough that I noticed over a few weeks.

So yes, I take web page optimization very seriously, and you should to. Because optimization is such a complex (and often time-consuming, and potentially money-spending endeavor), a lot of bloggers and marketers who are NOT tech savy, ignore it.

But as I found myself, to do so is leaving money on the table — perhaps a lot of money.

What This Article Is

Welcome to my Ultimate Guide to improving your WordPress Speeds.

This articles is over 12,000 words long and covers absolutely everything you can do to improve your page speeds with over 30 highly detailed recommendations. It’s everything I know about the topic that I’ve learned. I proud to say that I feel this article covers the topic far more comprehensively than any other article out there.

I’ve even found, through testing, a few new tips that I have not seen anyone else recommending.

So there’s something for everyone here — new blogger to advanced techie.

This post has taken me over a week to write and dozens and dozens of hours testing settings and trying to squeeze out every shred of performance from my own WordPress blogs.

I’ve used every single tip I recommend here myself to see 500% to 1000% speed improvements on my own WordPress blogs. I guarantee that just by following a few of these suggestions, you can see improvements of 200% – 500%.

Interested?

Well sit down, grab a few cups of coffee and get read to turbo boost your website speeds.

Why should you speed up WordPress?

Quick loading webpage are not only user friendly, they are vital for maximizing your search engine rankings, improving user behavior analytics (time on site, bounce rate, page views), and increasing your conversions…and earnings.

There’s a lot of studies out there that show the slower your site pages load, the less likely people will convert. For sites designed to convert readers into buyers, improving page load speeds is absolutely vital to do. Akaimai did a study that found 47 percent of people expect webpages to load in less than 2 seconds and 40 percent of people will LEAVE a webpage if the page load time is more than three seconds.

Gomez did a study in 2010 about buying habits and found in a 1,5000 interview with consumers that a) increasing the loading time from 2 to 10 seconds increased page abandonment by 38% and during peak traffic periods, 78% of consumers abandoned the site for a competitor given a page loading delay.

Aberdeen Group did a study that found even a 1 second delay in page loading time resulted in 7% less conversions with an 11% reduction in page-views.

And Amazon’s famous study found that a .1 second  (1/10 second) increase in page loading costs the company a 1% reduction in sales.

Given these studies and the mounting evidence of how important page load speeds are to eCommerce, the take away is that a fast website can mean more money for you.

Essentially, a slow website will affect the following:

  • Conversions
  • Sales
  • Customer Satisfaction / Brand Image
  • User Experience Analytics (Bounce, Pageviews, Time on Site)
  • Search Ranking in Google

Even for sites that make money via CPC advertising (Adsense, Media.net) or Affiliate Marketing will benefit  by improving page load times.

Just having a faster loading site means that a certain percentage of visitors who might of otherwise left your site, will STAY on the page long enough to see the ads and possible click on the ads or buy a product.

How to test the loading time of your website?

The first thing you should do is to test the loading time of your website. You need to see how fast your blog loads pages and you need a benchmark to compare your improvements to (you know, to make sure your improvements are actually like improvements).

This is easy, given the number of pretty awesome tools out there.

I recommend the following:

  1. GTMetrix.com
  2. WebPageTest.org
  3. Tools.Pingdom.com
  4. PageSpeed Insights

While running your site through all 4 of these can provide a nice overview, it’s best to stick with 1 or 2.

Each of these tools offers something unique. I personally like GTMetrix in part due to it’s very easy-to-read presentation of the information. WebPageTest.org is probably the most comprehensive tool that gives a very detailed breakdown of your sites speed and where the slow downs are happening. You can use that information to really get the fine details about how fast your site pages are loading.

Note that all these tools give you a Page Speed Score of sorts.

Know that you can NEVER really achieve a perfect score and some of the ‘suggestions’ offered by the likes of GTMetrix and PageSpeed Insights by Google are not practical to achieve or outright impossible to do.

The most important stat to take away is the actual PAGE LOADING TIME, not necessary the score.

How to Read the Page Load Tools

Most of the tools will present the following information to you:

  • A Page Speed Score / Rank
  • HTTP Requests.
  • Load time.
  • Page size.

What These Mean…

  • Score: The score is the overall calculation on how optimized your site is for page speed. Higher is better, but each speed testing website has it’s own algorithm for scoring and the same website may rank ‘differently on different speed testing sites.
  • Page Size: the size of your page. Bigger pages mean more data needs to be sent over the network. Bigger pages = slower page loads. The bigger the page, the more difficult it is to get a faster page load speed. It’s possible to load big pages fast, but you’ll have to do a lot more optimizations on this list to achieve that. Reducing the page size will reduce the page load time. Page size is impacted by the number of images, size of images, amount of text on page, the number of fonts used, bloated code, etc.
  • HTTP Requests: the number of requests between the client (your browser) and the host (your web server hosting your site). The more HTTP requests made by your page, the slower the loading. Reducing the requests, therefore, will reduce the page load time. HTTP requests can be reduced through optimization tricks such as reducing plugins, combining JS and CSS files, inline java-script, utilizing CSS sprites.
  • Load Time: the time required to load your page. This is basically how long it takes for your entire page to load, the measurement that tells you the real world ‘performance’ of your site — that is, how people perceive your website.

How to Accurately Measure Your Website Speed

If you run your site on any of these tools several times, you’ll notice different page load times. This is because there are a lot of variables going on that will vary from second to second, affecting your test.

If you use the tools right though, you can get a pretty good baseline measurement.

1. Look at the Page Load Time, Not the Score

Again, don’t freak out if GTXMetrix gives your site 80% or WebPageTest.org gives you a B, not an A+. These sites have a pre-set algorithm that puts weight on certain factors. Some of these factors may or may not be in your control and may or may not contribute heavily to your page load speeds.

It’s better to look at your PAGE speed number.

The actual speed will vary greatly on the SIZE of your webpage tested and the TYPE of site (dynamic or static).

Webpages that are a fraction of a megabyte will, because there’s not that much ‘data’, will load much faster than a larger webpage packed with images, widgets, links, and such.

Static html pages will load many time faster than a dynamic, code-driven page because the host serving that page must ‘put together’ that page piece by piece from a database through program language calls (Php, Pearl, Ruby, etc).

2. Test the Homegpage AND Your Longest Content Page

Everyone loves to test the ‘homepage’ domain. But this can often give you an inaccurate look at how fast your site is really loading for the visitors. Most often, your readers will likely be loading a PAGE on your site, coming in from the Search Engines, Facebook, or some other share.

To get a good idea how your actual post content is loading, I recommend taking your biggest post or most multimedia-packed post and using this as the page speed test for your posts. For example. I often run my test on my biggest posts, some of which are 8000 – 13,000 words long and full of links and images. If I can improve the page load speed for those worst case scenarios, I know the average page loads accross my site for regular sized posts (about 2000 words), will be drastically improved.

3. Test the Same Page 5 – 10 Times and take the ‘average’ as the final result. 

For best results, you should take 5 to 10 measurements FOR THE SAME PAGE. Since every test will give a slightly different score (and sometimes, a drastically different one), the only way you can get a good idea is to take multiple scores and average them out.

Here’s an example of me running the same site (authorityincome.com) on gtmextrix on two different hosting accounts: bluehost and siteground.

I ran the test 9 times on bluehost baby account (mid-tier) and 9 times on siteground startup hosting (lowest tier) and took the average loads. Here’s a screenshot of ONE of my 18 tests.

 

2

Here’s the table with the full result.

Testing Page Speed (Comparing BlueHost vs SiteGround hosting)

BlueHost1.21.7.8.91.8.7.8.91.8AVERAGE: 1.177s
SiteGround.72.22.7.71.5.71.72.2.6AVERAGE: 1.44s

I then took the average values. Bluehost came out ahead here. But I note that since I was using the cheapest Siteground hosting, there were some performance options not offered in my package which might have made the difference, such as some extra caching features not offered on the cheapest. I’m not sure what BlueHost offers (they don’t give the specifics), but perhaps the caching is included by default, even in the cheapest plan.

The point of this demonstration, besides trying ascertaining which hosting company is faster, is to show you HOW to accurately measure your average page load speed. If you look at my chart, you’ll notice some tests vary by 100% or more. This is why taking just a single result, or a couple results, can give you an inaccurate result. For best results, you’ll want to take many — 10 or so.

How Many Seconds is Ideal?

The less the better, but there’s a law of diminishing returns.

In short, the answer is as fast as  you can reasonably can, within budget.

If you are just creating a personal blog or small niche site that’s not ranking in huge traffic or making serious money, then doing a few things to improve your speed might be good enough.

If you are running an eCommerce store that’s selling thousands of dollars a day, then you might want to do everything possible to squeeze out an extra millisecond of speed because that might result in more sales.

In general, the magic number that research seems to show that does NOT seem to hinder conversions and customer behavior negatively is about 2 seconds.

Ensuring your website page loads at about 2 seconds or less is a good number to aim for. Anything less than 2 seconds seems to provide diminishing returns in that, you don’t see too many lost sales when you go lower than this…but above 2 seconds you start to see more and more negative impacts.

However.

It’s not always possible to get a specific web page loading at under 1 second, or even at 2 seconds.

For example, if you have  12,000 word post with 50 images, 50 amazon links, fancy graphics that comes out to 2 megs in size and this is served on a highly customizable (read bloated) WordPress theme on cheap shared hosting, you probably won’t be able to able to get that page load speed down to 2 seconds. If you to to extreme lengths, it might be possible to do so, but the average, non-technical budget-conscious person won’t be able to.

To keep your expectations about how fast you can make your page load times firmly grounded in reality of your budget.

How to Optimize the Sh*t Out of Your WordPress for Blazing Speed Loads

speed up wordpress blog

From start to finish, I walk you through turbo boosting your WordPress blog, from the most basic, easy, and free things you can do, to the more complex, server fiddling tricks to squeeze out more performance.

How fast you make your blog depends a lot on your hosting service, the type of WordPress theme you use, and your willingness to spend a bit of extra money on some beneficial speed-boosting services. However, for those broke bloggers who don’t want to spend a dime, you can STILL see some huge speed improvements.

1. Install a Cache Plugin (Preferably, the Best)

wp-rocket-v2-8-5-cache-plugin-for-wordpress

The single easiest thing you can do to improve your WordPress page load speeds dramatically is to install a cache plugin.

Once you install a Cache plugin, there are some additional things you can do with that cache, in the advanced options, to optimize and improve your page load times even more.

But you first need the cache plugin.

A lot of the suggestions on this list can be covered right away by installing a Cache plugin. And some of the suggestions offered on this list can be achieved by manipulating some of the advanced cache plugin settings.

What Is Caching and Why Does It Work

Caching is both a simple…and complex topic.

The basic concept is pretty simple… and I’ll try to explain it in a way that makes sense.

Caching works like this. Every time a visitor comes to your website, the server hosting your website is given “requests” that it must fulfill. Think of your sever a person in a store that given an order, most run around and retrieve those items in a specific order, with each item located in a different part of a storage room, with some items close and some items far.

The server works the same way. Every request (retrieve information in the database, execute the PHP commands, follow the CSS style-sheet to display the visual design) is an ‘order’ that requires the server, the ‘man behind the counter’ to do retrieve something specific.

Some of those things retrieved are simple and some of those things are more complex and must be retrieved then combined with different items (which also must be retrieved) in a specific order. Each thing done by the server takes processing power and time to achieve.

Caching basically tries to minimize the amount of ‘work’ the server..or in our simplistic terms, the ‘man behind the counter’ has to do.

The idea is that for certain things that are repeated over and over, it’s possible to make a ‘copy’ of that information and store it — either on the server hosting the information or on the visitor’s computer.

So say you go to the man behind the counter and ‘order’ a coffee. If we are talking about information that is NOT cached, then the equivalent here is that man has to make the coffee from scratch, which includes:

  • retrieving the beans
  • putting the beans into a grinder
  • grinding the beans
  • removing the ground coffee and putting it into the espresso machine
  • making the espresso
  • foaming the milk
  • combining the espresso and milk into the final cappuccino product
  • serving the cappuccino to the customer

Now, if the information is ‘cached in some way, the equivalent is to serve the customer a pre-made cappuccino which may include:

  • retrieving the pre-made cappuccino
  • serving the cappuccino to the customer

Do you see how much faster the ‘customer’ can get that cappuccino if it’s pre-made?

The same thing maps over to how caching works. That information, once stored in a cache, can be accessed rapidly once requested again, rather than having to execute a string of commands to reproduce the same thing.

Probably the most basic type of caching is page caching. When you go to a website and browser caching is enabled (by say a wordpress cache plugin), a static version of the page (i.e. the HTML version of the page that’s been generated by the PHP code retrieving the information from the server’s database) is stored in the reader’s computer’s browser cache for a period of time.

The HTML can be stored, the images can be stored, the CSS style-sheet can be stored. When that person comes back to the same website/page, the static version of the website already is ‘there’ on the person’s browser and is rapidly retrieved and displayed. This saves the server from having to retrieve that same information and regenerate the webpage to show the user.

I don’t want to get too technical here, but instead of several seconds of server work, that page can be displayed in a fraction of a second, since it already ‘exists’ and does not need to be put together from scratch.

By installing ANY cache plugin, provided you don’t have one installed already, you can increase your page load speeds right away, with no effort or technical nohow!

What’s the Best Cache Plugin

There’s a pretty big market right now for cache plugins, both free ones and now premium ones.

The Paid (Best) Cache Plugin Option

wp-rocket-logo

Hands down, the premium WP Rocket is the best. You can read my detailed WP Rocket review, but if you want the best page load speeds possible and you don’t mind spending money on it, then WP Rocket is the fastest Cache plugin. I highly recommend you buy it — the money is worth what you get.

I’m not getting paid to promote this product either (there is no affiliate program). But I recommend it because it’s a) clearly the fastest cache plugin and b) the simplest to use, and c) using it automatically hits many of these points on this list automatically (or with easy fiddling), saving you from having to do so manually or with a separate plugin. And, I use and abuse WP Rocket myself on every site I own.

Another interesting option is CometCache which is, from the research I’ve done on it, seems to be the second fastest plugin of them all and the fastest FREE plugin (there’s a free lite version and a pro version).

I have not tried CometCache out, but I’m thinking of giving it a spin and buying it on a discount for the test.

I’m quite happy with WP Rocket right now, but I dislike the high cost and yearly renewal fees ($199 per year for unlimited domains and $99 per year after this). I like how CometCache charges you once and you get lifetime updates. WP Rocket has a few more features like Lazy Load, Database Optimization, Varnish Support, CloudFlare Support that it looks like CometCache does not yet have though. I’ll take a look at it when my WP Rocket subscription runs out though, and consider. If CometCache adds those features, I may well switch to ‘save money’ as it is, provided it runs about as fast as WP Rocket.

Free Cache Plugin Options

Because I don’t want you to be forced into buying a product just to speed you your blog, you can get by fine with a free cache plugin, of which there are a handful of good options.

You’ll see plenty of performance benefit for NO money at all with these plugins and they are superior by far to NOT having one installed. The paid recommendation still offers the most convenience (WP Rocket does a lot of optimizations by default that these free options don’t, forcing you to install more plugins) and ease of use, but the free options will improve your speeds dramatically too.

  • W3 Cache — the best free plugin
  • WP Supercache – another free plugin that, for some people, performs better than W3 Cache. Sometimes W3 cache causes conflicts with other plugins. In this case, Supercache might work better
  • CometCache (the free version may be the fastest free plugin)

2. Choose the Fastest Webhosting You Can Afford

is-cheap-web-hosting-any-good

This is another choice that can dramatically boost your speeds…or hinder them. Choosing a fast webhost is something you can entirely control.

For many of you, budget is of highest concern which means you can only do the best..at the price you can afford.

Hosting Options

Hosting comes down to price. Pay less money, get less hosting resources and potentially slower website loading speeds, especially under heavy traffic & resource usage. If you have slow webhosting, this may very well be a bottleneck that limits your potential WordPress page load speeds.

You can see improvements by following many of my recommendations on this list (such as installing a Cache plugin), but ultimately, the server will limit your page load speeds.

For small blogs with limited traffic, you might not notice that much of a performance ‘hit’. But if you start to get real traffic (hundreds or thousands of visitors per day), you may find your blog page loads increase significantly.

Shared Hosting

shared-server

The typical ‘cheap’ hosting available.

Shared hosting is exactly that: you share server resources (computer) with many other people.

Because many people share the same resources, the hosting is offered cheap, usually between 3 to 10 dollars per month. Most shared hosting companies advertise their hosting service as ‘unlimited resources’.

However, your ‘unlimited’ resources are in fact very limited if your site/sites start taking more than their fair share. If this happens, your sites will be shut down and you kicked off the server right away.

Also not that because you are sharing the site with so many other people, your sites won’t be allocated the full resources and will thus your website speed may be limited by the server.

Moving from a shared server to a faster server situation may be one of the best things you can do to immediately improve your website speed without doing anything else.

Fasted Shared Hosting

For pure speed, I’ve done some research as to what other bloggers say the fastest ‘cheap shared hosting’ companies are. Here’s what’s claimed (I’ve put in my affiliate link here, but feel free to strip it out if you wish).

The most popular hosting companies are Buehost and Hostgator by far. I personally have a BlueHost and a Hostgator account. I also have a SiteGround account (the host AuthorityIncome is currently on) and will be picking up a few of the others (A2Hosting) and (WebHosting) for some more IP diversity.  Overall, I’ve found that Hostgator and BlueHost tend to be the cheapest hosts if you pick them up during a sale. Speeds are pretty decent, unless your site starts to get several thousand visitors a day, at which point you have serious problems.

So unlike some of these bloggers who’ve probably just tossed out the best hosting companies with an Affiliate program, I actually have accounts with a good number of these and USE them for some of my websites.

I’ve never personally tested or used:

  • A2hosting
  • Web Hosting Hub
  • Inmostion
  • JustHost

However, I will be trying out these hosts shortly as part of an experiment.

Note, I’m currently working on an article that actually will test the top 10 best hosting companies to see how fast they really are for 1) a decent sized blog with a premium theme and no traffic and 2) a medium sized blog that gets serious traffic (15,000 visitors a day). It’s one thing to put up a site with no traffic and get a speed test. It’s another thing testing a site that’s getting hammered with hundreds of visitors every ten minutes. This test takes time and requires me to sign up to 10 different hosting accounts as well (I have subscribed to about 5 of the hosts on that list but I’ll need to temporary subscribe to the other 5). I hope to have this article done in a few weeks or a month.

VPS Hosting

vps-hosting-pakistan

One step up from the shared hosting is the so called VPS Hosting. This is still shared hosting, but just with far less people. Rather than hundreds of people sharing the same server, you may have only ten or fifteen people. VPS’s are set up so you have more control over your allotted resources and can make more drastic configuration changes — changes that can improve your website speed. The server is basically split into multiple virtual severs (i.e. the VPS) via a software configuration. Because of this, you essentially get full server configuration power (root access) for your server, something you do not get with shared hosting.

If you are on shared hosting, consider moving up to an affordable VPS option (anywhere from 20 to 50 bucks a month). You’ll improve your page load speeds significantly over shared hosting, especially when your resources are taxed by many visitors at once.

Cloud Hosting

This is another sort of hosting. It typically pay for what you use and the advantage is that your resources can scale with your needs. Many of the biggest websites in the world use Cloud Hosting. In the right situation, Cloud Hosting can be the best. For the average blogger or internet marketer, Cloud Hosting is probably not idea. Big websites and big businesses benefit the most.

Dedicate Server

For maximum speed for small, medium, to large websites, Dedicated Servers are the way to go. This is what I do for my own hosting, and what I’ve been doing for the past four years. I had so many sites and a few sites using so many resources, I was kicked off of hostgator’s shared hosting (re-seller plain) twice, before moving to a VPS, which proved to be too slow even. Finally, I graduated to a dedicated server, where I’ve been since (though with multiple upgrades to faster servers).

You can achieve the maximum website speeds possible (without being limited by the server in regards to your page loading speeds) by using a dedicated server as your ‘host’. Even more, if you have a dedicated server, you can adjust some of the settings to really give you substantial speed boosts. I discuss how to do so later in this article as it’s a more advanced topic.

3) Use a Fast WordPress Theme / Framework

m-faster

The speed of your WordPress theme can make or break your site speed. Bloated ‘do everything themes’ can reduce your page speeds to a crawl while a well-coded, lightweight theme can significantly increase your page load speeds.

In general, the more complex a theme, the slower it will load. The more basic a theme, the faster your blog pages will load. Then there’s a whole raft of badly coded themes that will load run slow no matter what sort of optimizations you do. Using one of these themes, even if you use the fastest server and implement every one of my suggestions on this page, will drag your page load speeds down; it’s like putting winter chains on a sports car’s tires: despite the car’s power, it’s still going to be slowed down.

The best thing you can do here is to choose a WordPress Theme or framework that’s optimized for speed. Unfortunately, many of the premium themes out there are not coded for speed. And some of the premium multi-purpose themes that offer a lot of flexibility will be slow due to all those extra bloat and features that make it a multi-purpose theme.

A simple theme that’s specialized for one purpose will always load faster than a complex multi-purpose theme.

That’s not to say that some of the popular multi-purpose themes are not well coded and won’t load fast, but they will never beat a more simplistic theme.

Fast Multi Purpose Themes

Well coded multi-purpose themes that will load fairly fast, given the right optimizations (such as using a cache plugin)

Note that while these themes do offer a lot of flexibility and are fairly fast, they will never be as fast as a non-multi-purpose theme. If achieving the fastest page loads are you primary goal, don’t use one of those themes (these multi-purpose themes offer custom layouts through shortcodes which slow down the site).

My experience with these themes (I own all three) is that you can squeeze out 1-2 seconds for large, media-heavy pages by following all of these tips on this page. Without these optimizations, your page load speeds might be somewhere between 3 to 12 seconds for heavy content posts and between 2-4 seconds for smaller pages. X Theme seems to be the fastest while Avada is the slowest. Divi is in the middle.

Fastest WordPress Themes 

If you want pure speed, look at the following:

  • MyThemeShop Themes (coded specifically to be blazing fast)
  • Genesis Framework + Themes (a WordPress framework that’s coded for speed)

Use a theme by either one of these, and you can get 1-2 second page loads even without doing many, if any, optimizations at all. Optimize your blog and server for speed, and you can get page loads under 1 second — even large, media heavy blog posts!

4) Use the Latest Version Theme Version

This is a pretty obvious tip, but it’s easy to forget about updating your theme. Quite often, active developers make code improvements to their themes, resulting in faster loading times. So it’s always a good idea to keep your Theme updated to the latest version, especially for the big multi-purpose themes.

For example, Avada 4 made significant speed improvements over Avada 3. Avada 5, recently released, is faster than Avada 4.

5) Use the Latest Version of WordPress

wp4-6

One simple method of improving your page loads times for your WordPress blog is to use the most recent version of WordPress. Typically, you will see only minor speed improvements between the same major WordPress versions (i.e. 4.1 vs 4.3). But if you have an outdated install between major version, moving up from an older major version to a new major version (say 2.x to 3.x or 3.x to 4.x), will see you some significant speed improvements.

Also note that newer versions are far more secure with security holes patched, so it’s important to always be running the latest version anyways.

6) Optimize your WordPress Settings for Speed

You can manipulate some of the basic wordpress settings to improve your page load speeds. Since these are basic modifications, ANYONE who uses wordpress can adjust these to see some speed benefits. These are changes EVERYONE can do!

These ‘minor’ adjustments, taken together, may increase your blog speed and individual page load speeds quite noticeably.

1. Show Excerpts on Homepage, Not Full Posts: If you are showing FULL posts on your homepage, you are slowing down your homepage loading speeds. Choose to show excepts instead. The smaller the excerpts (under 50 words is good), the better.

2. Disable all ping-backs and trackbacks: Disabling all ping backs and trackbacks can speed up your blog. A few of these are not an issue, but if you’ve got a large blog with many pages, these can add up and together, can slow your site down. As a matter of principal, disable them all.

3. Delete spam comments: If your site has a lot of spam comments, deleting them can speed up your database and your site. I recommend using AKISMET to prevent spam from building up.

4. Consider using pagination for homepage, if theme offers such: Some themes offer you the ability to show a number of homepage posts in pages. This reduces the amount of content that needs to be loaded right away and can speed up your site. This feature depends entirely on the WordPress Them you are using.

5. Reduce number of posts / categories shown on homepage & posts: You can see some minor speed gains by reducing the number of posts, categories, and widgets shown on your homepage. The less to show, the faster your site can load. Simple.

6. Remove unnecessary widgets: Sidebar and footer widgets might be fun to tinker with, but less is more speed. Don’t fill your sidebar with extra ‘stuff’ — it will slow your site down. I recommend only having 2-4 widgets on the sidebar at most. Any more than 4 widgets, especially if they are filled with media, will drag your site speed down. Consider even using a FULL page layout design for your posts/pages to avoid using the sidebar at all. This will improve your speed will giving particular focus to the content on your page.

7. Remove sharing widgets: Social sharing plugins are popular. They are also resource intensive. If you have multiple social sharing widgets per page, these can really slow down your site. Try to use only a single one OR a built-in social sharing widget that comes as part of your theme. Built-in Social Sharing Buttons are much less resource intensive than Social Buttons added from a plugin.

8. Put Analytics Code into Header / Footer: Your analytics code is static code and does not need to be added as a plugin. Some themes allow you to put in tracking code into specific parts of the theme (such as header or in footer). If your theme doesn’t, you can manually insert the code into the footer or header of your theme without difficulty.

9. Remove extra plugins (see next section)

This saves on unnecessary plugin bloat.

7) Optimize Your Plugin Usage

WordPress is an ecosystem defined by its plugins. Because plugins are so powerful and can offer extra functionality, it’s pretty easy to go overboard by installing a plugin for every fancy you have, but each plugin adds extra bloat to your WordPress blog and may slow down your page loading speeds, sometimes significantly.

One of the biggest factors in slow WordPress blogs are because bloggers use too many plugins (or badly coded plugins).

The difference between a blog with a couple basic plugins and a blog with 10 to 30 plugins may be 2-6 extra seconds in page load speed!

By reducing your plugins, you can make immediate page load improvements, sometimes dramatic ones.

Now, most bloggers need a number of plugins for the functionality they offer. I realize it’s not possible to reduce your plugin usage to only a couple plugins. But you can try to minimize what you do you.

No all plugins are equal. Some won’t cause a problem  with speed while other plugins can be highly resource intensive and significantly weight down your page load times. Other plugins are just badly coded and do stupid things with code that wastes your sever resources, unnecessarily.

To optimize your blog speed, you need to optimize your plugin usage. That is, only use plugins you absolutely need and eliminate the rest.

How to Optimize Plugins for More Blog Speed

I recommend for every blog you have:

  1. Remove inactive plugins
  2. Eliminate extra plugins you can do without
  3. Profile your site to find what plugins are slowing down your site
  4. Replace Slow Plugins with alternative, faster plugins

Following the 1-4 points WILL improve your blog page load speeds and make your blog more ‘zippy’ — even in the backend section.

To make sure your blog is NOT hindered by resource-eating plugins, you should profile how your plugins are affecting your page load speed.

It’s easy with a…special plugin. Yes, another plugin to help you find the slow plugins. The irony is not lost on me.

How to Find Slow Plugins on your Blog?

This is quite simple. Install the free P3 Profiler to see what plugins are taking the bulk of your WordPress loading times. Once you see the plugins that are taking the most time, you can look at either eliminating those plugins, or if you can’t, possible replacing them with faster alternatives.

The rule of thumb here is that IF you can live without the plugin or accomplish the same thing WITHOUT a plugin, do it.

8) Optimize Your Database

A faster loading database means your data can be served up quicker by the server.

Typically, you can optimize by reducing unnecessary WordPress content (spam comments, trashed posts, auto drafts you’ll never use, ping backs). This reduces the size of your database. You can also optimize the database tables so the information can be retrieved faster via database calls.

Both of these can be done with a click through various FREE WordPress plugins. WP-DB Optimizer is probably the best one and the most recommended.

WP Rocket includes a built in database optimizer as well that can be set up to optimize your site regularly. This is what I have and use to keep my database optimized. It also cleans out spam comments, removes auto drafts,

9) Optimize Your Images for Speed

 

Images are the lifeblood of a good blog post. But every image add additional ‘size’ to the post which will slow down how fast that page can be sent from the server to the visitor viewing the page.

While it’s not practical for bloggers to ‘avoid’ putting in images into blog posts to improve page speeds, it is possible (and highly recommended) to reduce the size of those images. Images that take up less memory means that website content can be sent more quickly over the network and thus the page can be loaded faster since there’s less data to retrieve from the server across the network.

You can easily improve your page load times by reducing the size of that page. The two ways are:

  1. saving an image into the best image format for your
  2. reduce the size dimensions of your images
  3. Lossy compress your images

Choosing the Best File Format for Your Post Images

JPG, PNG, GIF…these are the basic image formats that make up most of the images store online. There are, of course other image formats such as RAW, TIF, but outside of the specific need to showcase high quality images, these formats are not regularly uses on blogs.

The right format depends on what type of image, the function of that image, and how much quality you can stand to lose.

PNG vs JPG VS GIF

In general, png offers higher quality than jpg, but results in bigger file sizes which means longer loads. If quality is absolutely essential, png is the best choice. For SPEED, jpg is the better choice. Most images you’ll insert into your blog posts, should be jpg.

The good thing about jpg is you can adjust (with a proper photo editor) the quality to compression ratio, so you can fine tune your images to get the best compromise between image size and quality.

GIF format is limited to only 256-color’s. This means they are the smallest size, but also the lowest quality. For web-design elements like logos, buttons, page elements, GIF is the perfect format. For pictures, not so much.

The takeaway here is that for most images you use in your blog posts, you should opt for JPG with about 50-60 percent quality for the best quality to size ratio. This may sound like a small change, but if you have a 3000 word post with 30 images, this can add up. Switching to JPG from PNG can reduce the size of your ‘post’ data significantly. Switching from 90 percent quality to 50 percent quality with JPG will also significantly reduce the size of each image as well.

How to Reduce Maximum Image Size

Sometimes bloggers upload unnecessarily large photos. So large, in fact, that the full photo dimensions can never be displayed within the post. These images take up more memory and are often reduced in ‘size’ by WordPress to fit the dimensions of the post body. However, the actual size of the image still remains, which requires more resources to send and downsize.

You can use a few plugins to reduce the unnecessarily large image dimensions to fit your theme. Remember, the ‘bigger’ your image, the more memory the image uses and the longer it takes to ‘serve’ that image by the server.

You can use IMsanity to automatically  bulk reduce the size of every image to fit into your theme’s maximum post width.

How to Compress Images

You can easily reduce the size of your images by compressing  them using a compression algorithm. This is dead easy to do using one of the plethora of plugins available.

The best one I’ve found is the Smush.it plugin, which is free to use for the basic features, but offers premium pay for services which add in bulk image optimization, off-site compression (doesn’t use your own server resources), and better compression offerings than the free tier.

Imagify is another all-in-one compression service that does the same thing as Smush.It

And if you simply want a FREE plugin that will bulk compress all your images using your own server to do the job, look at EWWW image optimizer.  I find it much slower than the pay services and the compression algorithm is not as good. but hey, it’s free.

Reducing your image size is something you absolutely need to do, especially if you have an image-heavy site. Doing so is an easy way of improving your page loading speed. If you have not yet optimized your images for speed (compression & size reduction) already, make sure you do!

10) Lazy Load Images, Videos, and Comments

Another optimization trick to help improve page load speeds.

Normally when a blog page is loaded, all the images on that page are loaded with the content before the page is displayed. This can slow down the page loading significantly, especially if the page has many images.

However by only loading your media on demand as the browser scrolls to down to it, you can reduce page load times by NO needing to load those images right as the page loads. For image-heavy posts, this can improve page loading speeds significantly.

You can accomplish this easily by installing a Lazy Load plugin such as BJ Lazy Load or Rocket Lazy Load.

I find BJ Lazy Load the best of the lazy load plugins as it includes the most features to customize how the lazy load works.

You can also use the WP Rocket cache plugin which includes lazy loads built into the plugin. This is the solution I recommend.

11) Use CloudFlare to Speed Up Your Blog

cloudflare

Using CloudFlare with your site offers one of the easiest and dramatic speed improvements you can make on your blog.

For free!

It’s possible to reduce your page load times by 30 to 70 percent by just using Cloudflare and activating all the speed optimizations offered by the service.

If you don’t have CloudFlare activated, do so. You’ll see some real big improvements to your WordPress page load speeds. I use CloudFlare on every single one of my sites.

What is CloudFlare

CloudFlare basically acts as a Content Delivery Network (CDN) where it hosts your static content (stuff that doesn’t change often) like CSS, Scripts. It works a bit differently than other CDN’s though because CloudFlare basically sits between the server and the web as an extra layer; all your data passes through CloudFlare automatically.

Cloudflare specifically caches some images, CSS, and JavaScript. They only cache SOME images, however.

If you have an image heavy blog, you would also benefit from getting a standard CDN such as MaxCDN which is specifically designed to cache IMAGES. I have found that combining CloudFlare and MaxCDN, for example, can offer significant speed boosts over just using one or the other.

I highly recommend you use CloudFlare. It’s FREE to use and incredibly easy to set up.

All you need to do is sign up for the free account, configure the settings, then change your Registrars nameservers to the Cloudflare ones.

Cloudflare automatically routs your traffic through their serves and takes care of the caching for you.

Here’s a test I did on one of my own sites to show you the difference between turnning off CloudFlare and turning it on.

 

CloudFlare Deactivated 

CloudFlare Deactivated

CloudFlare Activated 

CloudFlare Activated

As you can see, a solid 50% increase in speed JUST BY TURNING CLOUDFLARE ON!

 How to Use CloudFlare for Maximum Speed

Assuming you have installed Cloudflare, there are a few settings to adjust which will really improve page load times on your blog.
1) Install the CloudFlare Plugin on your blog…or Use WP Rocket with the CloudFlare options set up within it
2) On Cloudflare under Speed Optimizations, enable the minimization check boxes:
  • CSS
  • HTML
  • JS

Note that these settings can break some of your blog’s visual elements, depending. Your homepage slider, sticky sidebar ads, menu drop downs can sometimes be disabled, especially when you activate the JS minimization.

Be SURE you test your blog to make sure everything is working once you turn on all these. I’ve found that some THEMES can break with some of the settings on. So TEST.

3) Activate Rocket Loader

Cloudflare includes a beta feature called Rocket Loader which you can enable under the Speed Optimizations. Enabling this provides the single biggest page loading speed boast. It basically works by automatically minimizing and concatenating your code on the Cloudflare server.

The results can be pretty significant.

However, this option can often BREAK some features on your site. Stuff like Lazy Loading, Menu drop downs, Feature Post sliders on the homepage, sticky ads in sidebar sometimes stop working, depending on your hosting and your WordPress theme.

So make sure you TEST your blog. If you see weird visual problems, disable this.

4) Enable Aggressive Caching

By default, Cloudflare is conservative with their cashing.  But you can enable aggressive caching which may provide additional performance boosts. You’ll need to test it.

5) Try the Premium Features

Cloudflare is a freemium service. The free service is outstanding and will improve your page loading times. There are NO limits on the main features. But they do offer additional speed boosting services for paying customers that MAY improve your speed.

12) Use a Content Delivery Network (CDN) for Faster Image Loading Speeds

content-delivery-network

CDN’s are all the rage right now.

They do improve your page load speeds, especially if your website is serving a geographically diverse set of readers.

They way a CDN works is pretty simple: all your images, style-sheets, and static content is hosted on a external server, mirrored to many different severs around the world, at key geographic points.

why-use-a-cdn-750x415

When someone connects to your site, the images are sent from the server closest to their geographic region, reducing the load time because the distance between the server and the computer requesting that image is close, geographically.

You might not think that say sending an image from a sever in the US to someone in say Australia takes much time, but there is a slight latency delay caused by the distance between the two points. The delay is a fraction of a second, but it’s there. Serving the same image from a server in Australia to a person in Australia cuts that latency down significantly.

When you have many images this latency caused by geographical distance can add up significantly to the point where you notice slower page loading.

A CDN counters this and ensures your images will load as fast as possible.

Not that just because you have a CDN does not guarantee all your visitors will see maximum image load speeds. If most of your readers are quite close to your server, your readers wont’ see that much of a benefit with faster page loads of your site. But if your readers are far away, they will see improved page load times because the images can load faster, due to being loaded from a server much closer to their location.

There’s a lot of CDN services out there. The most popular by far is MaxCDN. It’s pretty affordable as CDN’s go, it’s fast, and easy as hell to set up. This is the CDN I use on my best money making sites.

CDN’s cost money (about $30 to $60 bucks for the cheapest packages), so most bloggers who manage small websites that don’t make any real money might not want to spring for the cost. But if your website makes money, and you want the best viewing experience for your readers possible — and the fastest page load speeds possible — it’s absolutely worth the cost.

If you are really trying on the budget, consider using Jetpack’s Photon addon, which is a FREE basic CDN. MaxCDN is much faster, and hosts non image elements like CSS and scripts, but free is free and jetpack is free.

13) Minify JS and CSS files

how-to-minify-css-javascript-html-files

Minifying your code simply means reducing the size of your code by removing:

  • new line characters
  • comments
  • block delimiters
  • white space characters

This reduces the size of your code and allows the code to be parsed by the server faster (since there is less to code to sort through). This can improve page load speeds.

You can do Minification manually by hand (no thanks) or dynamically through a plugin. A good wordpress cache plugin should include minification as part of it’s core functionality.

Free Minify Plugins for WordPress:

WP Rocket Includes Minification

14) Enable GZIP compression on your Server

gzip-compression-1

GZIP is a method of file compression to speed up network transfers between a source and a destination. This is a good thing because by reducing the size of the data before sending it over the network, that data can be sent quicker, due to the smaller file size.

GZIP is usually enabled by default on most decent shared hosting, but in the event that it’s not enabled on your hosting or for your site, make sure you move heaven and earth the get it turned on because it WILL MAKE A HUGE DIFFERENCE IN YOUR SITE SPEED.

If you do NOT have GZIP enabled for your website, enabling it will speed up page loading times.

How to Check if GZIP is Enabled on Your Server

Easy. You can use a page loading tool like GTMetrix to check if GZIP is enabled. It will tell on the drop down list of variables it uses to calculate your ‘score.’

How to Enable GZIP

You should first check to see if GZIP is already enabled. If not, then you need to figure out how to enable it on your server.

There are different methods based on server types and configurations.

Some web hosts, for example, automatically have GZIP enabled. Other hosts do not and you will have to contact support and ask them to enable it. If you are running a dedicated server or VPS server, you may need to enable it in the server config. There are tutorials about this you should read.

The easiest method though, if it’s supported, is to enabled GZIP via your .htaccess file.

Simply insert this into the .htaccess file.

<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>

15) Replace PHP with static HTML, when necessary

If you are really keen on trying to optimize every aspect of your blog for killer performance, one trick is to replace some of the unnecessary PHP calls with static HTML.

This will involve you looking at some of your themes’s header and footer code for PHP statements and replacing these with static HTML. If you are afraid of editing basic code, this step might be one you can skip.

Still, the performance benefits can be worth it.

Typically, you can replace anywhere between 1 to 10 of these PHP statements in your theme template. HTML loads about 20 times faster than PHP. This means you basically remove anywhere from 2 to 10 different PHP calls. This can add up to a pretty tangible performance increase.

How to Replace PHP with HTML in your Theme

Honestly, this will take some looking over some code and analyzing it. I don’t recommend this for beginners as if you do something wrong when editing your theme code, you may break your theme. Make sure you BACKUP your theme files first, so worst case you can just recopy your theme (especially the specific theme files you edit) to fix the problem.

The Header

Edit header.php

header.php is where your HEADER code is stored. You will find the PHP commands the call your blog title, description, and possible your stylesheet and other files. These will never change, so if you spot them, you can replace them with static text or a static address.

Every theme will treat this slightly differently and some themes may not give you much to edit. Here’s a sample theme, taken from the header.php, which gives you quite a few things to replace with static html:

<title><?php bloginfo(‘name’); ?><?php bloginfo(‘description’);?></title>
<link rel=”shortcut icon” type=”image/info-ico” href=”<? php bloginfo(‘template_url’); ?>/favicon.jpg” />
<link rel=”stylesheet” type=”text/css” media=”screen” href=”<?php bloginfo(‘stylesheet_url’); ?>“/>
<link rel=”stylesheet” type=”text/css” media=”print” href=”<?php bloginfo(‘template_url’); ?>/print.css” />

In the above example, there are 4 command that can be replaced with static:

<title>Authority Income | The Best Resource for Learning How to Make Money Online, for real</title>
<link rel=”shortcut icon” type=”image/info-ico” href=”images/favicon.jpg” />
<link rel=”stylesheet” type=”text/css” media=”screen” href=”style.css“/>
<link rel=”stylesheet” type=”text/css” media=”print” href=”templates/print.css” />

In the fake example above, I’ve replaced 5 PHP calls with simple static text, reducing 5 calls every single time the page is loaded.

Sidebar Categories / Links

If you have a number of links or categories in the sidebar that almost never change, consider replacing the sidebar widget (which is PHP) as static HTML.

You’ll want to find the sidebar php file, which is usually sidebar.php, but can vary depending on the theme.

Footer

The footer is another usual suspect when it comes to replaceable PHP. Your blog name, footer links, and copyright date may be PHP calls that can be replaced with simple text. Open up your footer.php file (this is the usual file controlling this, though it can vary with some themes).

Other PHP Areas to Look At

Any content on your blog that does not change (Blog Title, Site Description, Footer Links, Footer Description, Sidebar Categories, Sidebar links, etc) that’s called via PHP can be replaced by PHP. So if you are really looking to optimize absolutely everything on your blog, look at these to see if they are generated by PHP calls and replace them with the equivalent HTML

16) Combine Your Images Into Image Sprites

This is a more advanced trick, but it basically involves converting your main static images (such as your background image) into CSS Sprites.

Sprites are basically a combination of a multiple images into one single image; your browser can retrieve a specific image using CSS.

CSS Sprites are beneficial because your server does not need to retrieve individual images and thus incur  a time delay as each image is retrieved from the server. By combining and sending over a single image rather than multiple images, there is no need to retrieve those individual images from the server, thus saving resources (and reducing time).

Think of your website and how many small images you might have:

  • logos
  • icons
  • background images
  • corner images
  • menu items
  • website design elements,
  • etc.

Retrieving any single one of these might be trivial, time-wise, but together they all add up to extra time to retrieve.

Putting them into a single file, a CSS Sprite, saves on that time.

If this sounds complex, it is. But fortunately there are some tools that can automate this for you.

Well-coded themes should have major design elements made as sprites, but there may be some things (background image, extra stuff) that you can turn into sprites to save a bit of page loading time.

17) Use a lightweight social sharing plugin

I’ve suggested this in the actual WordPress settings, but it’s such an important tip that I’ve relisted it.

Social Sharing Buttons eat up a lot of resources. They can significantly reduce your overall page loading times. Most people use a third party social sharing plugin and opt to display those buttons in multiple areas — a floating button, in the sidebar, at the top of a post, at the bottom of the post.

The problem is that these can result in a lot of extra data that needs to be loaded and displayed on every single page load.

For example

  • social share counts loaded in from various social platforms on the web
  • custom button designs loaded from css
  • Java Script used to display fancy buttons (floating buttons for example)
  • Extra sharing features

All these are usually handled by a plugin which takes up a lot of resources!

You can opt to use a very minimal sharing plugin, if you can, and limit the number of share buttons used on your site. Or, for best performance, use a theme that has social share buttons BUILT into the theme.

I personally use Easy Social Share Buttons plugin. It’s quite loaded with features and resource intensive, but it offers built in caching to reduce load times.

18) Load Videos Externally

If you have videos you should NEVER load them from your own server. Upload them them to an external source that specializes in video loading, such as YouTube. I can guarantee if you are loading videos from your own server, you are absolutely tanking your page load speeds unnecessarily.

SO offload all your videos to YouTube or Vimeo.

If you do have external videos embedded into your posts, make sure you use a Lazy Load plugin (or WP Rocket which includes a lazy load for videos built in) so the video is not loaded until the reader scrolls down to the video.

19)  Use Disqus for Comments

disqus-logo-vector-blogger-1-e1455607375251

You can often see a speed increase on comment heavy sites by offloading all your comments to the Disqus comment system, where they will be loaded from the disqus external server rather than from your wordpress server (and requiring your sever resources to load them with every page load).

Note that by default, disqus comments do not load asynchronously (i.e. delayed loading while other elements on your page load). However, you can install the simple plugin Disqus conditional load which will turn Disqus comments asynchronously.  This means your comments will not impact your page speed at all.

20) Add an expires header to static resources

You can manually initiate browser caching of your pages, if you don’t have a cache plugin installed.

Note that this step is completely unnecessary if you have any decent cache plugin such as WP Rocket, W3 Cache, or WP Supercache. A cache plugin should automatically insert the proper expires headers into your blog’s .htaccess file.

If you are NOT using a cache plugin (or not using WordPress), then you can manually add in the expires header code to your .htaccess.

You need to copy and paste the following code in your root .htaccess file:

<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On 
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>

 

One month is the recommended time frame, though you can change it to any other amount.

21) Turn Off Gravatar images

gravatar1-blog

You know that image beside your comment name…and possible your author section? That’s called a Gravatar. If you really want to squeeze out every last of page load optimization out of your blog, you can choose to turn the Gravatar image off. This means one less (very small) image to load on your blog posts.

Realistically, the performance gains will be very small here and not at all noticeable.

But for high traffic websites, the elimination of even such a small image may count for something.

Personally, I like leaving Gravatar images on because makes your site a bit prettier, and it’s nice to see the faces of the people who leave any comments.

Still, I mention it just in case you want to wring every bit of speed increase you can out of your site.

How to Turn Off Gravatars

To turn them off, just go to the ‘Discussion’ section in your settings and make sure there is nothing in the default image for the Gravatar.

22) Prefetch External Domains

It’s possible to ‘prefetch’ domains that you load external resources from right away. This may save on some server requests and add a tiny speed increase.

This is quite similar to regular caching as you are making the browser retrieve the DNS settings before they are actually needed to save on having to make those queries at run time.

You can prefect by adding code to your theme’s header.php file by inserting the code between the <head> </head> tags.

Typically, you will want to prefetch domains that your site/page will regularly load resources like font files, analytics, social share buttons, resource libraries, etc.

Here’s a list with some of the domains you should prefetch, if your site uses these resources.

Twitter

  • twitter.com
  • platform.twitter.com

Facebook

  • connect.facebook.net
  • static.ak.facebook.com
  • s-static.ak.facebook.com
  • fbstatic-a.akamaihd.net

Google Plus

  • apis.google.com
  • ssl.gstatic.com
  • oauth.googleusercontent.com
  • accounts.google.com
  • oauth.googleusercontent.com

Linkedin

  • www.linkedin.com
  • platform.linkedin.com
  • static.licdn.com

Disqus

  • disqus.com
  • go.disqus.com
  • a.disquscdn.com
  • juggler.services.disqus.com
  • referrer.disqus.com
  • subdomain.disqus.com

Google Analytics

  • www.google-analytics.com

Google Libraries

  • ajax.googleapis.com
  • fonts.googleapis.com
  • themes.googleusercontent.com

Google Maps

  • maps.gstatic.com
  • maps.google.com
  • maps.googleapis.com
  • mt0.googleapis.com
  • mt1.googleapis.com

23) Disable Hotlinking

stop-hotlinking-images

Sites can directly load your images into posts, essentially using your site as the image ‘host’, stealing your bandwidth and resources. This can add up, especially if your images are displayed on high traffic sites where every instance your image is pulls the image from your server.

If other sites are hotlinking to your images, your blog will be servicing unnecessary requests for those images and as a result, your overall blog speed may be reduced due to the resource tax caused by the hotlinking.

Fortunately, this is easy to fix either by adding some code to your htaccess file (or, unnecessarily, finding a plugin to do it).

disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?authorityincome.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com/authorityincome.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

24) Use the WP Rocket Plugin

wp-rocket-logo

I’ve already recommended using a cache plugin, but WP Rocket is the best of the bunch and by using it, you can knock a number of the suggestions off from this list:

  • minimization of JS, CSS, and HTML
  • database optimization
  • lazy load for media
  • Expiry Headers
  • prefetch domains (with setup)
  • cloudflare support (with configuration)
  • maxcdn support (with configuration)
  • ability to  use cloudflare + maxCDN at the same time
  • varnish support (with configuration)

While some of the of the free cache plugins offer some of this (especially if you configure the advanced options), WP Rocket makes it easy. It also offers some of those features which the other cache plugins do not have and will require you to install a dedicated plugin or make a change the the HTACCESS file.

Optimize Your WP Rocket Plugin Settings for Maximum Speed

I’ve installed WP Rocket on at least twenty sites by now. I’ve spent many hours playing around with ALL the WP Rocket settings to trick out maximum speed. So I’m a bit of an expert using it and I know what settings tend to give the best speed.

Since this is the ULTIMATE guide to improving your WordPress blog speed, I’m going to give you my favorite settings here for WP  Rocket.

Enable via checkboxes:

Lazy Load (all options)

Files optimization (all options)

Emojis: check

Clear Cache Lifespan: 24 hours

Prefetch DNS requests: put in a list of all the external domains you load resources from

Database: check ALL the buttons, choose the Weekly Frequency option, then click Save & Optimize

CDN:

  • Click Enable Cloudflare tab and save.
  • Set up a CDN if you have one (optional, but this improves speed)

Cloudflare: Create a CloudFlare account and fill out the details to link WP Cache to your CloudFlare account

25) Combine Cloudflare and MaxCDN

cloudflare + maxcdn

One trick I’ve been doing to reduce the MaxCDN bandwidth usage while also improving my speed is to combine Cloudflare with MaxCDN.

This requires the following:

  • WP Rocket (this makes setting up Cloudflare and MaxCDN and linking them to your WordPress and each other, easy)
  • A CloudFlare Account
  • A MaxCDN Account

What to Do

  1. Enable CloudFlare and MaxCDN in WP Rocket (read the support article on WP Rocket’s site)
  2. Adjust MaxCDN’s settings in the MaxCDN dashboard to remove the conflict with CloudFlare. Read how to do it here.
  3. Add the CDN domains (cnd1.yourdomain.com, cdn2.yourdomain.com, etc) to your CloudFlare DNS settings

That’s about it! Once you do all 3, you’ll have MaxCDN, CloudFlare, and WP Rocket all working in harmony, and your blog page load speed swill dramatically increase.

26) Use a Dedicated Server

I’ve already mentioned the benefit of choosing a good (fast) webhost. However, I want to specifically talk about dedicated servers, because moving to a dedicated server will really allow you to boost your WordPress page load speeds.

If you are willing to invest in a dedicated server, you can often significantly increase your speed over what is possible by just using shared hosting (including VPS hosting).

Lower end dedicated server start at about $50, mid-range dedicated servers are about $100-$130, higher end servers are around $200. Of course, you can easily throw down $300 to $700 for a very high end server, though this is unnecessary unless you are breaching millions of visitors per day. At this point, you’ll likely have your own cluster of dedicated servers and a team to manage them or (more likely) you’ll be using a high end cloud hosting service from the likes of Amazon.

When Do You Outgrow Shared Hosting?

Moving to a dedicated server is one of the best investments you can make. While everyone likes to imagine they can run their website empire from that $2-per-month Hostgator hosting they picked up at a Black Friday, the truth is that even if you optimize everything else on this list, your hosting is ultimately  going to be the bottleneck that limits how fast your site loads.

For small sites with minimalist themes, low traffic, and few widgets and plugins, it’s possible to get fast page loads. You can easily, with the right theme and a cache plugin, get a basic blog page to load in under 2 seconds — even under 1 second.

The problem starts when your site starts getting more traffic. While your site may load fast when you get a hundred or two hundred visitors a day to your site, what happens when you get 1000 or 2000 visitors a day?

The resources allocated to your shared hosting start to max out and your speeds drop — if you are lucky. If you are unlucky, hostgator or bluehost suddenly informs you that your site is squeezing too many resources from other people on the server and your site is shut down. At this point, you are forced to migrate your site to a new server on your own and deal with the loss of traffic and the headache of moving the site.

It’s happened to me, multiple times.

The solution of course is to invest in a dedicated server. A server where you have the entire server to yourself. This means your server can handle a lot more traffic without slowing down and your page load speeds will usually be higher than shared hosting speeds.

The real benefit though is that you can optimize the server to really boost your page load speeds.

These optimizations can substantially improve your page load speeds. For example, I’ve been able to take huge pages that took 5 to 10 seconds to load and reduce the page loading times to under 1.5 seconds.

Such optimizations would not be possible on cheap shared hosting.

Dedicated Server Optimizations

If you have a dedicated server, here’s the biggest speed boosts you can do.

1. Use a fast PHP Handler

WordPress is coded in PHP. PHP is an interpreted language that’s ‘handled’ by the server during run time (basically, on the fly). There are different ‘PHP’ handlers you can choose from. These basically are what ‘host’ the PHP interpreter on your server.

There are four options:

  • suPHP (the most secure, but slowest)
  • CGI (the oldest)
  • DSO (the fastest, least resource intensive, and least secure)
  • Fast-CGI (fast, secure, and the most resource intensive)

Most servers default with suPHP because it’s the most secure. If a hacker (or malware) gets control of the PHP processes, they can only control ONE account. However, this also means that suPHP is the slowest.

This means that if you have a dedicated server on the default config or you are using a shared hosting, you are probably using suPHP. If you switch to DSO or Fast-CGI, you can see substantially speed increases in the execution of the PHP code (basically every aspect of WordPress, since it IS written in PHP).

Personally, I recommend Fast CGI because it’s secure and it’s just as fast as DSO. However, you need more resources to run it (faster CPU and lots of RAM). If you don’t have more.

DSO is the fastest and least resource intensive. But it’s not secure. If you are running a SINGLE website from a single dedicated server, then DSO may be a great choice. If you are running a dedicated server with many websites on it, DSO is NOT a good choice due to the complete lack of security. Opt for Fast-CGI.

I know this is venturing on the too technical for the average reader here, but the takeaway here is:

  1. find out (or ask your support) what PHP handler your server is using
  2. if you are using CGI or suPHP, switch to DSO (mod_php) or, if your server has enough RAM, to FastCGI — making this switch WILL improve your page load times on your WordPress site.

2. Use a PHP Accelerator 

Another optimization you can make is to use a so called ‘PHP Accelerator‘. These are basically special caching services installed that ‘cache’ regularly used PHP commands, which are represented in opcode format and stored in a shared memory (the RAM) and executed from there rather than from the slower disk drive. The savings here is that the server does NOT need to parse and compile the source code as it’s already ‘read to go’ and stored in fast memory.

If this is confusing, here’s why this is effective.

  • Your WordPress is written in PHP and is stored on your server
  • When a PHP request is given by WordPress, the PHP Interpreter parses the raw PHP code, compiles that code into a machine-understandable format (opcode), and then that opcode is ultimately carried out by the CPU as an instruction.
  • By caching frequently used PHP commands, the PHP interpreter does not need to be run, the code does not need to be compiled. Rather, the server can simply EXECUTE that opcode command. This saves time.

These are the most popular (and maintained) choices:

  • Alternative PHP Cache (APC)
  • Zend Opcache (comes integrated with PHP 5.5+)
  • XCache
  • Nusphere PhpExpress

The best one right now is probably Zend Opcache in that it’s highly maintained, being part of the default PHP 5.5 build. This means if you have php 5.5, php 5.6, or php 7, you’ll have Zend Opcache already installed, though it might not be set up or activated yet — not unless you request it to be by your server support (or god forbid, you do so yourself).

How to Activate Your PHP Accelerator

This is not something for the brand new blogging newbie. You have to know how to manage a server and install new software upgrades on that server. If you screw something up, you can break your server.

However, IF you have a managed dedicated server (which MOST people who rent a dedicated server WILL have), it’s a simple solution: contact your server management support, ask if you have a PHP accelerator active. If not, request the installation of Zend Opcache.

The PHP Accelerator you can install on your server may be dependent on what type of server you have.

3. Upgrade to PHP 7

PHP (you know, the language that WordPress is written in) is a coding language. As of 2017, there are 7 versions from PHP 1 to the newly released PHP 7.

Most sites are running PHP 5.2 to 5.6.

New versions of PHP add code improvements and, in some cases, speed improvements with the code. Moving from PHP 5.2 to PHP 5.6 may support additional coding features and offer some speed improvements.

PHP 7, however, is significantly faster than PHP 5.x. In fact, tests show that it’s possible to so 50% speed increases with WordPress just by switching to PHP 7.

I’ve recent moved some of my sites from PHP 5.6 to PHP 7 and I can confirm there have been significant speed increases in my blogs. I’ve noted that the blogs are much zippier and pages load faster. So the effect is very much tangible.

However, many WordPress themes and plugins do NOT properly support PHP 7. As such, you’ll need to test your bog with PHP 7 on a case by case basis to make sure it does not break.

Several of my sites, when I tried moving them to PHP, did not load at all (likely a problem with the theme or one of the plugins).

How to Install and Switch to PHP 7.

Your best bet is to contact your server’s support and ask to upgrade. If you manage your server yourself, then you probably know how to upgrade PHP.

You’ll need to go about the switch slowly, however and make sure your sites work with PHP 7.

4. Enable Varnish on Your Server (Server Caching) 

We’ve already discussed different caching methods:

  • WordPress Cache Plugin
  • Page Caching
  • Prefetching
  • Browser Cache
  • CDN (Image + Static Page Caching)
  • CloudFlare Caching
  • PHP Caching
  • Opcode Caching

The final caching method is server caching. Unlike the other methods, server caching caches resources on your server. This can really improve your server speeds and thus your website speed. This has nothing to do, unlike CDN’s, browser caching, prefetching or anything like this. You are NOT hosting your files on another server, you are not telling a browser to store your website files. This caching aims to improve your actual server performance so it can load your resources (and this display your content) faster.

It’s power, but rather difficult to setup.

How to Install Service Cache

This is quite complicated to do.

You’ll want to install Varnish on your server.

And then you’ll need to configure varnish.  This is something that should be done by a server expert.

The easiest way is if you have a managed server — you can contact your support and ask them to install server caching (Varnish).

Then you’ll need to test Varnish to make sure it’s actually working. Again, complex.

It’s a bit of a mission to install and set up Varnish, but once done, the results can be very impressive indeed. You’ll notice a big difference in your overall WordPress blog speed, both when managing the back-end elements and for actual page load speed on the front end.

The Final Word

I’ve given the most comprehensive guide on how to improve & optimize your WordPress for faster page load speeds.

Note that I have done every single one of these recommendations written here, even the complex server ones, and the results have been phenomenal.

I’ve been able to bring page load speeds from 7 to 8 seconds for my biggest pages down to under 1.5 seconds by applying the above tutorial.  And these improvements were done on some of my larger WordPress blogs that get thousands of people per day and have hundreds (even thousands) of posts on them with a lot of plugins and complex themes installed.

It’s one thing to show off 1 second page loads for a simple WordPress theme with a small post while getting no significant traffic hammering the resources at the same time you are measuring the page load performance. It’s another for big sites with traffic.

So this stuff works and I suggest you try to implement as many of my recommendations as possible!

Even if you can’t implement every suggestion, you can still see dramatic speed improvements with just some of the suggestions, should you follow them.

And if you can only do ONE single thing, make sure you install a WordPress cache plugin — and for best results, WP Rocket — and use the free CloudFlare service. These two things will improve your load speeds over anything else I recommend with the least amount of effort on your part.

Leave a Reply