Claude
Skills
Sign in
Back

audit-speed

Included with Lifetime
$97 forever

Deep Core Web Vitals and page speed audit. Use when the user asks about page speed, Core Web Vitals, LCP, CLS, INP, FCP, TTFB, Lighthouse scores, why a page is slow, performance optimization, or resource size analysis. For broader technical SEO issues, see diagnose-seo.

Ads & Marketing

What this skill does


# Audit Speed

Deep Core Web Vitals audit with root-cause analysis trees and resource
optimization recommendations.

## Core Web Vitals Thresholds

| Metric | Good | Needs Improvement | Poor |
|--------|------|-------------------|------|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5s - 4.0s | > 4.0s |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1 - 0.25 | > 0.25 |
| INP (Interaction to Next Paint) | < 200ms | 200ms - 500ms | > 500ms |
| FCP (First Contentful Paint) | < 1.8s | 1.8s - 3.0s | > 3.0s |
| TTFB (Time to First Byte) | < 800ms | 800ms - 1800ms | > 1800ms |

## Before You Start

Gather this context:

1. **Which pages?** Homepage, key landing pages, or specific slow pages.
2. **Current scores.** If the user has Lighthouse or PageSpeed Insights data, start there.
3. **Tech stack.** CMS, framework, hosting — this determines which optimizations are available.
4. **Known constraints.** Third-party scripts they can't remove, design requirements that limit optimization.

If no data is available, suggest running Google PageSpeed Insights on the key URLs.

## LCP Root-Cause Tree

LCP measures when the largest visible element finishes rendering. Diagnose:

**Is TTFB slow (> 800ms)?**
- → Server response time issue
- Check: hosting quality, CDN configuration, database queries, server-side rendering time
- Fix: upgrade hosting, add CDN, optimize server-side code, enable caching

**Is the LCP element an image?**
- → Image optimization issue
- Check: image format (use WebP/AVIF), image size (serve responsive sizes), lazy loading on LCP image (should NOT be lazy loaded)
- Fix: convert to modern formats, add `width`/`height` attributes, use `fetchpriority="high"` on LCP image, preload the LCP image

**Is the LCP element text?**
- → Font loading issue
- Check: custom fonts blocking render, font file size, font-display strategy
- Fix: use `font-display: swap` or `optional`, preload critical fonts, subset fonts to used characters

**Is render-blocking CSS/JS delaying the LCP?**
- Check: large CSS files in `<head>`, synchronous JS before content
- Fix: inline critical CSS, defer non-critical CSS, async/defer JS

## CLS Root-Cause Tree

CLS measures unexpected layout shifts. Diagnose:

**Do images/videos lack dimensions?**
- → Browser can't reserve space before loading
- Fix: add `width` and `height` attributes to all `<img>` and `<video>` elements, use CSS `aspect-ratio`

**Do ads or embeds inject content?**
- → Dynamic content pushing existing content down
- Fix: reserve space for ad slots with min-height, use `contain-intrinsic-size` for lazy content

**Do fonts cause text reflow?**
- → FOUT (Flash of Unstyled Text) causes layout shift when custom font loads
- Fix: use `font-display: optional` (no swap = no shift), or match fallback font metrics

**Does dynamic content insert above the fold?**
- → Banners, cookie notices, notifications pushing content
- Fix: use overlays instead of inline insertions, or reserve space with fixed-height containers

## INP Root-Cause Tree

INP measures responsiveness to user interactions. Diagnose:

**Is the main thread blocked by long tasks?**
- Check: JavaScript execution time, third-party scripts, large DOM
- Fix: break long tasks with `requestIdleCallback` or `setTimeout`, code-split heavy modules

**Do event handlers do heavy synchronous work?**
- Check: click handlers that trigger large DOM updates, form validation on every keystroke
- Fix: debounce inputs, use requestAnimationFrame for visual updates, offload work to web workers

**Are third-party scripts competing for the main thread?**
- Check: analytics, chat widgets, A/B testing tools, social embeds
- Fix: defer loading until after interaction, use `loading="lazy"` for embeds, consider removing low-value scripts

## Resource Analysis

Break down the total page weight:

| Resource Type | Size | Assessment | Action |
|---|---|---|---|
| HTML | [x] KB | [ok/large] | Compress, reduce inline styles/scripts |
| CSS | [x] KB | [ok/large] | Remove unused CSS, minify, critical CSS extraction |
| JavaScript | [x] KB | [ok/large] | Code-split, tree-shake, defer non-critical |
| Images | [x] KB | [ok/large] | Modern formats, responsive sizes, lazy load below fold |
| Fonts | [x] KB | [ok/large] | Subset, limit families/weights, preload critical |
| Third-party | [x] KB | [ok/large] | Audit necessity, defer, self-host if possible |

**Benchmarks:**
- Total page weight under 1.5 MB is good
- JavaScript under 300 KB (compressed) for most sites
- CSS under 100 KB (compressed)
- First-party fonts under 100 KB

## Output Format

### Speed Audit: [URL or domain]

**Core Web Vitals**

| Metric | Value | Rating | Root Cause |
|--------|-------|--------|------------|
| LCP | [value] | Good / Needs Improvement / Poor | [identified cause] |
| CLS | [value] | ... | ... |
| INP | [value] | ... | ... |
| FCP | [value] | ... | ... |
| TTFB | [value] | ... | ... |

**Resource Breakdown**
[Table from Resource Analysis]

**Priority Fixes**

For each failing metric, ordered by impact:

1. **[Metric]: [Root cause]**
   - Current: [value]
   - Target: [threshold]
   - Fix: [specific action]
   - Estimated impact: [high/medium/low]

2. ...

**Quick Wins**
List optimizations that require minimal effort:
- [ ] Add `width`/`height` to images
- [ ] Set `fetchpriority="high"` on LCP image
- [ ] Defer non-critical JavaScript
- [ ] ...

---

> **Pro Tip:** Use the free [CWV Impact Calculator](https://seojuice.com/tools/cwv-impact/)
> to estimate the traffic impact of fixing Core Web Vitals, and the
> [Critical CSS Generator](https://seojuice.com/tools/critical-css-generator/) to extract
> above-the-fold CSS. SEOJuice MCP users can run `/seojuice:page-audit [domain] [url]` for
> instant CWV scores, Lighthouse data, and resource breakdowns.

Related in Ads & Marketing