Estimated Input Latency
Estimated Input Latency is one of six metrics tracked in the Performance section of the Lighthouse report. Each metric captures some aspect of page load speed.
The Lighthouse reports displays Estimated Input Latency in milliseconds:
See the Lighthouse performance scoring post to learn how your page's overall performance score is calculated.
What Estimated Input Latency measures
Estimated Input Latency is an estimate of how long your app takes to respond to user input during the busiest 5 second window of page load. The timing of this audit is from First Meaningful Paint to the end of the trace, which is roughly 5 seconds after Time to Interactive. If your latency is higher than 50 ms, users may perceive your app as laggy.
The RAIL performance model recommends that apps respond to user input within 100 ms, while Lighthouse's Estimated Input Latency target score is 50 ms. Why? Lighthouse uses a proxy metric—availability of the main thread—to measure how well your app responds to user input.
Approximately 90% of users will encounter Lighthouse's reported amount of input latency or less. 10% of users can expect higher latency.
How to improve your Estimated Input Latency score
To make your app respond to user input faster, optimize how your code runs in the browser. Check out the series of techniques outlined on Google's Rendering Performance page. These tips range from offloading computation to web workers to free up the main thread, to refactoring your CSS selectors to perform fewer calculations, to using CSS properties that minimize the amount of browser-intensive operations.
The Estimated Input Latency audit isn't a complete measurement of input latency. It doesn't measure how long your app truly takes to respond to a user input; nor does it does measure that your app's response to the user's input is visually complete.
How to measure Estimated Input Latency manually
To measure Estimated Input Latency manually, make a recording with the Chrome DevTools Timeline. See Do less main thread work for an example of the workflow. The basic idea is to start a recording, perform the user input that you want to measure, stop the recording, and then analyze the flame chart to ensure that all stages of the pixel pipeline are complete within 50 ms.