Core Web Vitals Interview Questions
Reviewed by Mark Dickie · Last updated
Core Web Vitals are Google's set of standardized metrics that measure real-world web page performance across three dimensions: loading, interactivity, and visual stability. For an interview you should know the current three metrics (LCP, INP, CLS) along with their thresholds, what causes each to fail, and the common fixes. You should also be ready to discuss Lighthouse, PageSpeed Insights, and the web-vitals JavaScript library, and how to read field data versus lab data.
| Metric | What it measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| LCP | Time to largest visible element render | ≤ 2.5 s | ≤ 4 s | > 4 s |
| INP | Interaction latency across the page | ≤ 200 ms | ≤ 500 ms | > 500 ms |
| CLS | Visual layout shift score | ≤ 0.1 | ≤ 0.25 | > 0.25 |
What does a Core Web Vitals interview test?
Interviews on this topic check whether you can connect a metric to its root cause and propose a concrete fix. Expect to explain why INP replaced FID in March 2024, how layout shift is scored, and what the difference between lab and field data means for optimization strategy.
How do you optimize each metric?
- LCP: preload the largest element (often an image or hero), use a CDN, reduce server response time (TTFB), and cut render-blocking resources.
- INP: break up long tasks, reduce JavaScript execution time, use
requestIdleCallbackorscheduler.yield(), and defer non-critical scripts. - CLS: set explicit width and height on images and embeds, reserve space for ads, and avoid inserting content above existing elements.
Key facts
- Tarmac has 16 Web Platform interview questions on this topic, 10 of them on this page, at difficulty 1–5 of 5.
- Tarmac tracked 394 job postings asking for Web Platform in September 2026.
- Roles asking for Web Platform advertise a median base salary of US$175,250, across 179 job postings as of September 2026.
- Tarmac last reviewed these Web Platform interview questions on 28 September 2026.
At a glance
| Questions | 10 shown · 16 in the bank |
|---|---|
| Difficulty | 1–5 of 5 |
| Formats | True / false, Fill in the blank, Multiple choice, Multiple answer, Short answer, Ordering, Flashcard |
What you'll review
- core web vitals
Practice questions
Try one before you open the answer. Pick an option and press Check; it's marked on the spot.
Largest Contentful Paint (LCP) measures the time from when the user first navigates to a page to when the largest image or text block in the viewport is fully rendered. A 'Good' LCP score is 2.5 seconds or less.#
Options
Show answer
True. Largest Contentful Paint (LCP) measures how long it takes for the largest visible image or text block to render in the viewport from the start of page navigation. Google classifies an LCP of 2.5 seconds or less as 'Good', making this the target threshold for a positive user experience.
LCP does measure the render time of the largest content element visible in the viewport from the moment the user begins navigation. Google's thresholds classify LCP ≤ 2.5 s as 'Good', 2.5–4.0 s as 'Needs Improvement', and > 4.0 s as 'Poor'. Both parts of the statement are correct.
Complete the sentence: The three original Core Web Vitals introduced by Google are Largest Contentful Paint, _____, and Cumulative Layout Shift. In 2024, Google replaced First Input Delay with a new responsiveness metric called _____.#
Show answer
Complete the sentence: The three original Core Web Vitals introduced by Google are Largest Contentful Paint, First Input Delay, and Cumulative Layout Shift. In 2024, Google replaced First Input Delay with a new responsiveness metric called Interaction to Next Paint.
The original Core Web Vitals were LCP (loading), First Input Delay / FID (interactivity), and CLS (visual stability). In March 2024, Google officially replaced FID with Interaction to Next Paint (INP), which better captures the full responsiveness of a page across all user interactions rather than only the first one.
Which of the following metrics is not one of Google's three Core Web Vitals (as of 2024)?#
Options
Show answer
First Contentful Paint (FCP) is not a Core Web Vital. The three Core Web Vitals are Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS). FCP is a useful diagnostic metric in Lighthouse and PageSpeed Insights, but it does not count as an official Core Web Vital and does not directly influence Google Search ranking signals.
The three Core Web Vitals are LCP (loading), INP (interactivity — which replaced FID in March 2024), and CLS (visual stability). First Contentful Paint (FCP) is a diagnostic metric reported in Lighthouse and PageSpeed Insights, but it is NOT one of the three Core Web Vitals. LCP, INP, and CLS are the metrics that feed directly into Google Search ranking signals.
Complete the following Core Web Vitals thresholds:#
Show answer
Complete the following Core Web Vitals thresholds:
- LCP should occur within 2.5 seconds for a "Good" score.
- CLS should be less than 0.1 for a "Good" score.
- INP should be less than 200 milliseconds for a "Good" score.
Google defines "Good" thresholds for the three Core Web Vitals as: LCP ≤ 2.5 s (measures when the largest above-the-fold content element becomes visible); CLS < 0.1 (a unitless score measuring unexpected layout shifts); and INP < 200 ms (measures end-to-end latency of user interactions). Values between the Good and Poor thresholds are rated "Needs Improvement".
Which of the following practices improve Largest Contentful Paint (LCP)? Select all that apply.#
Options
Pick every one that applies.
Show answer
Three practices improve Largest Contentful Paint: adding fetchpriority="high" to the hero <img> element, preloading the LCP image with <link rel="preload" as="image">, and serving images via a CDN to reduce Time to First Byte. fetchpriority="high" tells the browser to download the hero image early, preload kicks off that request before the parser reaches the <img> tag, and a lower TTFB means the page's bytes, including the LCP resource, start arriving sooner.
LCP measures when the largest content element (commonly a hero image) becomes visible. fetchpriority="high" on the hero <img> tells the browser to prioritise downloading that resource early, directly shortening its fetch time. <link rel="preload" as="image"> kicks off the LCP resource request before the parser even reaches the <img> tag, reducing discovery latency. Serving via a CDN reduces TTFB, which shortens the time before any byte of the page—including the LCP resource—can begin downloading. loading="lazy" is actively harmful for the LCP element because it intentionally delays its fetch. Deferring an analytics script that is already at the end of <body> and is therefore neither render-blocking nor related to the LCP element; moving a non-blocking end-of-body script to defer has no meaningful effect on LCP.
A product team is trying to improve their page's Interaction to Next Paint (INP) score. Which of the following interventions reduce INP by shortening one of its three sub-parts (input delay, processing time, or presentation delay) for the measured interaction? Select all that apply.#
Options
Pick every one that applies.
Show answer
Two interventions reduce INP by shortening one of its sub-parts: (1) breaking up long JavaScript tasks with scheduler.yield() or setTimeout so the main thread is free when the user interacts (shrinks input delay), and (2) minimizing DOM size and expensive style recalculations triggered by handlers so layout and paint complete faster (shrinks presentation delay). Image format changes, HTTP/2 stream limits, and blanket requestAnimationFrame wrapping do not.
INP measures the latency of discrete interactions from input until the next frame is painted, and is decomposed into input delay, processing time, and presentation delay. Yielding long tasks with scheduler.yield() or setTimeout keeps the main thread from being blocked when the user interacts, which reduces the input delay portion of INP for subsequent interactions — a well-established optimization in Google's INP guidance. Reducing DOM size and expensive style recalculations triggered by handlers shortens the layout/paint work the browser must do after the event callback, directly reducing presentation delay. Switching image formats to WebP reduces page weight and affects LCP/transfer cost, but does not change how quickly the main thread responds to an interaction. HTTP/2 concurrent-stream limits are a network-multiplexing concern unrelated to main-thread interaction latency. Unconditionally wrapping interaction-driven DOM updates in requestAnimationFrame defers the visual update to a later frame, which generally increases presentation delay for the measured interaction; Google's INP guidance specifically warns against using rAF as a blanket wrapper for interaction visual updates for this reason.
Explain what Cumulative Layout Shift (CLS) measures and describe two specific, distinct root causes that commonly produce a high CLS score on a production web page. For each cause, state the recommended fix.#
Show answer
CLS measures the sum of all unexpected layout shift scores that occur during the page's lifecycle. Each layout shift score is calculated as the product of the impact fraction (the fraction of the viewport affected) and the distance fraction (how far elements moved). A high CLS is commonly caused by: (1) Images or media without explicit width/height attributes — the browser does not reserve space for them, so when they load they push content down. Fix: always set width and height attributes or use aspect-ratio in CSS so the browser reserves the correct space before the resource loads. (2) Dynamically injected content (e.g., ad banners, cookie consent banners, or lazy-loaded components) inserted above existing content — this shifts everything below it downward. Fix: pre-reserve the space with a placeholder of the same dimensions (e.g., a min-height container), or insert the content below the fold / outside the current viewport.
CLS is the only Core Web Vital that is not a time-based metric; it quantifies visual instability. Its score is the sum of (impact fraction × distance fraction) for each unexpected shift. The two most prevalent causes are unsized media (no reserved space) and late-injected content above the fold. The fixes directly address the reservation of layout space before resources load or content appears.
A browser navigates to a page whose LCP element is an <img>. Consider the following five milestones, where each milestone is defined as the first moment the described condition becomes true. Arrange them in the order in which they must occur.#
Put these in order
Show answer
The correct order is: TTFB → image request dispatched → first image byte received → first paint of the image → LCP entry recorded. Each milestone is a strict data-dependency of the next: the browser needs HTML bytes to discover the <img>, needs to send the request before bytes come back, needs some image bytes to paint any pixels, and per the Web Vitals spec the largest-contentful-paint renderTime corresponds to that first paint.
Each milestone is a strict data-dependency prerequisite of the next, giving a single uncontested total order. (s1) TTFB precedes everything — no HTML bytes means no parsing and no discovered <img>. (s2) The request for the image can only be dispatched after enough HTML has arrived to expose the tag or its preload hint, so s2 follows s1. (s3) The first image byte cannot arrive before the request has been sent, so s3 follows s2. (s4) The first paint of the image requires at least some image bytes to have been received and decoded (even progressive/streaming codecs need some bytes on hand), so s4 follows s3. (s5) The Web Vitals spec ties the LCP renderTime to the moment the element was first painted, so the entry cannot be recorded before that paint occurred; s5 follows s4. Note this version deliberately uses first-occurrence milestones (first byte, first paint) rather than completion gates, which sidesteps progressive-decode and tiled-rendering concerns — decode may overlap download and paint may overlap decode, but the first occurrence of each still respects this ordering.
For a single user interaction, what does its INP (Interaction to Next Paint) latency measurement actually span?#
Show answer
From the moment the browser receives the user's input to the moment it paints the next frame reflecting the visual result of that interaction — covering three parts together: input delay (time before the event handler starts, often due to a busy main thread), processing time (the handler's own execution), and presentation delay (time to render and paint the resulting frame). INP reports roughly the worst such interaction observed across the whole page visit, not just a handler's own runtime — a fast handler can still produce a slow INP if the main thread was busy beforehand or painting afterward is slow.
The common mistake is equating INP with 'how long my event handler function took.' The metric is end-to-end — input arrival to next paint — so a slow INP can come from main-thread contention before the handler even starts, or from expensive layout/paint work after it finishes, not just from the handler's own code.
Regarding the Cumulative Layout Shift (CLS) metric's measurement model, which statement is most precisely correct?#
Options
Show answer
CLS is calculated as the maximum session window score, where a session window spans up to 5 seconds with no gap larger than 1 second between consecutive shifts. Layout shifts that occur within 500 ms of a user interaction (click, tap, keyboard input) are excluded from CLS scoring, because they are considered intentional UI responses rather than unexpected visual instability.
Cumulative Layout Shift (CLS) uses a session window model: shifts are grouped into windows of up to 5 seconds, with no more than 1 second between consecutive shifts. The page's CLS score is the maximum session window score. A 'good' CLS is ≤0.1. The impact fraction × distance fraction formula produces the shift score for a single shift. Importantly, layout shifts caused by user interactions (within 500 ms of a user gesture) are excluded from CLS to avoid penalizing intentional expansions. Size changes to elements already off-screen are also excluded. Understanding the session-window aggregation, the 500 ms interaction grace period, and what is/isn't excluded are classic staff-level CLS gotchas.
Sources
The official documentation these questions are checked against:
Related interview questions
Job market
See web-platform salaries and hiring demand from live job postings.
The other 6 questions
This page shows 10 and marks what you pick. That's as far as a page can go. A free account opens the other 6 and keeps every answer. What you miss comes back until it's right: after a day, then at longer gaps.
Free · the whole bank · 100 marked answers per 30 days · written feedback on the paid plan