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 costs.

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

Audit

Your Core Web Vitals.

Enter your URL and we'll fetch your real Core Web Vitals from Google (CrUX field data, with lab fallback). You can also type them in manually below.

We fetch real-user performance data for this page via PageSpeed Insights.

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.

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.

LCP: 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.

INP: 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.

CLS: 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.
  • Cost = effort × hourly rate. Adjust the hourly rate to match your internal team costs or compare against different vendor rates.
  • 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.