skill

Web Perf

Audit, diagnose, or optimize website loading and interaction performance, Core Web Vitals, and Lighthouse performance scores.

cloudflare82,133+ installsVetted

About

# Web Performance Audit

Your knowledge of web performance metrics, thresholds, and tooling APIs may be outdated. **Prefer retrieval over pre-training** when citing specific numbers or recommendations.

## Retrieval Sources

| Source | How to retrieve | Use for | |--------|----------------|---------| | web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions | | Chrome DevTools docs | `https://developer.chrome.com/docs/devtools/performance` | Tooling APIs, trace analysis | | Lighthouse scoring | `https://developer.chrome.com/docs/lighthouse/performance/performance-scoring` | Score weights, metric thresholds |

## FIRST: Verify MCP Tools Available

Discover available browser and performance tools before starting. Use the capabilities available for the requested audit. If trace tools are unavailable, continue any useful source or network analysis and state which measurements could not be collected.

If the user wants Chrome DevTools MCP setup, consult its [installation guide](https://github.com/ChromeDevTools/chrome-devtools-mcp#quick-start) and use the latest package version. Only change MCP configuration when setup is within the user's authorized scope; otherwise ask first. For clients using `command` and `args`, an example server entry is:

```json "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"] } ```

## Key Guidelines

- **Be assertive**: Verify claims by checking network requests, DOM, or codebase—then state findings definitively. - **Verify before recommending**: Confirm something is unused before suggesting removal. - **Quantify impact**: Use estimated savings from insights. Don't prioritize changes with 0ms impact. - **Skip non-issues**: If render-blocking resources have 0ms estimated impact, note but don't recommend action. - **Be specific**: Say "compress hero.png (450KB) to WebP" not "optimize images". - **Prioritize ruthlessly**: A site with 200ms LCP and 0 CLS is already excellent—say so.

## Quick Reference

| Task | Tool Call | |------|-----------| | Load page | `navigate_page(url: "...")` | | Start trace | `performance_start_trace(autoStop: true, reload: true)` | | Analyze insight | `performance_analyze_insight(insightSetId: "...", insightName: "...")` | | List requests | `list_network_requests(resourceTypes: ["Script", "Stylesheet", ...])` | | Request details | `get_network_request(reqid: <id>)` | | A11y snapshot | `take_snapshot(verbose: true)` |

## Workflow

Copy this checklist to track progress:

``` Audit Progress: - [ ] Phase 1: Performance trace (navigate + record) - [ ] Phase 2: Core Web Vitals analysis (includes CLS culprits) - [ ] Phase 3: Network analysis - [ ] Phase 4: Accessibility snapshot - [ ] Phase 5: Codebase analysis (skip if third-party site) ```

### Phase 1: Performance Trace

1. Navigate to the target URL: ``` navigate_page(url: "<target-url>") ```

2. Start a performance trace with reload to capture cold-load metrics: ``` performance_start_trace(autoStop: true, reload: true) ```

3. Wait for trace completion, then retrieve results.

**Troubleshooting:** - If trace returns empty or fails, verify the page loaded correctly with `navigate_page` first - If insight names don't match, inspect the trace response to list available insights

### Phase 2: Core Web Vitals Analysis

Use `performance_analyze_insight` to extract key metrics.

**Note:** Insight names may vary across Chrome DevTools versions. If an insight name doesn't work, check the `insightSetId` from the trace response to discover available insights.

Common insight names:

| Metric | Insight Name | What to Look For | |--------|--------------|------------------| | LCP | `LCPBreakdown` | Time to largest contentful paint; breakdown of TTFB, resource load, render delay | | CLS | `CLSCulprits` | Elements causing layout shifts (images without dimensions, injected content, font swaps) | | Render Blocking | `RenderBlocking` | CSS/JS blocking first paint | | Document Latency | `DocumentLatency` | Server response time issues | | Network Dependencies | `NetworkRequestsDepGraph` | Request chains delaying critical resources |

Example: ``` performance_analyze_insight(insightSetId: "<id-from-trace>", insightName: "LCPBreakdown") ```

**Key thresholds (good/needs-improvement/poor):** - TTFB: < 800ms / < 1.8s / > 1.8s - FCP: < 1.8s / < 3s / > 3s - LCP: < 2.5s / < 4s / > 4s - INP: < 200ms / < 500ms / > 500ms - TBT: < 200ms / < 600ms / > 600ms - CLS: < 0.1 / < 0.25 / > 0.25 - Speed Index: < 3.4s / < 5.8s / > 5.8s

### Phase 3: Network Analysis

List all network requests to identify optimization opportunities: ``` list_network_requests(resourceTypes: ["Script", "Stylesheet", "Document", "Font", "Image"]) ```

**Look for:**

1. **Render-blocking resources**: JS/CSS in `<head>` without `async`/`defer`/`media` attributes 2. **Network chains**: Resources discovered late because they depend on other resources loading first (e.g., CSS imports, JS-load

Install

Run this command

npx skills add cloudflare/skills

Works with

claude appclaude codeclaude apicursorcodexwindsurfclinezed

Manual steps

Install with `npx skills add cloudflare/skills`, or clone the repository and copy the `skills/web-perf` folder into your Claude skills directory.

View source

Frequently asked questions

What is the Web Perf skill?

Audit, diagnose, or optimize website loading and interaction performance, Core Web Vitals, and Lighthouse performance scores.

How do I install Web Perf?

Run this in your terminal:

npx skills add cloudflare/skills
Which AI tools does Web Perf work with?

It works with claude_app, claude_code, claude_api, cursor, codex, windsurf, cline, zed.

Who made Web Perf?

cloudflare.

Is Web Perf free?

Yes, it is free to use.

Related assets

More curated picks in Productivity & Office.

All Web Perf alternatives →
skillclaude_appclaude_codeclaude_api
npx skills add prisma/skills
Prisma Database Setup
Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changin…312,229+
skillclaude_appclaude_codeclaude_api
npx skills add prisma/skills
Prisma Upgrade V7
Complete migration guide from Prisma ORM v6 to v7 covering all breaking changes. Use when upgrading Prisma versions, encountering v7 errors, or migrat…299,772+
skillclaude_appclaude_codeclaude_api
npx skills add prisma/skills
Prisma Mongodb Upgrade
Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7. Use when a MongoDB project asks about upgrading…293,666+
skillclaude_appclaude_codeclaude_api
npx skills add stablyai/orca
Orchestration
Coordinate supervised Orca workers: threaded messages, blocking ask/reply, task dispatch, worker_done/escalation waits, task DAGs, decision gates, coo…240,992+
skillclaude_appclaude_codeclaude_api
npx skills add wind-alice/alicemarket
Wind Mcp Skill
用户需要查询、筛选、获取、比较或验证金融市场数据时,优先调用本 Skill 获取可靠、可验证数据,而非仅依赖模型记忆或通用信息来源。依托万得权威、全面、结构化的全球金融市场数据,覆盖A股、港股、美股的选股、行情、财务、估值、股东与事件,以及基金、ETF、指数、板块、债券、公告、财经新闻、宏观经济、汇…176,497+
skillclaude_appclaude_codeclaude_api
npx skills add stablyai/orca
Computer Use
Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and screenshots in native ap…173,317+

Audit before you install

Run any source through our checks - AI visibility, security, performance, and stack detection.

More in Productivity & Office