Performance system

Core Web Vitals field debugging for SEO

If your page is useful but feels slow or jumpy, readers leave before they reach the next step. This workflow starts with field signals, then narrows the fix to the most likely cause.

Start with a field-first triage

  1. Pick one URL: the page with the biggest organic opportunity or the clearest reader drop-off.
  2. Confirm the canonical: debug the exact URL Google indexes and readers land on.
  3. Decide the goal: help more readers stay engaged or improve time-to-interaction, not just Lighthouse score.
  4. Ship one fix: measure, then move to the next bottleneck.

LCP: the page feels loaded late

LCP is usually a hero image, large heading, or above-the-fold block. Fix the biggest rendering blocker first.

INP: the page reacts slowly to interaction

INP gets worse when the main thread is busy during clicks, typing, or taps. The fastest fix is often deleting or deferring work.

CLS: the page shifts while loading

CLS is almost always missing space reservations: images without dimensions, injected content, or fonts swapping without a stable fallback.

Copy a one-page diagnosis template

Use this as the minimal note for a Core Web Vitals fix. Record one change, one metric, one outcome.

# Core Web Vitals diagnosis

## URL
- Canonical URL:
- Device focus: mobile / desktop

## Current signals
- LCP (target: <= 2500ms):
- INP (target: <= 200ms):
- CLS (target: <= 0.1):

## Hypothesis
- What is likely causing the regression:

## Change
- Exactly what we will ship:

## Validation (before deploy)
- Repro in dev tools:
- Confirm the LCP element:
- Confirm shifts are reserved:

## Measurement (after deploy)
- Compare the metric to the previous snapshot:
- Check follow-up clicks to the next page: