54 items
Observing LCP with PerformanceObserver
Code QuizUnderstanding LCP and CLS
QuizTime to First Byte (TTFB)
Slides / VideoMeasuring FCP
Code QuizLab vs Field Data
Code QuizTotal Blocking Time
Code QuizINP Thresholds
Code QuizFID Calculation
Code QuizComputing TTFB
Code QuizLCP Thresholds
Code Quizp75 Percentile
Code QuizRating Boundaries
Code Quizweb-vitals Library
Code QuizCLS Thresholds
Code QuizPerformanceObserver Setup
Code QuizNavigation Timing
Code QuizLargest Contentful Paint (LCP)
Slides / VideoWhat Core Web Vitals Are
Slides / VideoTools for Measuring Web Vitals
Slides / VideoLab Data vs Field Data (RUM)
Slides / VideoCore Web Vitals: Three Categories
Slides / VideoGood vs Poor Metric Thresholds
Slides / VideoTime to Interactive (TTI)
Slides / VideoINP Good Threshold
QuizLCP Rating Thresholds
QuizCLS Good Threshold
QuizSpeed Index Basics
QuizWhat CLS Measures
QuizWhy Metrics Are User-Centric
QuizTime to Interactive Basics
QuizWhat INP Measures
QuizThe Three Core Web Vitals
QuizLab vs Field Data
QuizWhat LCP Measures
QuizTotal Blocking Time Basics
QuizFID Replaced by INP
QuizWhy the 75th Percentile
QuizFirst Contentful Paint (FCP)
FlashcardTotal Blocking Time (TBT)
FlashcardTime to Interactive (TTI)
FlashcardInteraction to Next Paint (INP)
FlashcardCumulative Layout Shift (CLS)
FlashcardTime to First Byte (TTFB)
FlashcardSpeed Index
FlashcardLab Data vs Field Data
FlashcardPercentiles (p75) in Measurement
FlashcardCore Web Vitals Thresholds
FlashcardFirst Input Delay (FID)
FlashcardLargest Contentful Paint (LCP)
FlashcardWhat Core Web Vitals Are
FlashcardFirst Contentful Paint (FCP)
Slides / VideoInteraction to Next Paint (INP)
Slides / VideoCumulative Layout Shift (CLS)
Slides / VideoFirst Input Delay (FID)
Slides / VideoObserving LCP with PerformanceObserver
Spot the bug in a PerformanceObserver setup meant to measure Largest Contentful Paint.
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log('LCP candidate:', entry.startTime);
}
});
observer.observe({ type: 'largestContentfulPaint', buffered: true });This code should log Largest Contentful Paint entries but never fires. What is the bug?