jlhernando.com
Ranks Overall #1,271 Built Awesome #869
Data from Oct 4, 2026, 4:30 AM UTC old Measured once a week · 7 runs since Aug 21, 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
No field data: the Chrome UX Report is not being collected for this project, so every figure below is from the Lighthouse run.
| Metric | Lab Simulated | ||
|---|---|---|---|
| Value | Change / range | Trend | |
| LCP CWV (estimate) Largest Contentful Paint | 1.81 s good | ↓ -1 ms (-0.1%) 1.77 s – 2.09 s | |
| INP CWV Interaction to Next Paint — field only, no lab run can measure it | n/a | — | |
| CLS CWV (estimate) Cumulative Layout Shift | 0 good | → no change 0 – 0 | |
| TBT Total Blocking Time | 0 ms good | → no change 0 ms – 0 ms | |
| FCP First Contentful Paint | 1.22 s good | → no change 942 ms – 1.22 s | |
| Speed Index | 1.22 s good | → no change 942 ms – 1.36 s | |
| TTFB Time to First Byte | 620 ms good | → no change 603 ms – 753 ms | |
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.
Page weight
| Metric | Value | Change / range | Trend |
|---|---|---|---|
| Page Weight | 71.7 kB | ↓ -116 B (-0.2%) 71.7 kB – 72.7 kB | |
| Requests | 11 | → no change 11 – 11 | |
| Third-party Weight | 3.8 kB | → no change 3.8 kB – 3.8 kB | |
| Third-party CPU | 1 ms | → no change 0 ms – 1 ms | |
| Unused JS | 0 B | → no change 0 B – 0 B | |
| Unused CSS | 13.9 kB | ↓ -5 B 13.9 kB – 13.9 kB |
By resource type
| Type | Transfer | Share | Size | Requests |
|---|---|---|---|---|
| document | 36% | 25.8 kB | 1 | |
| font | 31.5% | 22.6 kB | 1 | |
| image | 25.1% | 18.0 kB | 5 | |
| script | 4.6% | 3.3 kB | 1 | |
| other | 2.8% | 2.0 kB | 3 | |
| Total | 71.7 kB | 11 |
Third parties 1 entities
| Entity | Transfer | Size | Main thread Simulated |
|---|---|---|---|
| Plausible | 3.8 kB | 1 ms | |
| Total | 3.8 kB | 1 ms |
Page health
| Metric | Value | Change / range | Trend |
|---|---|---|---|
| Main Thread Work | 316 ms | ↓ -18 ms (-5.3%) 253 ms – 334 ms | |
| Long Tasks | 1 | → no change 0 – 1 | |
| DOM Elements | 312 | → no change 312 – 312 | |
| Axe Violations Violating nodes from a full Axe CLI run (more than Lighthouse reports) | 8 | → no change 7 – 8 | |
| A11y Failures | 3 | → no change 3 – 3 | |
| A11y Failing Nodes | 4 | → no change 4 – 4 |
Main thread work
| Task | Time | Share | Duration Simulated |
|---|---|---|---|
| other | 40% | 125 ms | |
| style layout | 32% | 102 ms | |
| paint composite render | 9% | 30 ms | |
| script evaluation | 9% | 28 ms | |
| parse HTML | 8% | 26 ms | |
| script parse compile | 2% | 6 ms | |
| Total | 316 ms |
Axe violations axe-core 4.13.0, full rule set
8 violating nodes across 7 rules, 413 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 2 nodesOffending elements
-
.decoration-secondary\/50.underline-offset-2.underline:nth-child(3)<a class="underline hover:text-pop decoration-secondary/50 underline-offset-2" href="https://github.com/jlhernando" rel="noopener noreferrer" target="_blank">GitHub</a> -
.decoration-secondary\/50.underline-offset-2.underline:nth-child(4)<a class="underline hover:text-pop decoration-secondary/50 underline-offset-2" href="https://www.instagram.com/jlhernando/" rel="noopener noreferrer" target="_blank">Instagram</a>
-
-
serious
aria-hidden-focus— ARIA hidden element must not be focusable or contain focusable elements 1 nodeOffending element
-
#navPanel<div class="transition-transform bg-primary duration-200 ease-out fixed h-full max-w-[85vw] right-0 shadow-2xl text-white top-0 transform translate-x-full w-80 z-50" id="navPanel" aria-hidden="true" …
-
-
moderate
heading-order— Heading levels should only increase by one 1 nodeOffending element
-
h4<h4 class="subscribe-title subscribe-title--dark">Get notified when I publish new tools, scripts, and articles.</h4>
-
-
moderate
landmark-main-is-top-level— Main landmark should not be contained in another landmark 1 nodeOffending element
-
.py-14<main class="py-14 container-shell">
-
-
moderate
landmark-no-duplicate-main— Document should not have more than one main landmark 1 nodeOffending element
-
#main-content > main<main>
-
-
moderate
landmark-unique— Landmarks should have a unique role or role/label/title (i.e. accessible name) combination 1 nodeOffending element
-
#main-content > main<main>
-
-
moderate
region— All page content should be contained by landmarks 1 nodeOffending element
-
.mb-4<div class="space-y-2 mb-4"> <span class="section-label">FAQ</span> <h2 class="text-primary font-display text-2xl sm:text-3xl">Common questions</h2> <p class="text-primary/80">Answers pulled from my …
-
Accessibility failures 3 of 29 audits
-
color-contrast— Background and foreground colors do not have a sufficient contrast ratio. 2 nodes -
aria-hidden-focus— `[aria-hidden="true"]` elements contain focusable descendents 1 node -
heading-order— Heading elements are not in a sequentially-descending order 1 node
SEO failures 1 of 10 audits
-
robots-txt— robots.txt is not valid 3 items
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-04-11 → 2026-09-26 | No data — 25 weeks under the CrUX reporting threshold | ||||
Runs
Every stored run for this URL, newest first.
| When | Scores | Perf | LCP | CLS | TBT | Weight | Runs | Spread | Bench | Took | Archive |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Oct 4, 2026, 4:30 AM UTC | 99 | 1.81 s | 0 | 0 ms | 71.7 kB | 3/3 | ±3 | 2,472 -1% | 25.6s |
|
|
| Sep 27, 2026, 12:16 AM UTC | 99 | 1.81 s | 0 | 0 ms | 71.8 kB | 3/3 | ±1 | 2,440 -2% | 25.2s |
|
|
| Sep 19, 2026, 10:08 PM UTC | 100 | 1.77 s | 0 | 0 ms | 71.8 kB | 3/3 | ±1 | 2,484 0% | 24.9s |
|
|
| Sep 12, 2026, 9:14 PM UTC | 100 | 1.81 s | 0 | 0 ms | 71.8 kB | 3/3 | ±0 | 2,509 +1% | 25.2s |
|
|
| Sep 5, 2026, 5:59 PM UTC | 99 | 2.09 s | 0 | 0 ms | 72.7 kB | 3/3 | ±1 | 2,359 -5% | 23.7s |
|
|
| Aug 29, 2026, 5:02 PM UTC | 99 | 1.80 s | 0 | 0 ms | 71.7 kB | 3/3 | ±0 | 2,887 +16% | 24.5s |
|
|
| Aug 21, 2026, 1:19 AM UTC | 99 | 1.86 s | 0 | 0 ms | 71.8 kB | 3/3 | ±1 | 2,454 -1% | 25.4s |
|
Embed this score
Use this web component to show jlhernando.com's scores on any website, updated whenever this instance re-measures. Don’t forget to bundle the speedlify2-score.js component code into your site!
<speedlify2-score speedlify-url="https://www.speedlify.dev/" url="https://jlhernando.com/"></speedlify2-score>