audreyinc INP P75 perf tracking — Core Web Vitals ledger for audrey-inc + portfolio (parked 2026-05-26)

DARE.CO.UK · PARKED SKETCH · 2026-05-26

Mirrored from ~/.claude/.../memory/parked_sketch_audreyinc_inp_tracking_2026-05-26.md. This is a design sketch parked for future build — read for context, not as a current deliverable.

Dan flagged a poor INP P75 score (688 ms, trending +2.2K%) on audreylam.com via Cloudflare Web Analytics. Wants ongoing tracking, not an immediate fix. Sketch a daily-snapshot + sparkline-card pattern that drops into status.gf.cx (or a sibling perf.gf.cx subdomain) and covers every tracked portfolio property. Resume when ready to invest in audrey-inc theme work, OR when a second domain’s INP regresses, OR when the broader perf-dashboard substrate becomes useful for other surfaces.


Dan 2026-05-26: “fyi - next-paint score, poor for audreyinc [CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Web Analytics screenshot] it would be good to track”

What the screenshot showed (30-day window, audreylam.com)

Metric Value Threshold Verdict
LCP P75 1698 ms ≤2500 ms = Good ✅ Good (42% improvement on prior window)
INP P75 688 ms ≤200 ms Good · 200-500 Needs work · >500 Poor 🔴 Poor (trending +2.2K%)
CLS 0 ≤0.10 = Good ✅ Good

INP measures the latency between any user interaction and the next visual update. 688 ms means tapping HOME/ABOUT/COLLECTIONS feels noticeably laggy on the median mobile device.

Likely root cause (untested hypothesis)

audreylam.com is a Squarespace / WordPress / Wix / similar template-driven portfolio — the theme’s nav-click handler probably triggers a synchronous JS bundle init (analytics, lightbox, AJAX page-load, font-swap) that blocks the main thread between tap and paint. The +2.2K% trend suggests a recent script addition (new analytics tag? GTM container? cookie consent banner?) tipped it over.

Diagnosis recipe before any tracking work: open Chrome DevTools → Performance Insights → record a HOME→ABOUT tap → look at the longest task. INP almost always traces to one specific handler.

Tracking approach (sketch — pick one when resuming)

Option A — daily cron + sparkline card on status.gf.cx (lightest)

Option B — perf.gf.cx subdomain (more ambitious)

Option C — per-property perf section (narrowest)

API surface

Cloudflare Web Analytics → GraphQL Analytics API → viewer.zones.rumWebVitalsEventsAdaptiveGroups (the same data the dashboard renders). Auth via the existing CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF API token used by other gf.cx scripts. No new permissions needed if the token already has Analytics: Read.

Cross-references

Resume trigger

What I’d do first (15-min triage, before any tracking build)

Open audreylam.com in Chrome → DevTools Performance Insights → record a HOME-to-ABOUT tap → screenshot the longest task → drop here. Knowing the cause is more useful than charting the symptom, and the fix might be a single script removal that brings INP back inside Good without any dashboard work.

Source: parked_sketch_audreyinc_inp_tracking_2026-05-26.md · Rendered 2026-05-26 17:10