All Tools

Page Speed Grader

Grade your website's Core Web Vitals — LCP, CLS, FCP, TTFB, and more — for both mobile and desktop. Powered by Google PageSpeed Insights. Enter any URL and get results in seconds.

What are Core Web Vitals?

Core Web Vitals are a set of metrics defined by Google that measure real-world user experience on the web — specifically loading speed, visual stability, and interactivity. Since 2021, Google has used Core Web Vitals as a direct ranking signal. A poor score can push your product page down in search results, while a strong score gives you a competitive edge, especially against bigger sites that are slower to optimize.

Metrics Explained

LCP — Largest Contentful Paint

Good: under 2.5sPoor: over 4s

How fast the largest visible element (hero image, headline) loads. Slow LCP is the most common reason for poor performance scores on indie landing pages.

CLS — Cumulative Layout Shift

Good: under 0.1Poor: over 0.25

Measures how much page elements shift after initial load — e.g. images without defined dimensions or ads that push content down. Annoying for users and penalised by Google.

FCP — First Contentful Paint

Good: under 1.8sPoor: over 3s

How long until the browser first renders any text or image. Affected by server response time and render-blocking resources.

TTFB — Time to First Byte

Good: under 800msPoor: over 1.8s

Server response time. On Vercel (serverless), TTFB can spike if a cold start hits a non-cached route. ISR and caching headers help significantly.

TBT — Total Blocking Time

Good: under 200msPoor: over 600ms

Total time the main thread is blocked by JavaScript. Heavy client-side JS bundles are the main cause — relevant for React/Next.js apps.

Quick Wins for Indie Makers on Vercel / Next.js

  • Add width and height to all <img> tags to prevent CLS.
  • Use next/image instead of raw <img> — it handles lazy loading, WebP conversion, and sizing automatically.
  • Enable ISR (revalidate) on data-heavy pages to avoid cold start TTFB spikes.
  • Move heavy JS to dynamic imports with next/dynamic and loading='lazy'.
  • Host fonts on your domain or use next/font — Google Fonts requests add to FCP.
  • Set proper Cache-Control headers for static assets.