96Overall

Lugh Frontend Health

https://lughonline.com · 2026-09-14T04:18:40.923Z

Category scores

Performance99
ReliabilityN/A
Contract100
Efficiency100
Security90
SEO96
Accessibility89

Run overview

7 pages audited.

16 recommendations generated.

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

Pages

Pagep50p95p99SizeScore
GET / 32 ms 37 ms 37 ms 1.6 KB 97
GET /en/ 28 ms 31 ms 31 ms 2.3 KB 97
GET /es/ 27 ms 30 ms 31 ms 2.3 KB 97
GET /en/call/ 29 ms 34 ms 36 ms 2.3 KB 98
GET /es/call/ 29 ms 49 ms 78 ms 2.3 KB 98
GET /en/results/audit-probe 33 ms 39 ms 40 ms 1.6 KB 93
GET /__spa-fallback-probe 34 ms 45 ms 46 ms 1.6 KB 98

Assets

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

Largest assetsKindEncBlockingStatusSize
/assets/index-w1Ztt0G9.js script br No 200 349.3 KB
/fonts/playfair-display.woff2 font No 200 37.6 KB
https://static.cloudflareinsights.com/beacon.min.js script gzip No 200 29.6 KB
/assets/index-HryJ-STP.css style br Yes 200 24.9 KB
/fonts/crimson-400.woff2 font No 200 16.3 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
GET /es/ es Yes Yes Yes 7 3
GET /en/call/ en Yes Yes Yes 7 3
GET /es/call/ es Yes Yes Yes 7 3
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 / 234 ms 0.000 0 ms 801.1 KB 3
GET /en/ 192 ms 0.000 0 ms 798.8 KB 3
GET /es/ 194 ms 0.000 0 ms 795.3 KB 3
GET /en/call/ 200 ms 0.000 0 ms 215.2 KB 3
GET /es/call/ 190 ms 0.000 0 ms 215.3 KB 3
GET /en/results/audit-probe 334 ms 0.183 0 ms 216.9 KB 3
GET /__spa-fallback-probe 126 ms 0.000 0 ms 209.7 KB 3

Advice

Performance

  • GET /en/results/audit-probe: Cumulative Layout Shift is 0.183 — reduce unstable layout toward 0.1.

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.

SEO

  • GET /en/: 3 of 4 title/description/h1/canonical signals are present in both the served shell and rendered DOM (missing from the served shell: h1).
  • GET /es/: 3 of 4 title/description/h1/canonical signals are present in both the served shell and rendered DOM (missing from the served shell: h1).
  • GET /en/call/: 3 of 4 title/description/h1/canonical signals are present in both the served shell and rendered DOM (missing from the served shell: h1).
  • GET /es/call/: 3 of 4 title/description/h1/canonical signals are present in both the served shell and rendered DOM (missing from the served shell: h1).

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/results/audit-probe: heading outline: 0 <h1> elements (expected exactly 1).