Post Syndicated from Davy Jones original http://www.anchor.com.au/blog/2017/03/maximising-site-performance-key-considerations/
Maintaining and managing the ongoing performance of your website or application is an area where ‘not my problem’ can be a recurring sentiment from all stakeholders.
It’s not just a case of getting your shiny new website or application onto the biggest, most highly spec-ed-up dedicated server or cloud instance that money can buy. There are many factors that can influence the performance of your website that you — yes you — need to make friends with.
The relationship between site performance and business outcomes
Websites today have evolved into fully fledged web applications. They started out as simple HTML, but have today evolved into complex, database driven, ‘rich’ multimedia content, requiring buckets of storage and computing power. Your server needs to run complex scripts and processes, and serves up content to visitors from all over the world – because let’s face it, you probably have potential customers everywhere now. It is a truth universally acknowledged, that the performance of your website is directly related to customer experience. Poor site performance will absolutely affect your brand’s reputation, sales revenue and business outcomes negatively, jeopardising your business’ success.
Site performance stakeholders
There is an increasing range of literature around the growing importance of optimising site performance for the best possible customer experience, but who is responsible for owning this? Is it the marketing team, development team, digital agency or your hosting provider? The short answer is that all of the stakeholders can either directly or indirectly impact your site performance.
To explore this shared responsibility in more detail, let’s break it down into five key areas that affect a website’s performance.
5 key site performance considerations
In order to truly appreciate the performance of your website or application, you must take into consideration 5 key areas that affect your website’s ability to run at maximum performance:
- Site Speed
- Reliability and availability
- Code Efficiency
- Development Methodology
1. Site Speed
Site speed is the most critical metric. We all know and have experienced the frustration of a painfully slow website. It’s the main (and sometimes, only) metric that most people would think about when it comes to the performance of a web application.
Here’s some great stats (lifted from http://www.webbymonks.com/page-load-time/infographic.html so take them with a pinch of salt!) to keep in mind:
- More than 83% of people expect a web page to load in 3 seconds or less.
- More than 40% will abandon a web page if it takes more than 3 seconds to load.
- If an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost $2.5 million lost in sales every year.
- Conversion rate increases 74% when page load time improves from 8 to 2 seconds.
- More than 73% of consumers won’t return to a website if it doesn’t load properly on their mobile devices.
But what does it mean for a site to be slow? Well, it usually comes down to these factors:
a. The time it takes for the server to respond to a visitor requesting a page.
b. The time it takes to download all necessary content to display the website.
c. The time it takes for your browser to load and display all the content.
Usually, the hosting provider will be able to offer advice and guidance to improve (a), and your developers would look over (b) and (c), as those points are directly related to the web application.
2. Reliability and availability
Reliability and availability go hand-in-hand.
There’s no point in having a fast website if it’s not *reliably* (or consistently) fast. What do we mean by that?
Well, would you be happy if your website was only fast sometimes? If your Magento retail store is lightning fast when you have 10 concurrent visitors, but slows to a crawl during a sale, then you have serious problems.
Outages (planned or unplanned) are also inevitable, as 100% uptime is a myth. But with clever infrastructure design and an effective testing and deployment process for new code, it is possible to minimise the chance of unplanned downtime effecting your website.
Anchor can provide you with a variety of hosting options to meet your needs and budget. Shared, VPS, dedicated and cloud hosting options are available – we can help you identify the most appropriate option for your needs. Proactive management of your infrastructure and responsive support means your service stays reliable and available.
As an advanced consulting partner with Amazon Web Services (AWS), we can guide customers through the many AWS configurations that will deliver the reliability required. Considerations include utilising multiple availability zones, read-only replicas, automatic backups, and disaster recovery options such as warm standby.
3. Code Efficiency
Let’s talk about efficiency of a codebase, that’s the innards of the application.
The code of an application determines how hard the CPU (the brain of your computer) has to work to process all the things the application wants to be able to do. The more work your application performs, the harder the CPU has to work to keep up.
In short, you want code to be efficient, and not have to do extra, unnecessary work. Here is a quick example:
# Example 1: 2 + 2 = 4
# Example 2: ( ( 1 + 5) / 3 ) * 1 ) + 2 = 4
The end result is the same, but the first example gets straight to the point. It’s much easier to understand and faster to process. Efficient code means the server is able to do more with fewer resources, and it almost always translates to a faster website!
We work with many code efficient partners who create awesome sites that drive conversions. Get in touch if you’re looking for a good developer, we’d be happy to suggest one of our tried and tested partners.
Accurately predicting the spikes in traffic to your website or application is tricky business. Over or under-provisioning of infrastructure can be costly, so ensuring that your build has the potential to scale can help your website or application to optimally perform at all times. Scaling up involves adding more server resources to your existing infrastructure. Scaling out involves adding more nodes. Both have their advantages and disadvantages. If you want to know more, feel free to talk to any member of our sales team to get started.
If you are using a public cloud infrastructure like Amazon Web Services (AWS) there are several ways that scalability can be built into your infrastructure (and web application) from the start. Contact us if you’ve a scalability problem you’d like our help with.
5. Development Methodology / Approach
A commonly used approach to software development nowadays is known as ‘DevOps’.
What is DevOps?
It’s the union of Developers and IT Operations teams working together to achieve a common goal. We’ve got a great run down on Agile, DevOps and Microservices here. DevOps is an approach that seeks to make sure that the pace of change inside the organisation matches, or if possible is ahead of, the pace of change outside.
How can it improve your site’s performance?
DevOps is a way of working, a culture that introduces close collaboration between the disciplines of Software Development and IT Operations in a single workflow. Creating a single, cross-functional team with a shared responsibility for the success of your application, streamlines the processes of creating, testing, scaling and deploying your application. Instead of each team working in silos, cross-functional teams work together, solving problems more efficiently and getting to a stable release faster. Faster releases mean that your website or application gets updates more frequently — so you are faster to fix bugs and introduce new features. Check out this article ‘5 steps to prevent your website getting hacked‘ to understand why frequent updates of your application is important from a security perspective.
So if DevOps has the potential to speed up delivery and improve your site or application performance, why isn’t everyone doing it?
Simply put, any change can be hard. And for a DevOps approach to be effective, each team involved needs to find new ways of working harmoniously with other teams toward a common goal. It’s not just a process change that is needed, toolsets, communication and company culture also need to be addressed.
The Anchor team love putting new tools through their paces. We love to experiment and iterate on our processes in order to find one that works with our customers. We are experienced in working with a variety of teams, and love to challenge ourselves. If you are looking for an operations team to work with your development team, get in touch.
If your site is running slow or you are experiencing downtime, we can run a free hosting check up on your site and highlight the ‘quick wins’ on your site to boost performance.