Magento 2 checkout: LCP from 5.8s to 1.6s
Backend work on the checkout of one Floor Giants store that took Largest Contentful Paint from 5.8 seconds to 1.6 with a reported 20–30% checkout conversion uplift, depending on the week and attribution.
One store. Each change measured against the baseline.
The problem
The checkout on one of the stores was slow enough that people were leaving it. Largest Contentful Paint on the checkout page was 5.8 seconds. A flooring basket carries more than most. The floor itself is sold by area, then there is underlay, trims and delivery, and the totals were being recalculated on nearly every interaction.
Where I started
I set the order of work from the measurements. The biggest number went first. I reviewed every change before it went out, because checkout is where a mistake costs money the same day.
What the team changed
The team went through the backend data flow between basket and checkout. Payloads that were fetched on every step were fetched once. Blocking calls were moved off the render path, or removed where nothing used the result. Each change went out on its own and was measured against the baseline before the next one started. That kept the effect of each change visible.
The result, and the remaining work
LCP on the checkout went from 5.8 seconds to 1.6. Checkout conversion rose by somewhere between 20 and 30 percent depending on the week and how you attribute it, which is why I give a range. At the end of this work, the remaining time was in the checkout JavaScript. That was a separate, bigger job than the backend changes described here.
Related reading
- Magento 2 relaunch: theme, caching and releases
- Magento 2 security patching workflow
- How to investigate a slow Magento 2 checkout
- Hyvä migration planning and backend architecture
If you have a Magento setup with a similar problem, get in touch.