expressjs.com
Ranks Overall #1,241 Astro Showcase #117
Data from Oct 2, 2026, 6:56 AM UTC old Measured once a month · 1 run since Oct 2, 2026
Elsewhere:
PageSpeed Insights ·
Calibre ·
Treo ·
CrUX Vis ·
Tame the Bots ·
Scoring Calculator ·
Wayback Machine
Lab data is measured using Lighthouse, Mobile mode unless otherwise specified. Field data is reported from Chrome UX Report (using p75 measurements).
Stack
Lighthouse Scores LAB Simulated
Metrics LAB FIELD
Field figures are the p75 across real Chrome users over a 28-day trailing window (2026-09-02 → 2026-09-29), url-level.
| Metric | Lab Simulated | Field | |||
|---|---|---|---|---|---|
| Value | Change / range | Trend | p75 | Distribution | |
| LCP CWV Largest Contentful Paint | 1.67 s good | — 1.67 s – 1.67 s | 1.66 s good | 88.5% 6.8% 4.7% | |
| INP CWV Interaction to Next Paint — field only, no lab run can measure it | n/a | — | 127 ms good | 89.5% 8.4% 2.2% | |
| CLS CWV Cumulative Layout Shift | 0 good | — 0 – 0 | 0 good | 99.3% 0.5% 0.2% | |
| TBT Total Blocking Time | 258 ms needs work | — 258 ms – 258 ms | n/a | — | |
| FCP First Contentful Paint | 1.67 s good | — 1.67 s – 1.67 s | 1.38 s good | 84.8% 8.9% 6.3% | |
| Speed Index | 1.67 s good | — 1.67 s – 1.67 s | n/a | — | |
| TTFB Time to First Byte | 608 ms good | — 608 ms – 608 ms | 848 ms needs work | 72.6% 19.6% 7.8% | |
LCP Subparts LAB Unthrottled
The subparts attribute LCP to your server, resource discovery, download, or rendering. Note that the Lab LCP shown above is a simulated throttled estimate.
LCP LAB Simulated vs LCP FIELD
The lab LCP is 1.01× the field p75 — real users likely have similar hardware or network connectivity to the lab test.
Page weight
| Metric | Value | Change / range | Trend |
|---|---|---|---|
| Page Weight | 250 kB | — 250 kB – 250 kB | |
| Requests | 22 | — 22 – 22 | |
| Third-party Weight | 10.2 kB | — 10.2 kB – 10.2 kB | |
| Third-party CPU | 7 ms | — 7 ms – 7 ms | |
| Unused JS | 104 kB | — 104 kB – 104 kB | |
| Unused CSS | 0 B | — 0 B – 0 B |
By resource type
| Type | Transfer | Share | Size | Requests |
|---|---|---|---|---|
| script | 81.7% | 204 kB | 11 | |
| stylesheet | 8.3% | 20.7 kB | 4 | |
| document | 8.1% | 20.3 kB | 1 | |
| image | 1.7% | 4.3 kB | 2 | |
| other | 0.2% | 511 B | 2 | |
| Total | 250 kB | 22 |
Third parties 1 entities
| Entity | Transfer | Size | Main thread Simulated |
|---|---|---|---|
| Cloudflare | 10.2 kB | 7 ms | |
| Total | 10.2 kB | 7 ms |
Page health
| Metric | Value | Change / range | Trend |
|---|---|---|---|
| Main Thread Work | 1.29 s | — 1.29 s – 1.29 s | |
| Long Tasks | 3 | — 3 – 3 | |
| DOM Elements | 726 | — 726 – 726 | |
| Axe Violations Violating nodes from a full Axe CLI run (more than Lighthouse reports) | 13 | — 13 – 13 | |
| A11y Failures | 2 | — 2 – 2 | |
| A11y Failing Nodes | 13 | — 13 – 13 |
Main thread work
| Task | Time | Share | Duration Simulated |
|---|---|---|---|
| other | 62% | 807 ms | |
| script evaluation | 23% | 299 ms | |
| style layout | 10% | 126 ms | |
| paint composite render | 2% | 29 ms | |
| parse HTML | 2% | 23 ms | |
| script parse compile | 1% | 9 ms | |
| Total | 1.29 s |
Axe violations axe-core 4.13.0, full rule set
13 violating nodes across 2 rules, 612 passing. This is a standalone Axe CLI run and is stricter than the subset Lighthouse already includes.
-
serious
color-contrast— Elements must meet minimum color contrast ratio thresholds 7 nodesOffending elements (5 of 7)
-
.body-md.text--no-v-margin.text--color-primary > a<a href="/en/blog/2026-09-09-joining-the-openjs-cna-security-break">Check out our latest blog</a> -
.text--color-secondary > a[href$="openjsf.org"]:nth-child(1)<a href="https://openjsf.org">OpenJS Foundation</a> -
a[href$="openjsf.org"]:nth-child(2)<a href="https://openjsf.org">OpenJS Foundation</a> -
a[href$="openjsf.org"]:nth-child(3)<a href="https://openjsf.org">OpenJS Foundation</a> -
a:nth-child(4)<a href="https://trademark-policy.openjsf.org">Trademark Policy</a>
-
-
serious
link-in-text-block— Links must be distinguishable without relying on color 6 nodesOffending elements (5 of 6)
-
.text--color-secondary > a[href$="openjsf.org"]:nth-child(1)<a href="https://openjsf.org">OpenJS Foundation</a> -
a[href$="openjsf.org"]:nth-child(2)<a href="https://openjsf.org">OpenJS Foundation</a> -
a[href$="openjsf.org"]:nth-child(3)<a href="https://openjsf.org">OpenJS Foundation</a> -
a:nth-child(4)<a href="https://trademark-policy.openjsf.org">Trademark Policy</a> -
a:nth-child(5)<a href="https://trademark-list.openjsf.org">Trademark List</a>
-
Accessibility failures 2 of 27 audits
-
color-contrast— Background and foreground colors do not have a sufficient contrast ratio. 7 nodes -
link-in-text-block— Links rely on color to be distinguishable. 6 nodes
Hygiene
Measurement log
Field history 25 weeks
Weekly p75 from the CrUX History API, backfilled in a single request.
| Week ending | LCP | INP | CLS | FCP | TTFB |
|---|---|---|---|---|---|
| 2026-09-26 | 1.64 s | 127 ms | 0 | 1.38 s | 848 ms |
| 2026-09-19 | 1.60 s | 124 ms | 0 | 1.35 s | 874 ms |
| 2026-09-12 | 1.66 s | 123 ms | 0 | 1.39 s | 927 ms |
| 2026-09-05 | 1.67 s | 123 ms | 0 | 1.42 s | 944 ms |
| 2026-08-29 | 1.68 s | 116 ms | 0 | 1.43 s | 948 ms |
| 2026-08-22 | 1.70 s | 112 ms | 0 | 1.44 s | 948 ms |
| 2026-08-15 | 1.69 s | 113 ms | 0 | 1.44 s | 949 ms |
| 2026-08-08 | 1.71 s | 112 ms | 0 | 1.45 s | 948 ms |
| 2026-08-01 | 1.72 s | 122 ms | 0 | 1.46 s | 949 ms |
| 2026-07-25 | 1.76 s | 126 ms | 0 | 1.47 s | 949 ms |
| 2026-07-18 | 1.77 s | 128 ms | 0 | 1.45 s | 935 ms |
| 2026-07-11 | 1.78 s | 131 ms | 0 | 1.41 s | 904 ms |
Runs
Every stored run for this URL, newest first.
| When | Scores | Perf | LCP | CLS | TBT | Weight | Runs | Spread | Bench | Took | Archive |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Oct 2, 2026, 6:56 AM UTC | 94 | 1.67 s | 0 | 258 ms | 250 kB | 3/3 | ±7 | 2,477 0% | 24.5s |
|