-
Notifications
You must be signed in to change notification settings - Fork 630
Description
Expected behavior
Google's Core Web Vitals are now a ranking factor as well as a measure of a good page experience. One of the metrics is Largest Contentful Paint (LCP) which google considers should be less than 2.5 seconds for a good experience.
Actual behavior
Our Tag Rocket app monitors the Web Vitals on BigCommerce stores. We found that they consistently failed on LCP for product, category, brand and home pages. With 75th percentile scores exceeding 3 or even 4 seconds.
This information can also bee seen in a more aggregated way via Page Speed Insights on a store. The origin section is the most accurate representation of user experiences for the whole site.
Steps to reproduce behavior
Use tools like Page Speed Insights or Web Page Test to check the Core Web Vitals scores for certain page types like product, category and home.
Solution
One way to improve LCP is to improve the initial server response time. That is out of the scope for this.
LCP is the time it takes for the main part of the visible page to be completed. An element is designated as the LCP element and a time given for when it is visible. It is often the main image of a page. Note that mobile and desktop views are quite different and so can have different LCP issues.
I used the data gathered by our app to determine the most common slow LCP elements and then made alterations to reduce the time it took for them to show. The main elements were:
- Product pages main image
- Category and Brand pages first product image
- Home pages first carousel image or banner or top most image.
I found that the biggest reason that these images had a poor LCP was because they were lazy loaded. Lazy loading deliberately delays them and causes a larger LCP. Lazy loading should not be applied to images that are visible as the page loads (reference).
I removed the lazy loading from those identified and saw a noticeable improvement in LCP. But not enough to pass.
So I went a step further and preloaded them so that they started to load as soon as the html was read. This got them to pass.
Google's Search Console shows what Google thinks about your Core Web Vitals. For the store I fixed you can see a period where they all became good urls (green). This client accidentally removed our fixes causing a reversal of the improvements, which is an accidental way to confirm it was those changes that improved the score.
I then worked out how to make my changes in a stock Cornerstone theme, and documented what I did in my LCP Quick Fix article.
Baking those changes into Cornerstone may help BigCommerce catch up with Shopify in the Core Web Vitals race.

