We've previously taken a look at how to get yourself a blazing fast website, with tips on how to improve page speed. Today however we're going to take a different angle at the same topic by taking a look at website performance monitoring.
Website performance is never static. And a site that follows all of the best practices might not be performing as well as it should. Or maybe it does in the development environment, but once it is released to the world it can't keep up with real world usage.
A lot of things can slow down your website; so how do you ensure that it performs from day one - and keeps performing? You monitor it of course.
To cover the topic, we've gotten help from Alex Meyers, Umbraco Developer at Carbon Six Digital, who has shared his insights with us.
Take it away, Alex!
Establishing a baseline during development
Website performance is critical to all our clients at Carbon Six Digital, and we work hard to simulate and monitor real world performance during development, then we setup monitoring tools to make sure that we maintain great performance in production.
During development we run Lighthouse and PageSpeed Insights to establish a baseline of performance, as perceived by Google, as this is a really strong predictor of how well a page will rank in Google in the future.
However, Lighthouse and PageSpeed Insights only review and give feedback on individual page requests. They don’t give a view as to performance in the real world with multiple users interacting with the site in different ways. One of the most important aspects of performance monitoring is load testing where our team simulate real-life user load to ensure sites meet client’s performance requirements. It tells us how many simultaneous users the website can handle and how sustainable it is at the peak of its user load.
Load testing with k6
We use k6 previously known as Load Impact, as our load testing tool. This allows us to create tests defining the length of time, pages, number of concurrent users and from what part of the world. For example, on an ecommerce website it is critical that product catalogue and product pages can handle high user load, especially around product launches, so we would configure tests that simulate high user load based on our understanding of real world usage based on session data from Google Analytics.
The output of the tests are key performance indicators such as page response times, as well as detailed statistics such as CPU and memory usage. This then gives us and the client confidence that the site can meet their performance requirements.
Website monitoring in production
In production, to monitor website uptime we use Uptime Robot which automatically creates a support ticket, alerting us when the site is down or suffering from poor performance. For cloud hosted sites we use CloudWatch Alarms on AWS and Application Insights on Azure to monitor and alert the support team when resource thresholds are exceeded or instance status checks fail.
Site performance is always important to clients, for some it’s at the forefront of their requirements, while for other clients it only becomes apparent that it’s important when the site fails to meet their unstated expectations. Our approach of performance testing during development and monitoring during production means that the site meets their needs.
That's all, folks!
Developing a website that performs well isn't easy. But knowing is half the battle, as they say, and having proper monitoring will help you know when things go sideways and give you the information needed to fix it.
A big #H5YR! to Alex for sharing his knowledge with us today.