One of my business partners sent me a great link yesterday and I was thinking about it a little tonight.

The post is located here : http://www.stevesouders.com/blog/2010/05/07/wpo-web-performance-optimization/

Steve names a new type of business and this is Web Performance Optimisation (with a nice TLA of WPO!). I wonder if we will see WPO offered as a specific service by people soon? I know we have performance some (more specific) Magento performance optimisation for customers as we have seen demand for that.

Google recently announced that it takes page load times into account now, in delivering search results to customers. Although it expects this new action may inly impact about 1% of all websites, it still highlights a growing need for performance.

And some of the references in the Steve Souder’s article highlight somet interesting statistics. Let me quote :

The major search engines measured how much web site slowdowns hurt their business metrics:

On the faster side, companies from a variety of vertical markets had praise for the benefits gained from improving performance:

I find that pretty interesting, and it means a lot for your websites.

So, how do you start evaluating our own website performance, and how can you improve it?

We typically look at a number of areas of performance, and the utilise some tools/services to try and improve in each area. But I do admit, in our own business we haven’t done enough of this recently.

but here are a few good places to start :

Page weight

There are some great tools out there that analyse your page components, and test how long they take to load. Web server performance can have an impact on this, but often it is large image files, and lots of CSS/javascript that are the culprits.

How do you fix it? Use some great little plugins in the Firefox browser to analyse your pages and make suggestions.

MUST HAVE Firefox plugins for developers and website owners are

Yslow will provide a rating of lots of page elements, and give you links to help pages that explain what the grading means (if you have an ‘F’, you fail!), and what to fix.

Server Load

There are lots of tweaks you can do to a web server, but checking the server load can give you some ideas on how hard it is working.

The simple ‘top’ command on a unix command prompt can give you a lot of information (Google for help), and you can also set up monitoring tools (like Zabbix for instance) that can monitor and alert you on all sorts of performance and system elements.

Some things you can look at when analysing server performance:

  • Server location
    • Is your host slow? Google for reviews!
    • Is it hosted in another country? Distance = delay
    • Is it a shared host, with lots of websites on the same machine?
  • Server specification
    • Does it have low memory?
    • Slow internet connection?
    • Does it have any caching enabled?
    • Does it have fast disk access?
  • Software
    • Do you have recent versions of software? (it’s usually best to have new stable versions)
    • Use a faster webserver if you can (lighttpd, nginx etc)
    • Are you running web server and database server on the same machine?

Server configuration can be a complex area of performance, and you can do any number of things to boost performance including getting right down to recompiling software like the operating system kernel itself to boost throughput.

Start simple, do some research online, and ask people for help!

Caching

There are many ways to enable caching on servers and websites, but the most common are :

Gzip for webservers

Most hosts will allow you to edit the .htaccess file on your webserver to enable compression of html/javascript/css etc. What this effectively does is compresses data, sends it to the customer’s browser which then decompresses it on the fly.

This can result in a BIG decrease in page load times.

PHP Caching

Caching for website code can be great for performance, and give many websites run on PHP code these days, there are a few caching mechanisms around that might help.

The most popular are Xcache, eAccelerator etc. See link for more info here.

MySQL caching

Like PHP, MySQL is the webserver of choice for so many websites, that it deserves its own section!

Improving MySQL cache settings can make a huge difference to your site, especially for database intensive websites like Magento.

See this search for some ideas on what to tweak.

Cool stuff

I also wanted to mention some other neat little apps for testing page load times.

They are

  • Chartbeat
    • This is a neat little tool. Install some simple little javascript tags on your pages and chartbeat shows you in real time how long your customers are waiting for page loads, what page they are on, and whay they are doing on your website.
  • Loadimpact.com
    • This tool can test your webserver performance with an increasing number of customers, so you can measure the improvements that you make.
  • ab
    • No, not a typo. ‘ab’ is an apache benchmark application. It is often installed on a unix server, and can test server response times. For example, the command ‘ab -c 10 -t 60 http://yourdomain.com/yourpage.html’ would test the server response and page load times on your web page with 10 concurrent users for 60 seconds continously. Use this in between changes to help identofy improvements.

‘WPO’ covers a huge range of things. Everything from hardware configuration, to server software and config through to application performance tuning.

I have only hit the tip of the iceberg in this post, but I hope it gives you a few starting points when trying to make your website run that little bit faster.

And, if you want some professional advice you can always contact us here.