justin.poehnelt.com
Data from Aug 21, 2026, 3:03 AM UTC 2d old
11ty Emeritus · 1 measurement · since Aug 21, 2026
Stack
Detected on the same page load as the accessibility pass — the generator
from <meta name="generator"> or the shape of the page,
the host from response headers.
Scores
Lab metrics Lighthouse, mobile
| Metric | Current | Previous | Change | Best | Worst | Trend |
|---|---|---|---|---|---|---|
| LCP Largest Contentful Paint | 3.30 s | — | — | 3.30 s | 3.30 s | |
| CLS Cumulative Layout Shift | 0 | — | — | 0 | 0 | |
| TBT Total Blocking Time | 1.31 s | — | — | 1.31 s | 1.31 s | |
| FCP First Contentful Paint | 1.93 s | — | — | 1.93 s | 1.93 s | |
| Speed Index | 2.03 s | — | — | 2.03 s | 2.03 s | |
| TTFB Time to First Byte | 650 ms | — | — | 650 ms | 650 ms |
What LCP is made of observed, unthrottled
A flat LCP number tells you something regressed. The subparts tell you whether it was the server, resource discovery, the download, or rendering.
Measured on the trace before throttling is modelled, so these are real durations that will not sum to the 3.30 s above — that figure is a simulation of the same load on a slow phone and connection. Read these for the proportions: which phase dominates.
Field history 25 weeks
Weekly p75 from the CrUX History API, backfilled in a single request.
| Week ending | LCP | INP | CLS | FCP | TTFB |
|---|---|---|---|---|---|
| 2026-08-15 | — | — | — | — | — |
| 2026-08-08 | — | — | — | — | — |
| 2026-08-01 | — | — | — | — | — |
| 2026-07-25 | — | — | — | — | — |
| 2026-07-18 | 1.52 s | 173 ms | 0 | 986 ms | 505 ms |
| 2026-07-11 | 1.52 s | 173 ms | 0 | 986 ms | 505 ms |
| 2026-07-04 | 1.35 s | 162 ms | 0 | 957 ms | 491 ms |
| 2026-06-27 | 1.52 s | 162 ms | 0 | 971 ms | 499 ms |
| 2026-06-20 | — | — | — | — | — |
| 2026-06-13 | — | — | — | — | — |
| 2026-06-06 | — | — | — | — | — |
| 2026-05-30 | — | — | — | — | — |
Page weight
| Metric | Current | Previous | Change | Best | Worst | Trend |
|---|---|---|---|---|---|---|
| Page Weight | 548 kB | — | — | 548 kB | 548 kB | |
| Requests | 38 | — | — | 38 | 38 | |
| Third-party Weight | 175 kB | — | — | 175 kB | 175 kB | |
| Third-party CPU | 54 ms | — | — | 54 ms | 54 ms | |
| Unused JS | 173 kB | — | — | 173 kB | 173 kB | |
| Unused CSS | 0 B | — | — | 0 B | 0 B |
By resource type
Third parties 1 entities
175 kB transferred, 54 ms of main thread time. This is the number most likely to regress without anyone on your team shipping anything.
Page health
| Metric | Current | Previous | Change | Best | Worst | Trend |
|---|---|---|---|---|---|---|
| Main Thread Work | 3.61 s | — | — | 3.61 s | 3.61 s | |
| Long Tasks | 7 | — | — | 7 | 7 | |
| DOM Elements | 2,787 | — | — | 2,787 | 2,787 | |
| Axe Violations Violating nodes from a full axe run — stricter than Lighthouse's subset | 12 | — | — | 12 | 12 | |
| A11y Failures | 2 | — | — | 2 | 2 | |
| A11y Failing Nodes | 12 | — | — | 12 | 12 |
Main thread work
Axe violations axe-core 4.13.0, full rule set
12 violating nodes across 2 rules, 3450 passing. This is a standalone axe run, stricter than the subset Lighthouse folds into its score above — and it is the second tiebreaker in the ranking.
-
serious
color-contrast— Elements must meet minimum color contrast ratio thresholds 10 nodes -
moderate
heading-order— Heading levels should only increase by one 2 nodes
Accessibility failures 2 of 28 audits
Tracked as a count, not just the score — the weighted score is coarse enough that you can ship a broken component and barely move it.
-
color-contrast— Background and foreground colors do not have a sufficient contrast ratio. 10 nodes -
heading-order— Heading elements are not in a sequentially-descending order 2 nodes
Hygiene
Changes rarely — which is exactly why a change is worth noticing.
Measurement log
Every stored run for this URL, newest first. Failures are kept as records — "this site was down on Tuesday" is data too.
| When | Perf | LCP | CLS | TBT | Weight | Runs | Spread | Bench | Took |
|---|---|---|---|---|---|---|---|---|---|
| Aug 21, 2026, 3:03 AM UTC | 66 | 3.30 s | 0 | 1.31 s | 548 kB | 3/3 | ±24 | 2,337 | 35.3s |
Embed this score
Live below, then the markup that produces it. Drop that on any page to show
justin.poehnelt.com's scores, updated whenever this instance
re-measures — more about the component. Don’t forget to bundle the speedlify2-score.js component code into your site!
<speedlify2-score speedlify-url="https://www.speedlify.dev/" url="https://justin.poehnelt.com/"></speedlify2-score>