Core Web Vitals · LCP Image Lab

Your image is the hero.
Tune every delivery parameter, watch LCP move.

Upload an image — it becomes the page's largest element. Then flip optimization, preload, loading, fetchpriority, decoding, and reserved dimensions. The exact markup you'd ship updates live, and LCP is modelled as start + download + render so you can see what each lever costs.

Page preview

No image yet — drop one in below and it renders here.
transferring…

Click to upload or drag & drop

JPG / PNG / WebP · processed in your browser

Largest Contentful Paint

Upload an image to measure LCP.

 

Delivery parameters — see the markup change

Image optimizationresize to 1000px + WebP compression
Preload hint<link rel="preload" as="image">
Reserve width / heightprotects CLS, not LCP
loadinglazy defers an above-fold hero
fetchpriorityhint the browser's queue
decodingsync can block the paint
Connectionsimulated bandwidth
what you're shippingmarkup
<!-- upload an image to generate markup -->

LCP model: start = latency + discovery (preload removes it, lazy adds it, fetchpriority shifts it) · download = bytes ÷ bandwidth (optimization shrinks bytes) · render = measured decode (sync adds a paint-blocking penalty). Directional and transparent, not a lab-accurate trace.