Free tools Website Performance Audit

For Core Web Vitals work

Performance audit, prioritized.

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.

  • 1 minute to fill out
  • Stack-aware fixes (WordPress, Drupal, React, OpenCart, more)
  • Conservative effort ranges

Audit

Your Core Web Vitals.

Enter the field-data numbers from a recent PSI run.

Used only for the report header. We do not fetch or scan the URL.

seconds

Good ≤ 2.5s. Needs Improvement ≤ 4.0s.

ms

Good ≤ 200ms. Needs Improvement ≤ 500ms.

score

Good ≤ 0.10. Needs Improvement ≤ 0.25.

Mobile is what Google ranks on. Audit mobile first.

Affects which fixes typically move the needle most.

Determines which fixes are realistic for your stack.

OST default is $65/hour.

How we calibrated the numbers

Three real performance engagements.

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

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.

Effort: ~80 hoursLCP: 3.4s → 1.9s

OpenCart e-commerce

Custom commerce platform tuning

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.

Effort: ~160 hoursINP: 480ms → 180ms

Drupal multi-site

Multi-site CLS audit

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.

Effort: ~120 hoursCLS: 0.28 → 0.06

Methodology

How the prioritization works.

Every metric is scored against Google's official Core Web Vitals thresholds (CrUX 75th percentile, mobile-first):

MetricGoodNeeds ImprovementPoor
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.

  • Effort estimates are conservative ranges from real OST engagements. WordPress LCP work typically lands at 40–80 hours. Drupal CLS work at 60–120. React INP work at 80–160.
  • Cost = effort × hourly rate. Default rate is $65/hour. Override the rate to compare against your assumed in-house cost or a competing vendor's rate.
  • What this audit does not include: code-level profiling, CrUX historical trend analysis, third-party script audits, conversion-rate impact modeling. Those need a real engagement.

Want a code-level audit instead of a heuristic?

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.

Ask AI