Hello, fellow web perf enthusiast! Contribute to the 2024 edition happening this December. Click.

Web Performance Calendar

The speed geek's favorite time of year
2022 Edition

LCP(FE)

by Tim Vereecke
ABOUT THE AUTHOR
Tim Vereecke

Tim Vereecke (@TimVereecke) loves speeding up websites and likes to understand the technical and business aspects of WebPerf since 15+ years. He is a web performance architect at Akamai and also runs scalemates.com: the largest (and fastest) scale modeling website on the planet.

Largest Contentful Paint (LCP) is one of my favorite KPI’s to focus on when improving user experience.

For technical teams I advise to additionally track LCP(FE), or the Front End Component of LCP.

A very simple formula:

LCP = TTFB + LCP(FE)

This suggestion is applicable for both RUM (Real User Monitoring) as well as Synthetic monitoring.

Background

Back-end teams already have a specific KPI (=TTFB) covering exactly what they are responsible for.

For Front-End teams their key KPI is LCP. However this contains a big portion (=TTFB) which is out of their control, which fluctuates and adds noise.

Therefore I suggest we focus on LCP(FE) instead. It is a front-end focussed KPI tracking exactly the part they are responsible for.

Doing so results in:

  • Better detect pages with a slow front-end component
  • Better visibility into smaller degradations/improvements
  • More stable KPI
  • Less noisy KPI
  • Overlapping releases (front/back) no longer pollute KPI’s

This screenshot shows mPulse from scalemates.com. You can see how much variation there is between both components:

  • The first row shows the slowest LCP (1.83s). While this page group has the fastest TTFB it has actually a very slow LCP(FE).
  • The Homepage on the other hand has a TTFB issue and less an LCP(FE) issue.

Complementary to 4 LCP Components

If you have not yet read Phil Walton article on Optimizing LCP I recommend you doing so.

He splits optimizing LCP into 4 distinct components:

  • #1 Deliver HTML
  • #2 Resource Load Delay
  • #3 Resource Load Time
  • #4 Element Render Delay

I fully endorse the above method but I do think Front-End Teams need a single combined KPI to focus on.

LCP(FE) is a single KPI which can further be split into Resource Load delay, Resource Load Time and Element Render Delay

LCP(FE) = #2 + #3 + #4

Summary

Make your Front End teams happy with a key KPI they fully control, without the extra noise and fluctuations.

Yet it still fits in the bigger goal of making LCP faster.