Friday, January 17, 2014

How to Make WordPress Sites Load 72.7% Faster

How to Make WordPress Sites Load 72.7% Faster

You want to know the secret to a faster WordPress website?

You and everyone else.

But it's not a secret. The problem is that there is a whole lot of misguidance out there that makes it hard for site owners like you and me to identify the solutions that really work.

Let's cut the crap and turn down the hype.

If your house has foundation problems, you don't treat your windows. You fix the foundation. If your car is idling rough, you don't change your tires. You get under the hood and address the engine.

So if your WordPress website is slow, why on earth would you look to the edges first for a solution?

You don't. Well, not if you want a real solution that can nearly double your load speed.

You look to the core

The core of your body is generally defined as the torso minus the appendages (arms, legs and head).

Your WordPress website has a core too. Its "torso" includes hosting, theme and plugins. This is the origin of every page your site serves. Speed and performance are determined here, at the web page's origin, not at the edge where the page is viewed.

Sure, you might also have some appendages on your WordPress website. Your site's "arms and legs" might include nebulous cloud solutions or dispensable content delivery networks. But edge services like these ultimately take their cues from the origin.

Think of it this way:

If you want total body strength, you see the most benefits by increasing the strength of the area in the body where almost all movement originates from: the core. Ripped biceps and pulsating calves are nice, but strength and flexibility in your abs and lower back are essential.

Your website is the same.

If you want supreme performance from your site, then look right to the core and strengthen — or, better said, optimize — the origin of your content.

Here is what an optimized core for a WordPress website includes:

  • Reliable DNS
  • Hosting configured specifically for WordPress with a smart origin caching strategy.
  • A clean theme that is devoid of bloat (and preferably on a framework).
  • A plugin list trimmed of fat.

Let's break down these elements and then I'll show you how easy it is to increase WordPress performance by nearly 75 percent.

Don't ignore DNS (even though you want to)

DNS is an annoying topic that makes little sense to most of us, but it can also determine whether your site sinks or swims.

You don't need to know much about DNS (in fact, you don't even need to know what the letters stand for), but you should know this: it is the first communication made when someone attempts to pull up one of your URLs in a web browser.

If the DNS for your site isn't working, then the browser cannot find your site. If it can't find your site, then it can't find your page. The net result is that while everything else is working perfectly, your site is as good as down.

It would be like putting a letter in the mail with only an addressee name but no address. The letter isn't getting there. Your web page isn't either.

You may have no earthly idea whether you have a DNS problem or not. Find out. Don't live in the dark. Get data.

Run a quick Pingdom test for your site and look at the first object in the waterfall to load, your domain name. Hover over the multi-colored bar representing its load time. The first number is for DNS and it should be fast as a blink. Copyblogger's is 7 milliseconds … even faster than a blink.

The point is this: if you're serious about performance, get serious about DNS.

Go with a top-notch provider like Amazon's Route 53. And if the thought of migrating your DNS alone scares you, get someone like our friends at Fantasktic to help.

Improving your WordPress efficiency by even 10 percent won't matter if your DNS is not reliable.

Get your WordPress hosting and caching right

Once your DNS is squared away, you can turn toward your WordPress install. Start with hosting.

We've said it before and I'll say it again: serious WordPress users need hosting that means business. If you choose generic, shared hosting then you'll get generic, slow performance.

If you are serious about your site and if you don't want it crashing the first time you get a nice stream of traffic, then you need to host it on servers specifically configured for the complexities of hosting WordPress.

You see, WordPress generates pages dynamically. This can mean pulling from theme files, from the database, from image folders and from third-party sites — just to get a single page generated.

The whole process becomes quicker and more reliable when NGINX is involved and when entire pages, or elements of pages, can be saved on the server and loaded pre-generated when called. This enables web pages to be served much faster to more potential users at once.

This latter process is called origin caching. You can see why having a smart origin caching strategy is so important.

When it comes to WordPress, origin caching doesn't get much smarter or more efficient than the team at W3 EDGE and their plugin W3 Total Cache.

The latest Pro release of W3 Total Cache includes fragment caching support for specific theme frameworks (currently only the Genesis framework, as of this article being published). This allows for even more granular caching control and, most important, faster load times like the ones I’m about to illustrate.

When it comes to theme and plugins... clean, clean, clean

Speaking of Genesis, there is a reason why more than 100,000 people use it to power their WordPress websites. Even the best NGINX configuration with the smartest origin caching plan cannot compensate for a bloated theme.

This is the digital web, where ultimately everything we do online is really just the stacking and restacking of 1s and 0s. So everything goes back to code.

Bad code equals a bad site. Period. Whether it's in your theme or in a plugin, bad code will sink your site and there is no magic hosting, caching, "cloud", or CDN pill that will cure it.

Bad code makes your site a ticking time bomb that could explode and crash as soon as your next traffic bump.

This is why you need to choose a clean theme. The Genesis Framework and every single child theme from the StudioPress team are exactly that.

This is also why you need to keep your plugin folder as clean as possible.

Keep only the plugins that you need for essential functionality. And of those, keep only the ones with solid, proven code behind them that are actively supported.

WordPress is a strong piece of software. It can handle 40+ plugins if they are all the right ones. But it only takes one bad apple to spoil the bunch. A single faulty plugin could make your site run 72.7 percent slower, which is the exact opposite of what we're aiming for here.

Let's break it on down...

The stark reality is that improving WordPress performance is more about removing crap from the core than it is about adding band-aids to the edge.

This may involve some investment, of both money and time, plus a few tough decisions.

Generic hosting, cheap themes and running the wrong plugins will sink you. If you insist on any one of these, you aren't serious about performance.

But for those of you who are serious, here is a real-world example of how easy it is to turbocharge a WordPress site.

How to improve WordPress performance by 72.7%

If you are a Synthesis customer, you know Julian Fernandes. Currently stationed in his native Brazil, Julian is one of the most knowledgeable and passionate members of the Synthesis support staff. I asked him to run a few tests for me in preparation for this article. He excitedly obliged.

Here is what Julian did:

He took a domain, julianfernand.es and brought it up on Synthesis with a basic plan, which includes W3 Total Cache Pro and the latest version of WordPress by default. Then he started running Pingdom tests.

His first test was with the Twenty Thirteen theme running:

How to Make WordPress Sites Load 72.7% Faster

His second test replaced the default WordPress theme with the Genesis Framework and the Sixteen Nine theme, which is also included with every Synthesis setup by default.

How to Make WordPress Sites Load 72.7% Faster

Then Julian activated fragment caching from within W3 Total Cache Pro.

How to Make WordPress Sites Load 72.7% Faster

As you can see, with all else equal, just adding the Genesis framework improved the load time from 630 ms to 172 ms. Activating fragment caching on top of that dropped the load time further to 157 ms.

That is a 72.7% increase in speed for WordPress.

And if we had done an initial test on generic non-WordPress hosting, the difference would have been even more drastic.

(For the record, we also tested a random theme from ThemeForest as well as the Woo framework. Each performed well, 334 ms and 347 ms respectively, but not as well Genesis.)

Realize that these tests were not run on a bare bones install. There were actually five posts on the home page, each with featured images. There were even a few widgets, including Simple Social Icons. Yet the speeds were still that fast.

This is what an optimized core can do.

How to optimize your WordPress core today

Now you know what is possible with an optimized core.

Good DNS and hosting alone can get you to sub-second page load speeds. Optimize the core even further with a premium framework, efficient caching and a no-bloat mindset and you're down to eye-blink speeds like 157 milliseconds.

That's why inward, to your site's core, is the first place you should look if you want to improve performance.

More often than not, you will find that you don't need the fancy frills you are so often being sold. They are not the magical performance elixirs they are purported to be. There is a time and place for CDNs and the like, but get your origin optimized first and then let data drive your decisions.

If you want further guidance on that issue in particular, check out this whitepaper we wrote with the W3 EDGE team: "The Truth About WordPress Performance: Why You May Not Need What You’re Being Sold".

And if you want to go right ahead and get moving, then get started at Synthesis, which gives you literally everything outside of DNS that you need for an optimized core:

  • Hosting configurations designed for WordPress.
  • The Genesis framework with Sixteen Nine included.
  • W3 Total Cache Pro with support for fragment caching (if you run Genesis).

Plus it's all ready to go out of the box, with friendly experts like Julian ready to answer questions if you have them.

To start optimizing your core today, sign up with Synthesis.

(And don't forget to consider our new data center in Amsterdam to further optimize your core for your European traffic).