What this audit checks
Authentication & access
- Strapi API token valid (auth on /api/users/me)
- Public site URL reachable and returns 2xx (PageSpeed can fetch it)
- PageSpeed Insights runPagespeed returns a CrUX field record for the origin (else field cards degrade to lab-only)
- API token has read scope on at least one content-type (content dimension available)
Core Web Vitals (field, mobile)
- CWV pass rate below 50% (most real users having a poor experience)
- LCP p75 above 4000ms (poor) on mobile
- INP p75 above 500ms (poor) on mobile
- CLS p75 above 0.25 (poor) on mobile
- TTFB p75 above 1800ms - headless API-call cascade slowing first byte
Lighthouse & page-weight hygiene (lab)
- Lighthouse performance score below 50 (mobile)
- SEO score below 70 (crawlability / markup regression on rendered pages)
- Accessibility score below 70
- Total page weight above 3MB (over budget)
- Render-blocking resources wasting more than 500ms
- Total Blocking Time above 600ms (heavy main-thread JS from the theme/bundle)
Content delivery & freshness
- Published entries with no updatedAt change in 12 months on high-traffic pages (stale rendered content)
- Single-type entry missing required SEO/meta component (thin rendered head)
- Draft entries published count vs prior period (publishing cadence)
Cross-channel: performance-to-engagement (the killer area)
- Origin CWV pass rate < 50% AND analytics sibling bounce rate trending up - performance eroding engagement
- High-traffic pages (GSC / analytics sibling) failing CWV - perf regression on pages that matter
- Render-blocking / TTFB regression coincides with a conversion drop on the commerce sibling
- Slow Strapi-rendered product/landing pages advertised by an ads sibling - paying for traffic landing on a slow page
Severity thresholds
| Signal | Warn | Critical |
|---|---|---|
cwv_pass_rate_pct | 75 | 50 |
lcp_p75_ms | 2500 | 4000 |
inp_p75_ms | 200 | 500 |
cls_p75 | 0.1 | 0.25 |
ttfb_p75_ms | 800 | 1800 |
lighthouse_performance | 90 | 50 |
lighthouse_seo | 90 | 70 |
lighthouse_accessibility | 90 | 70 |
total_byte_weight | 1572864 | 3145728 |
render_blocking_ms | 200 | 500 |
total_blocking_time_ms | 200 | 600 |
Data sources
GET {base_url}/api/users/me- Auth + token scope sanityGET {base_url}/api/content-type-builder/content-types- Content-type inventory (kind, displayName, counts)GET {base_url}/api/{content_type}- Entry inventory: publishedAt / updatedAt for freshness + cadenceGET https://pagespeedonline.googleapis.com/pagespeedonline/v5/runPagespeed- CrUX field record + Lighthouse lab result + category scores for the public site URL