94Overall

Lugh Frontend Health

https://lughonline.com · 2026-10-07T09:37:44.585Z

Category scores

Performance91
ReliabilityN/A
Contract100
Efficiency96
Security90
SEO100
Accessibility87

Run overview

7 pages audited.

31 recommendations generated.

Core Web Vitals use headless Chromium; crawlability audits inspect the server-rendered HTML.

Pages

Pagep50p95p99SizeScore
GET / 73 ms 110 ms 111 ms 2.3 KB 95
GET /en 46 ms 52 ms 52 ms 16.1 KB 97
GET /es 62 ms 103 ms 108 ms 16.4 KB 96
GET /en/call 64 ms 114 ms 121 ms 6.9 KB 91
GET /es/call 60 ms 89 ms 95 ms 7.0 KB 92
GET /en/results/audit-probe 47 ms 91 ms 92 ms 2.3 KB 94
GET /__spa-fallback-probe 55 ms 101 ms 103 ms 2.3 KB 97

Assets

11 unique subresources · 533.7 KB total. Sizes are uncompressed; Enc shows the transfer encoding negotiated.

Largest assetsKindEncBlockingStatusSize
/assets/vendor-CqBbW-N-.js script br No 200 254.0 KB
/assets/index-DSQnTvVO.js script br No 200 152.6 KB
/fonts/playfair-display.woff2 font — No 200 37.6 KB
https://static.cloudflareinsights.com/beacon.min.js script gzip No 200 30.9 KB
/assets/index-Df6OAEl0.css style br Yes 200 24.9 KB

Markup

What each page declares in the HTML the server sends — before any JavaScript runs.

PageLangTitleDescCanonicalOGhreflangHeadings
GET / en Yes No No 0 0 —
GET /en en Yes Yes Yes 7 3 1, 2, 2, 3, 3, 3, 2, 2, 2, 2
GET /es es Yes Yes Yes 7 3 1, 2, 2, 3, 3, 3, 2, 2, 2, 2
GET /en/call en Yes Yes Yes 7 3 1, 2, 2, 2
GET /es/call es Yes Yes Yes 7 3 1, 2, 2, 2
GET /en/results/audit-probe en Yes No No 0 0 —
GET /__spa-fallback-probe en Yes No No 0 0 —

Browser metrics

Headless Chromium medians from two warm navigations; the first of three navigations is discarded.

PageLCPCLSTBTTransferCompleted
GET / 292 ms 0.000 0 ms 1.1 MB 3
GET /en 202 ms 0.000 0 ms 1.1 MB 3
GET /es 206 ms 0.000 0 ms 1.1 MB 3
GET /en/call 168 ms 0.677 0 ms 257.2 KB 3
GET /es/call 192 ms 0.667 0 ms 257.3 KB 3
GET /en/results/audit-probe 472 ms 0.180 0 ms 248.7 KB 3
GET /__spa-fallback-probe 192 ms 0.000 0 ms 238.5 KB 3

Advice

Performance

  • GET /: reduce p95 time to first byte (110ms) toward 50ms.
  • GET /es: reduce p95 time to first byte (102ms) toward 50ms.
  • GET /en/call: reduce p95 time to first byte (114ms) toward 50ms.
  • GET /en/call: Cumulative Layout Shift is 0.677 — reduce unstable layout toward 0.1.
  • GET /es/call: reduce p95 time to first byte (88ms) toward 50ms.
  • GET /es/call: Cumulative Layout Shift is 0.667 — reduce unstable layout toward 0.1.
  • GET /en/results/audit-probe: reduce p95 time to first byte (90ms) toward 50ms.
  • GET /en/results/audit-probe: Cumulative Layout Shift is 0.180 — reduce unstable layout toward 0.1.
  • GET /__spa-fallback-probe: reduce p95 time to first byte (101ms) toward 50ms.

Efficiency

  • GET /: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /: the rendered page transfers 1078KB including runtime-injected resources — trim toward 800KB.
  • GET /en: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /en: the rendered page transfers 1077KB including runtime-injected resources — trim toward 800KB.
  • GET /es: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /es: the rendered page transfers 1084KB including runtime-injected resources — trim toward 800KB.
  • GET /en/call: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /es/call: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /en/results/audit-probe: 2 render-blocking resources in <head> — defer or inline the non-critical ones.
  • GET /__spa-fallback-probe: 2 render-blocking resources in <head> — defer or inline the non-critical ones.

Security

  • GET /: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /en: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /es: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /en/call: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /es/call: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /en/results/audit-probe: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.
  • GET /__spa-fallback-probe: Content-Security-Policy is report-only — promote it to enforcing once the reports are clean.

Accessibility

  • GET /: 3 of 7 form controls have no <label for>, aria-label or aria-labelledby.
  • GET /en: 3 of 7 form controls have no <label for>, aria-label or aria-labelledby.
  • GET /es: 3 of 7 form controls have no <label for>, aria-label or aria-labelledby.
  • GET /en/call: heading outline: 1 skipped heading level.
  • GET /es/call: heading outline: 1 skipped heading level.