This is guest post by Matthew Horne from DIYWPBlog.com. Matthew gives a detailed analysis of the Income Press blog.
Since working on Pat Flynn’s site the smart passive income blog, I have received a mass of work from people looking to fine tune their sites not through SEO which is typically what people refer to when optimization is mentioned. I specialize in optimization of a different sort. Speed!
I could bet that 95% of websites are not performing as well as they could be and this has a significant impact of how successful the site will be. Let’s be honest, people are impatient, if a site doesn’t load within 3 – 4 seconds at least, you are most certainly going to back click and go to a competitors site.
This is an innate function that we all share, as the modern world became fast, so too did our expectations. For the most part, long gone are the days of 56k dial up when we would patiently wait for a site to load as it was expected to take some time.
Today with broadband speeds averaging 2MB and up to 100MB in some countries it’s not surprising that we demand almost instant access to whatever we wish to view.
What I have noticed over the last year or so is that people generally put optimization in the sense of speed to the back of their mind, expecting that the server will take care of that.
Recently I tested Income Press Blog and found that it is not performing as well as it could be and this report is a rundown of what can and should be improved in order to give the site the best possible chance in an ever increasing and competitive online market.
These numbers are the result of 10 runs throughout a day to work out the averages.
- Page load time: 3.71s
- Total page size: 1.49MB
- Total number of requests: 116
- Page speed Grade 79/100 C
- YSlow Grade 64/100 D
These result are quite typical of almost all sites that I have tested.
Page load of 3.7 seconds may seem reasonably fast but considering the site is on a dedicated server, this would be considered slow. Google says for every 500ms of additional load time you can lose 20% of your traffic.
Amazon looses 1% in revenue for every 0.1s additional load time. Sounds crazy right?
Whatever the results, the fact is across the web, various studies and reports show that a slow loading site is bad for business. If you intend to run a business on shared hosting then I would strongly urge you to reconsider and think about moving to a VPS.
Shared hosting is great for blogs and very small sites with low traffic, but when it comes to making money online it’s just a bad idea. Last month alone I upgraded my VPS 3 times to keep up with traffic and I dare say I will have to do it again soon or even move to a dedicated server.
The good news is that Joey has the power he needs to run his business as he is using a dedicated server. The bad news is in its default state it’s not loading as fast as it could be and looking at the above stats with a load time of 3.7 seconds, Joey could easily be losing half of his potential traffic if not more.
In turn this results in a loss of income and again that is bad for business.
So what can we do to improve this situation and make the IP blog as fast as it could be?
Here’s a live load time test on the IP Blog:
The site I used to test the load time is Pingdom.com. You can test the load time of this blog to see what the speed is on your end. Would appreciate it if you can test it out. Thanks in advance ;-)
Changes we can do to improve incomePRESS.com
– Page size: To start with the page size is simply too big. 1.49mb is pretty big considering what’s on the home page. This is for the home page, which is often a main entry point to a site and should be the most finely tuned page on your site.
The home page should not contain anything that doesn’t need to be there as this would just increase load time and page size.
– Number of requests: The number of requests means the number of different resources, connections and separate pieces of the complete page that needs to be gathered before the page can completely load.
With WordPress this usually means trips to the database. The more trips to the database the longer it will take to load as most WordPress databases use what is called MyISAM which uses table locking.
This basically means the table containing the information that is required is locked until the process is completed.
Why is this bad?
Table locking is bad for tables that need to be accessed on a regular basis such as wp-posts, wp-options, wp-comments among others. As of MySQL 5.5 a database engine called InnoDB will be the default engine, this uses row level locking. Which means that multiple processes can occur in the same table at the same time, just not on that individual row.
Think of a Microsoft Excel database. Imagine each page is one table with, if it has 1000 posts in it and this locks while processing then there is a minor delay for everyone else requesting pages.
So having the right database engine for each table and reducing the number of requests can improve your load times with great effect.
It’s important to note that there is an overall load time and a perceptual load time, perceptual load time is the time it takes to visually load the page and allow the user to interact.
– Enable Gzip Compression: Income Press has 349kb’s of uncompressed data being loaded. Gzip compression is very much the same as zipping a file, compressing it to make it as small as possible while ensuring that the integrity of the content remains intact.
Many shared hosting servers do not allow gzip compression because it uses additional CPU resources and can slow the cluster down. VPS and dedicated servers should not be limited for compression so enabling this can save on bandwidth and increase load times.
– Optimizing Images: This is crucial for any site that is going to use images and Income Press is no different. I can see around 50kb’s of excess image data being load on the home page. This is often due to not enough compression for the images.
Gzip compression will not compress images but images can be compressed to a certain degree without losing visual quality, that’s quality in terms of what the human eye can notice.
Most WordPress themes images are not optimized and this again hinders performance as it’s simply more unnecessary data to load.
– Serve scaled Images: Income Press doesn’t have much of a problem with this but there are still 3 images on the home page that are being resized in the browser, this means the image is too big for the space it is going to occupy.
If the image is going to be 150X150 then you should crop an image at that size and use it.
– Prefer Asynchronous Resources: Asynchronous resources are scripts that load without blocking the page, Facebook and other social media scripts are notorious for this, on income press I can see that Facebooks SDK is blocking the page but a simple modification inspired by the Google Analytics script can solve this problem easily.
– Caching: Income Press doesn’t seem to be fully utilizing caching in an effective way. Caching comes in two main parts. One is to leverage the browser to cache resources locally on your home computer so when you come back to the site you will load up cached resources from your computer and not directly from the server.
I can see about 50 resources that are not taking advantage of this. Another reason you may score low for leveraging browser cache is if the caches expiration is not long enough.
The other major part to caching is setting an expires header of which 80 resources on the home page do not have. This allows the resource to be cacheable, different resources require different types of headers. For resources that do not change like logo’s, favicons, sidebar images, etc., and they can be cached forever.
For dynamic resources we can set an expiration of 1 week, 1 month, 1 year depending on the resource. This affects the number of requests to the server as the user will receive pre-compiled or locally cached data instead of requesting it again from the server.
Caching has no effect of first time visitors unless you have precompiled resources which some plugins like W3 total cache have.
– Server Configuration: The server is often overlooked as being a source for slow loading sites. In my experience default servers are not configured for speed and efficiency. The requirements of WordPress are different for the requirements of say a gaming server. It’s for that reason that the default configuration is set to work with all types of sites and be stable.
I can guarantee that Income Press’s server is using SuPHP (single user PHP) which is a good configuration but I would switch to FCGI (fast CGI) it is a performance driven PHP compiler that has the same security benefits as SuPHP with a key difference, it keeps a persistent session open in the background rather than rather than creating the PHP process each time it is called.
It used less CPU but does use more memory, so if there is enough RAM available this is certainly worth considering.
– Content Delivery Network: Finally you may want to consider using a CDN, this effects users who are far away from your main server. Max CDN is the CDN I would recommend for any small and medium business as they have a pay as you go system so no unexpected bills for you. It is also very easy to set up with W3 total cache lending a helping hand.
The fact that the resources are brought closer to the user also plays an important part, let’s not forget that in many cases information is traveling 100s of 1000s of miles by the time your site has loaded completely.
Once these changes are made I would expect Income Press to load easily under 2 seconds if not less and be able to handle more simultaneous traffic than before.
It will also be significantly smaller in terms of page size as well as a reduction in the number of requests.
Overall if you are serious about your business, optimization should be well and truly a part of that business plan.
Most people place SEO at the forefront of their online business and give little consideration to speed. Fast stable server, good theme and the right configuration can equate to a great business and online experience for you and your users.
If your running shared hosting for a business you will not get the same level of optimization as with VPS and Dedicated so that is something to consider.
Thank you for reading my report and analysis of the Income Press blog. I hope you enjoyed it. Any thoughts or feedback are welcomed and I would greatly appreciate it. I will also answer any questions you might have about optimizing for speed.