Page Speed and SEO

Before we get started here is an audio introduction to this portion of the guide, hope you enjoy!

This is another aspect of SEO that Google has gone on record saying it is an official ranking factor. Most users become annoyed if a site takes 2 or more seconds to load. Not only will a slow page frustrate your visitors, it might deter Googlebot from crawling your website as well. If Googlebot has to wait and wait for a page to load, it might just leave and try again later. With that said, it is imperative that your pages load in 2 seconds or less. This is no easy task, with modern day plugins, frameworks, and widgets it is easy to bog down your website with all sorts of add-ons. Add in high definition video and images and its easy to add lots of size to a page. And when there is a large page, there is usually a slow page.

The goal here is to reduce the amount of load time by any means possible.Since there are so many different types of web frameworks these days, we aren’t going to get too specific in this guide. For example if you are a Magento user you would optimize your website much differently than you would a WordPress or Drupal website.

If you are a WordPress user we wrote a comprehensive guide on website speed for WordPress.

Gzip Compression

This is a very simple tip that is oftentimes overlooked by most SEO’s.

On most websites this is as simple as adding a few lines of code to your .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>

As you can see in this custom script, certain MIME types are excluded such as images, being that you don’t want your server to be the one handling image compression. Don’t worry, we’ll get to images a little later within this section.

Reduce HTTP requests

The less your browser has to ask a server for something, the faster its going to be. Let’s consider this scenario:

Think about a waiter at a restaurant. If you put in an order for a glass of water, most likely they will come right back for it. But what if you put in an order for a grilled chicken breast, french fries, and an scotch on the rocks. That order is goign to take much longer not only because it takes longer to cook but because they have to carry more items back to your table.

If you do a speed test on any website, one of the first things you’ll see is “number of requests.” A request can be almost anything:

A few quick ways to reduce requests is to eliminate any extra fluff in your website such as unnecessary plugins, combining images into sprites, and getting rid of external resources you don’t need.

Faster Hosting

At the very least, if you aren’t sure what you are doing you can just pay for a better hosting plan and that will most likely speed things up. Look for plans that puts your website on an SSD, with more RAM and more processing power. Stay away from shared hosting plans where you might be sharing a network with 100’s of other websites. Here is one website that I know is on shared hosting that has over 300 “neighbors.”

shared web server lots of domains

That means there are 367 websites sharing 1 server. In all actuality there maybe more. Sometimes there are multiple IP’s per server so in this case this number might be multiplied by 2 or more.

At the very least upgrade your website to a VPS where you have a large chunk of a server instead of a tiny piece.

Optimize your images

If you aren’t great with Photoshop, don’t worry there are some options. At the very least, run all of your images through Tinypng before uploading from your server. You can see in this example how an image that was over 50kb was shrunk by 70% to 16kb. Imagine if everyone did this how much faster the web would be.

It isn’t uncommon to find websites that use horrible practices when using images. In addition to compressing your images, make sure you are using the right size. Don’t use an image that is 3000×3000 pixels when a thumbnail size will do.

In addition to Tinypng there are many server side plugins that you can use to do this work for you. The way these plugins work is they basically serve an optimized version of he image instead of the original.

CDN’s

A CDN is an extra service you can add on on top of your existing hosting. We talk about CDN’s a little bit more within our server optimization portion of our guide. In short, a CDN provides a shorter path between your website visitors and the files on your server. Essentially a CDN is a copy of your server cloned in multiple locations throughout the world.

There are many CDN providers out there. Our website for instance uses MaxCDN while many other websites use Amazon or other providers.

My advice to people about CDN’s is this: if you are at he point where you have enough visitors where most of the time there are more than one visitor on your website at any time, it is time to start thinking about a CDN. If however, you only get 3-4 visits every hour a CDN really won’t help that much.

Use Caching

When you visit a website for the first time, you need to load all of that content from the server. When you go back and visit a second time chances are your browser will have a lot of those images and content cached on your website. By leveraging browser caching, you are essentially instructing Google on how you want it to cache the files on your server. Here is an example code snippet that you can add to a Linux / Apache server to enable caching. These values can be changed depending on your needs:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 6 months"
ExpiresByType image/jpeg "access 6 months"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 2 weeks"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 week"
</IfModule>

If you have a website that never changes, the values really should be as long as possible. If your website updates frequently, for instance if the images on your blog changes often then perhaps that section should read “1 week” or even “2 days’ depending on your situation.

Database Optimization

If your website uses a database, chances are its got some extra “fluff” in it. If you’ve got some experience with your database, get in there and start deleting / optimizing. If you don’t find someone that does. If you are a WordPress user there are a number of plugins, my personal favorite is “WP Optimize” you basically run it and it gets rid of anything extra that you don’t need, and optimizes the rest.

Combine Resources

Many site speed guides recommend combining CSS or JavaScript files, but there are many other things you can combine as well such as images (sprites) and much more. By combining resources you load much less content and minimize your HTTP requests.

This is normally a very arduous process but in the end you will be rewarded when you see your site loading zippidy split.

Be Smart About Things

Don’t go wrecking your site with insane plugins that load 5 stylesheets. Always weigh the pro’s and cons of new addons. Always ask the question, “do I really need this” or “can this be done with a few lines of code instead of a plugin?”

As time goes on you’ll learn more about website speed and your site will thank you for it!

Contact Info

900 Linton Blvd, Suite 104
Delray Beach, FL 33444

Phone: 561-526-8457
Toll Free: 855-353-8730
E-mail: info@elite-strategies.com
Fax: 561-526-8707