Earlier today I had the pleasure of presenting with Andy Piggott, Managing Director at Incutio Limited at the E Commerce Expo in Olympia, London. Dyn Inc. and Incutio both have the same obsession in life — making websites faster because we know what it means for the bottom line of a business; improved conversion, more satisfied customers and generally lower operational costs.
Because of time constraints in the talk we had to whiz through some of the points we would have liked to spend more time on, but that’s why this entry exists. We are going to go into more detail about these key points to help make sure your website is taking the steps it needs to become more successful.
All of these things are important, but some are more relevant than others. Some of these things take seconds to do, others take more planning and implementation.Â Ultimately, don’t try to do them all at once, incremental change is good, make one change at a time and a see what impact it has on your business. Please enjoy the session re-cap.
There are two key metrics you want to see improvement on each time you make one of these changes:
1. TTFB – Time To First Byte. This is the measure of how long it takes for your browser to get data back from a web server after you’ve hit go. During this time the browser must ‘locate’ the website (convert name to number) and then ask the address it’s given for the relevant webpage. Â As soon as that web server sends the first bit of data back, we have our TTFB. This is an important metric as browsers will often start showing the user to the page as soon as the first bytes come back.Â This test is the best indicator as to whether you have infrastructure problems (DNS, Hosting).
10 ways to optimize your website and improve conversion:
If your site is slowing down in peak periods or seems sporadically slow, find out why. Test your site for Time To First Byte using www.bytecheck.com. If this is always or consistently over 500m/s, you have infrastructure issues. Are you using a shared hosting service that is overloaded or stretching your servers?Â Most of the world’s top sites (Amazon, Google, etc) will show a TTFB of less than 100m/s. If your TTFB is OK, you will know there are other factors at work.
2. Compress text components using gzip. This is a simple and easy thing to enable and it gives you three benefits:
a. It reduces the size of the data being sent between the server and browser (typically by 75-80%), meaning faster page loads.
b. It reduces the bandwidth you use, saving you money (transit costs money).
c. It means that your server spends less time sending data to a browser so it can deal with far more connections.
You can also test if your site is sending gzipped content from here: http://www.whatsmyip.org/http_compression or just harass your technical folks.
3. Reduce number of http requests
b. Download the object
c. Terminate the connection
We’ve been one of those companies that generates every single request on the fly, but it soon became clear that as our clients grew, that without lots of hardware, things were not going to scale. We took at a look back at all our clients sites and discovered that 80% of our users are not actually interacting or purchasing, they are browsing and with some small exceptions, they all see the same data/page.
We reviewed how we could use this to our advantage taking several steps along the way. In the first instance we started to cache large chunks of page data into memcached, this meant that for most users we didn’t need to visit a database along the way. We then started to think about a customers perception of a site, although items such as images and css were cached, if the customer went back to a page, why did we render it again for them?
Throughout our platform now we allow caching of full pages, both at the system level, so we’re serving virtual static html much of the time and the customers browser caches data for periods of time so that if they revisit a page, it’s instantaneous. This doesn’t just make for an improved experience for them but also reduces our costs.
Google is also like this, they don’t see any reason why a user shouldn’t be able to visit a previously visited page without having to download content again and they encourage the use of expires (http://code.google.com/speed/page-speed/docs/caching.html).
5. Image Optimization
We see sites on a daily basis that are using badly optimized images, or large images scaled down as thumbnails. These sites are massive resource consumers and often offer a poor user experience.Â There are some very simple rules to using the right images in the right place.Â For most logos and computer generated graphics you should be using 8-bit PNGs unless you require animation, when you should be using a GIF. Photographs should usually be saved as JPEGs, and optimized to balance quality and size.
7. Keep Alive
Keep Alive is a server setting that allows your web server to keep a connection to the browser open. Without Keep Alive enabled, a browser must make a connection to, download the content from and then terminate the connection to the web server during each request.Â Setting up and terminating connections takes time and resources, but by enabling Keep Alive, the browser can keep connections open and download several objects over a single connection thereby speeding up the process and consuming less resources in the process.
8. Monitor – Everything!
As a solution provider we monitor our infrastructure endlessly, we pull metrics from a variety of systems to ensure everything is working and look for opportunities to improve performance.
At Incutio, our key tools are RPM from New Relic which monitors our time to produce each page and how that page generation is broken down. We then monitor user experience for users around the globe, to do this we use Catchpoint, they allow us to measure everything about a users experience on a website from different locations around the globe to ensure we are delivering the best performance possible.
Every request starts with a DNS lookup and making that as fast and reliable as possible is paramount to a great user experience. At Incutio we use Dyn Inc. to provide our customers with rock-solid and blazingly fast DNS resolution. Before this we fell into the category most other companies do of using our hosting companies (or domain registrars) DNS. In the worst situations we measured our DNS resolution used to at times take up to 4seconds (4000m/s), twice as long as it should take to be showing a page to a user.
For Incutio, a move to Dyn has meant sub 30m/s DNS lookups across the EU and US with the rest of the world performing at around 50m/s and Dyn is working hard to reduce these numbers further and ensure they have the fastest response time globally.
10. Use a Content Distribution Network (CDN)
CDNs allow us to distribute content through points of presence globally.Â We can use their networks to scale out very quickly often with little or no investment in infrastructure and in the case of Incutio, we have been able to reduce infrastructure as a large proportion of traffic is offloaded to these networks.
We particularly love Dyn’s CDN Manager service that allows us to deliver using different CDNs based on our service requirements. This allows us to control delivery, costs and performance quickly and easily and react to factors outside of our control.
Above all, remember that while your users may only be located within a specific region (or so you think), there is a lot of activity on your site that is from many regions globally (search engine spidering for example) and your site needs to perform for these users as well as it does for your core users.