WordPress
Marketing site CWV remediation
Five-page WordPress marketing site stuck in "Needs Improvement" for LCP. Image optimization, critical CSS extraction, and CDN configuration brought LCP from 3.4s to 1.9s in two weeks.
For Core Web Vitals work
PSI gives you the numbers. This tool tells you what to do with them. Enter your LCP, INP, and CLS, pick your stack, and get a ranked fix list with realistic effort estimates and cost ranges at OST's $65/hour blended rate.
How we calibrated the numbers
Effort ranges come from real OST work across stacks. Each example sits in a different starting condition so you can see what realistic improvement looks like.
WordPress
Five-page WordPress marketing site stuck in "Needs Improvement" for LCP. Image optimization, critical CSS extraction, and CDN configuration brought LCP from 3.4s to 1.9s in two weeks.
OpenCart e-commerce
OpenCart catalog with 20,000+ products. JS bundle audit, deferred third-party scripts, and lazy-loaded product images cut INP from 480ms to 180ms across mobile.
Drupal multi-site
Drupal multi-site network with persistent layout shift on article pages. Reserved image dimensions, font-display tuning, and ad slot pre-allocation dropped CLS from 0.28 to 0.06.
Methodology
Every metric is scored against Google's official Core Web Vitals thresholds (CrUX 75th percentile, mobile-first):
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | ≤ 4.0s | > 4.0s |
| INP (Interaction to Next Paint) | ≤ 200ms | ≤ 500ms | > 500ms |
| CLS (Cumulative Layout Shift) | ≤ 0.10 | ≤ 0.25 | > 0.25 |
For each metric outside the Good threshold, the tool generates candidate fixes from a stack-specific catalog. WordPress sites get cache plugin and image optimization recommendations. Drupal gets BigPipe and Twig template tuning. React apps get bundle splitting and hydration deferral. Each fix carries an effort estimate (hours) and an expected impact rating.
The top three are picked using a simple impact-per-hour score. We do not optimize for "easiest wins" because those rarely fix the underlying issue. We optimize for the fix that moves the needle most per engineering hour.
The deeper version pulls your CrUX history, profiles your actual code paths, identifies the third-party scripts holding you back, and produces a milestone-tracked roadmap. 60 minutes, includes a written report.