Performance
This site's Core Web Vitals, measured on real visits
A performance engineer's site should be fast, and you should not have to take that on trust. These are this site's own Core Web Vitals from real page loads over the last 28 days, measured at the 75th percentile using Google's metric definitions.
Real visits
Real-user speed over the last 28 days
Each number is the 75th percentile: three in four page loads were at least this fast. Google also evaluates Core Web Vitals at the 75th percentile. These numbers are this site's own measurements, not CrUX data.
2026-10-08 to 2026-11-04 (full days, UTC; rebuilt after midnight UTC)
Narrower screens (under 768 px)
LCP
Largest Contentful Paint
1.60 s
Good
How long until the main content is on screen.
76 page loads. Good is within 2.50 s.
INP
Interaction to Next Paint
Collecting
How quickly the page responds to a tap, click or key.
39 of 50 page loads so far. Good is within 200 ms.
CLS
Cumulative Layout Shift
0.01
Good
How much the layout jumps while it loads.
50 page loads. Good is under 0.10.
Also: First Contentful Paint 1.45 s · Time to First Byte 0.50 s
Larger screens (768 px and wider)
LCP
Largest Contentful Paint
2.05 s
Good
How long until the main content is on screen.
319 page loads. Good is within 2.50 s.
INP
Interaction to Next Paint
56 ms
Good
How quickly the page responds to a tap, click or key.
194 page loads. Good is within 200 ms.
CLS
Cumulative Layout Shift
0.01
Good
How much the layout jumps while it loads.
300 page loads. Good is under 0.10.
Also: First Contentful Paint 1.75 s · Time to First Byte 0.45 s
By kind of page
Each kind of page on its own
The same 75th percentile, split by the kind of page and counted on every screen size together. A kind of page is listed once it has 50 page loads in the window.
| Kind of page | Page loads | LCP | INP | CLS |
|---|---|---|---|---|
| Home page | 128 | 1.60 s | 72 ms | 0.01 |
| Blog articles | 174 | 1.90 s | 48 ms | 0.01 |
| Other pages | 77 | 2.25 s | Collecting | 0.01 |
Budgets
Lighthouse thresholds every page must meet
The site's Lighthouse check fails when a page scores below these, on mobile or on desktop.
| Lighthouse category | Mobile | Desktop |
|---|---|---|
| Performance | 80+ | 90+ |
| Accessibility | 95+ | 95+ |
| Best practices | 95+ | 95+ |
| SEO | 95+ | 95+ |
Google's thresholds
Core Web Vitals passing thresholds
Each measure uses the 75th percentile of this site's real page loads. A metric appears only after at least 50 reports are available.
LCP Largest Contentful PaintThis site: 1.60 s
Good is within 2.5 s, poor is over 4 s.
INP Interaction to Next Paint
Good is within 200 ms, poor is over 500 ms.
CLS Cumulative Layout ShiftThis site: 0.01
Good is under 0.1, poor is over 0.25.
Method
How the speed data is collected
- The browser reports each page load's timings once, when the page is hidden. No cookie is set and nothing identifies the visitor: the site stores a count in a range of values, never a visit.
- Bots, and browsers that send Do Not Track or Global Privacy Control, are not counted.
- Mobile means a screen narrower than 768 pixels.
- A number is shown only once a device class has 50 page loads in the window. Below that, one slow connection would decide it.
- Good and poor follow Google's thresholds: Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint within 200 milliseconds, Cumulative Layout Shift under 0.1.
How a page load becomes a published number
- The page is hidden or closed. The browser sends that load's timings once.
- The server keeps a count, not a visit. Each value adds one to a range, by day, device class and kind of page.
- The last 28 days are added up. Today is left out until it is over.
- The 75th percentile is read off the counts, once a device class has 50 page loads.
- The result is rated against Google's thresholds and shown on this page, good or not.
Set up speed measurement for your site
Tell me which site and what feels slow, and I will say what I would measure first.
Message
Ask me about your site
Tell me what is wrong or what you need built. I reply by email.
