114

Knfrmd

Web Performance Audit of MTN Shop

This comprehensive audit delves into the Core Web Vitals of the MTN Shop Homepage, spotlighting key metrics such as the Largest Contentful Paint (LCP), Total Blocking Time (TBT), and Cumulative Layout Shift (CLS). Through an in-depth analysis, we identify bottlenecks affecting page load speed, interactivity, and visual stability, proposing actionable solutions to significantly enhance user engagement and satisfaction.

MTN Timeline

Overview

MTN Shop is a leading online storefront for one of Nigeria's most prominent telecommunications providers. In this review, we delve deep into the website's performance, usability, and overall user experience. Our aim is to identify potential bottlenecks, areas of improvement, and provide actionable insights that can elevate the site's efficiency and user satisfaction. Join us as we uncover the strengths and areas of opportunity for shop.mtn.ng.

Tools Used

Calibre, Lighthouse, WebPageTest, Google Pagespeed Insights, and Chrome DevTools.

Methodology

For this audit, we mainly used a synthetic testing to evaluate the site's performance across different devices and network conditions. The closest we got to Real User Metrics was Chrome Dev Tools.

Time Period

The audit was conducted on the 9th of October, 2023.

Performance Summary

Desktop

MTN Calibre

Cumulative Layout Shift (CLS)

Using Calibre, we found that the site's CLS score for the Homepage was above 1. This means that the site's layout is shifting a lot, which can be very frustrating for users. For CLS to be considered "good", it should be less than 0.1. Meaning less than 10% of the page's content should be shifting around.

Opportunity

From throttling the network to Slow 4G, we were able to spot the culprits behind the high CLS score. The first culprit is the nav bar.

MTN CLS

After noticing this, we decided to take a look at the < head > tag on the homepage. Taking a look at what gets to the browser, here is what we noticed:

There were several fonts, several scripts above the "Critical CSS." The criticalCSS method is a tricky method. For this to work, different viewports need to be accounted for.

Possible Solutions

A possible solution to get the CLS early on is to use the preload method.

< link rel='preload' href='path_to_critical_css.css' as='style' >

The link rel='preload' method is a way to tell the browser to load the CSS file as soon as possible. This should help with the CLS, providing the stylesheet before the browser gets to render the navigation bar.

MTN CLS2 Above are the screenshots of the causes of Layout Shifts on the homepage.

Largest Contentful Paint (LCP)

On a DSL network, the LCP was recorded at 6.53 seconds. For a good LCP, it should be less than 2.5 seconds. and for a good First Contentful Paint (FCP), it should be less than 1.8 seconds.

Because these two related metrics are so high, we decided to take a look at the network tab in Chrome Dev Tools and also the waterfall chart in WebPageTest as well as the < head > tag to determine what could be slowing things down.

Opportunity

MTN LCP Font

While taking a look at the screenshots in the network tab, we noticed that the loader-1.gif was being displayed longer than it should with the actual desktop hidden behind it. We also noticed several fonts, several scripts are preloaded and executed before the critical assets on the page can be rendered.

Possible Solutions

Resolving the CLS issue should help with the LCP and FCP. In addition to that < head > tag should be cleaned up, as it is quite huge and not arranged in order. Making use of capo.js can help in understanding what the order of the < head > tag should be.

MTN head order

Total Blocking Time (TBT)

The Main Thread was found to be blocked for 4.50 secs. This is a very high TBT. For TBT to be considered 'good' it should be less than 300ms. The Total Blocking Time (TBT) is the amount of time the page is blocked from responding to user input.

Opportunity

Third Party tools and services were found to have a total execution time of 2.56sec. Investigating tools and services that take over 150ms to execute is a good place to start. We also saw two instances of Google Tag Manager being executed.

Possible Solutions

The first thing to do is to investigate the tools and services that are taking over 150ms to execute. Focusing on reducing long tasks and reducing the amount of JavaScript on the page should help with the TBT. Take a look at the screenshot below for more details.

MTN TBT

The second thing to do is to limit the number of Tag Managers to one.