angular.dev
Data from Aug 27, 2026, 6:58 PM UTC old
Overall #1,450 Developer Tooling #63 Frameworks and Libraries #12 · 1 measurement · since Aug 27, 2026
Core Web Vitals field data, url-level
Real Chrome users, 28-day window (2026-07-29 → 2026-08-25). This is what Google measures you on.
Scores
Filmstrip Lighthouse, mobile
How the page drew during the measured load, at 8 points across 3.00 s.
-
375 ms
-
750 ms
-
1.13 s
-
1.50 s
-
1.88 s
-
2.25 s
-
2.63 s
-
3.00 s
Without JavaScript
The same load, photographed twice at 412×823: once with scripts disabled, once as rendered.
99.9% of pixels differ — they have almost nothing in common. A shifted layout counts as difference, so a <noscript> banner alone can account for a large figure.
Lab metrics Lighthouse, mobile
| Metric | Current | Previous | Change | Best | Worst | Trend |
|---|---|---|---|---|---|---|
| LCP Largest Contentful Paint | 3.70 s | — | — | 3.70 s | 3.70 s | |
| CLS Cumulative Layout Shift | 0.108 | — | — | 0.108 | 0.108 | |
| TBT Total Blocking Time | 770 ms | — | — | 770 ms | 770 ms | |
| FCP First Contentful Paint | 3.47 s | — | — | 3.47 s | 3.47 s | |
| Speed Index | 3.47 s | — | — | 3.47 s | 3.47 s | |
| TTFB Time to First Byte | 621 ms | — | — | 621 ms | 621 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.70 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 data Chrome UX Report, url-level
Real Chrome users, 28-day trailing window (2026-07-29 → 2026-08-25). This is what Google measures you on.
| Metric | p75 | Rating | Distribution (good / needs work / poor) |
|---|---|---|---|
| LCP CWV | 2.22 s | good | 80.2% good |
| INP CWV Interaction to Next Paint — field only, Lighthouse cannot measure this in a lab run | 220 ms | needs-improvement | 71.4% good |
| CLS CWV | 0.030 | good | 92.3% good |
| FCP | 2.21 s | needs-improvement | 65.4% good |
| TTFB | 847 ms | needs-improvement | 73.1% good |
Lab vs field LCP
The lab LCP is 1.66× the field p75 — real users likely have above-average hardware or network connectivity.
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-22 | 2.20 s | 220 ms | 0.030 | 2.16 s | 838 ms |
| 2026-08-15 | 2.22 s | 220 ms | 0.030 | 2.21 s | 841 ms |
| 2026-08-08 | 2.21 s | 217 ms | 0.020 | 2.20 s | 838 ms |
| 2026-08-01 | 2.21 s | 222 ms | 0.020 | 2.17 s | 857 ms |
| 2026-07-25 | 2.25 s | 228 ms | 0.010 | 2.21 s | 870 ms |
| 2026-07-18 | 2.25 s | 227 ms | 0.010 | 2.21 s | 862 ms |
| 2026-07-11 | 2.27 s | 225 ms | 0.030 | 2.23 s | 871 ms |
| 2026-07-04 | 2.22 s | 229 ms | 0.020 | 2.18 s | 827 ms |
| 2026-06-27 | 2.11 s | 214 ms | 0.010 | 2.08 s | 781 ms |
| 2026-06-20 | 2.08 s | 213 ms | 0 | 2.06 s | 787 ms |
| 2026-06-13 | 2.02 s | 217 ms | 0 | 2.01 s | 757 ms |
| 2026-06-06 | 2.07 s | 211 ms | 0 | 2.05 s | 787 ms |
Page weight
| Metric | Current | Previous | Change | Best | Worst | Trend |
|---|---|---|---|---|---|---|
| Page Weight | 1.40 MB | — | — | 1.40 MB | 1.40 MB | |
| Requests | 53 | — | — | 53 | 53 | |
| Third-party Weight | 702 kB | — | — | 702 kB | 702 kB | |
| Third-party CPU | 70 ms | — | — | 70 ms | 70 ms | |
| Unused JS | 161 kB | — | — | 161 kB | 161 kB | |
| Unused CSS | 0 B | — | — | 0 B | 0 B |
By resource type
Third parties 3 entities
702 kB transferred, 70 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 | 5.47 s | — | — | 5.47 s | 5.47 s | |
| Long Tasks | 11 | — | — | 11 | 11 | |
| DOM Elements | 430 | — | — | 430 | 430 | |
| Axe Violations Violating nodes from a full axe run — stricter than Lighthouse's subset | 10 | — | — | 10 | 10 | |
| A11y Failures | 1 | — | — | 1 | 1 | |
| A11y Failing Nodes | 4 | — | — | 4 | 4 |
Main thread work
Axe violations axe-core 4.13.0, full rule set
10 violating nodes across 3 rules, 897 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 4 nodes -
moderate
region— All page content should be contained by landmarks 3 nodes -
serious
scrollable-region-focusable— Scrollable region must have keyboard access 3 nodes
Accessibility failures 1 of 29 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. 4 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 27, 2026, 6:58 PM UTC | 60 | 3.70 s | 0.108 | 770 ms | 1.40 MB | 3/3 | ±27 | 2,337 | 44.7s |
Embed this score
Live below, then the markup that produces it. Drop that on any page to show
angular.dev'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://angular.dev/"></speedlify2-score>