Here at Ancestry.com, we have a team dedicated to monitoring, measuring, and helping the company improve the performance of the website. Trying to do this is a very fun and interesting challenge. With a website that has many billions of records and other content (10 petabytes), making it fast is no small task! To illustrate some of the key concepts of performance, let me share a little story with you.
The Performance Painter
Think of a painter and canvas. The painter knows what she wants to paint and dips her brush into a color and starts to paint. Let’s say this took 3 seconds for her to take her brush, dip it into her color, and begin to paint. Those 3 seconds are how long it took to start to see the painting begin. This is the painter’s First Paint time.
Now think of the painter finishing their painting. They’ve got all the trees, clouds, and puppies that the painting will contain, but not signing it or writing anything on the back or putting on any of the finishing touches. Let’s say it took 3 hours for her to have her initial painting done (including First Paint Time). This is the painter’s Page Load time.
Finally, think of the painter now signing the painting, writing a special note on the back, and doing some additional touch ups to the painting to get it ready to deliver to a buyer. Let’s say this took an additional 30 minutes for the painter to do. This is the painter’s Total Download time (3 hours, 30 minutes).
What These Performance Times Mean
A web page on the Internet is just like the painting getting created, except (we hope) much faster than 3 hours! In fact, we’ve found that anything over 3 seconds on a web page starts to feel slow to our customers!
First Paint is when our customers start to see the page get drawn on the monitor. The moment you see any kind of graphic, text, or pixel, this is the first paint time. It’s like the painter first touching their brush to the canvas.
Page load time is when the page is mostly done, although there may be a few things that still need to be processed or shown on the page – like delay load sections of the page brought in via AJAX. It’s like the painter finishing the painting, but not adding all the finishing touches.
Total Download time is when everything on the page is finished and delivered to our customers browser. This includes delay load AJAX sections on the page or anything used to track metrics for the page. This is like the painter adding the finishing touches and signing the painting.
Each of these is important, but our business is especially focused on First Paint and Page Load time so our customers are seeing the things they care about as fast as possible.
How Do We Measure Performance?
Everything we do on the performance team comes down to improving our time in these 3 key areas, with an emphasis on First Paint and Page Load.
Think about yourself as you use websites. Would you like to sit and wait for a web page to load? We feel the same way on the performance team. Pages should load as fast as possible starting with the most important things on the page.
We built our own custom software to go out and hit our most important pages that our customers use on our website. This software runs 24 hours a day, 7 days a week and captures how long our key pages took. We do this measuring from a few different locations as well. It is through this method of capturing performance times and maintaining a history that we can then set goals for improvement.
How Do We Improve?
The simplest way to improve website performance is to first track and measure it and then find areas that don’t meet standards of performance. Typically, we want a page’s first paint to happen in 1.25 seconds or less. We want page load to happen in 2.5 seconds or less and the total download time to happen in 3 seconds or less (but we are more lenient with this time).
If we find a key area isn’t hitting this goal, we ask the question WHY. This involves a lot of performance investigation and questions with owners within the company of the page. Most of the time, we are able to pin point a specific part of the page that needs improving and can schedule work to be done on the page to improve performance.
Lastly, performance is not a one-time fix. As a widely used website, Ancestry.com is continually adding features to the website or modifying existing features to be more rich and satisfying for our customers. As such, the monitoring and improving never ends. Performance really is a feature of the website that must be considered at all times.
About Jeremy Johnson
Jeremy Johnson is a senior manager at Ancestry.com. His primary responsibility is the management and direction of multiple teams, including the External API team. His grandfather, Alf, was a World War I veteran and ran radio wire for communication on the battlefield. He enjoys writing, running, hiking, and especially playing basketball.