# Performance Audit

> Analyze web and backend performance using Web Vitals, network timing, and Node.js metrics. Use when the user asks about page performance, load times, Core Web Vitals (LCP, CLS, INP), slow pages, backend bottlenecks, or SEO performance factors.

- Skill: `ironbee-ai/performance-audit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ironbee-ai/performance-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ironbee-ai/performance-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: ironbee-ai (https://skillmd.com/u/ironbee-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ironbee-ai/performance-audit

---


# Performance Audit Skill

Analyze web page performance using Web Vitals and network timing metrics.

## When to Use

This skill activates when:
- User asks about page performance or speed
- User wants to optimize load times
- User mentions slow page, slow API, or poor user experience
- User needs Core Web Vitals metrics
- User asks about backend bottlenecks or TTFB
- User asks about SEO performance factors

## Capabilities

### Web Vitals Analysis
```bash
ironbee-browser-devtools-cli o11y get-web-vitals
ironbee-browser-devtools-cli --json o11y get-web-vitals
ironbee-browser-devtools-cli --json o11y get-web-vitals --wait-ms 3000
ironbee-browser-devtools-cli --json o11y get-web-vitals --include-debug
```

### Network Performance
```bash
ironbee-browser-devtools-cli --json o11y get-http-requests
ironbee-browser-devtools-cli --json o11y get-http-requests --resource-type script
ironbee-browser-devtools-cli --json o11y get-http-requests --resource-type stylesheet
ironbee-browser-devtools-cli --json o11y get-http-requests --status '{"min":400}'
```

### Visual Analysis
```bash
ironbee-browser-devtools-cli content take-screenshot --name "above-fold"
ironbee-browser-devtools-cli content take-screenshot --name "full-page" --full-page
```

## Performance Thresholds

| Metric | Good | Needs Work | Poor |
|--------|------|------------|------|
| LCP | ≤2.5s | 2.5-4s | >4s |
| INP | ≤200ms | 200-500ms | >500ms |
| CLS | ≤0.1 | 0.1-0.25 | >0.25 |
| TTFB | ≤800ms | 800-1800ms | >1800ms |
| FCP | ≤1.8s | 1.8-3s | >3s |

## Audit Workflow

```bash
SESSION="--session-id perf-audit"

# 1. Navigate to page
ironbee-browser-devtools-cli $SESSION navigation go-to --url "https://example.com"

# 2. Wait for page to settle
ironbee-browser-devtools-cli $SESSION sync wait-for-network-idle

# 3. Get Web Vitals
ironbee-browser-devtools-cli $SESSION --json o11y get-web-vitals --wait-ms 2000

# 4. Analyze network requests
ironbee-browser-devtools-cli $SESSION --json o11y get-http-requests

# 5. Check for console errors
ironbee-browser-devtools-cli $SESSION --json o11y get-console-messages --type warning

# 6. Take screenshot for reference
ironbee-browser-devtools-cli $SESSION content take-screenshot --name "performance-audit"

# 7. Cleanup
ironbee-browser-devtools-cli session delete perf-audit
```

## Detailed Analysis

### Check Large Resources
```bash
# Filter by type (one at a time: document, stylesheet, image, script, xhr, fetch, etc.)
ironbee-browser-devtools-cli --json o11y get-http-requests --resource-type script
ironbee-browser-devtools-cli --json o11y get-http-requests --resource-type stylesheet
ironbee-browser-devtools-cli --json o11y get-http-requests --resource-type image
```

### Check Slow Requests
```bash
ironbee-browser-devtools-cli --json o11y get-http-requests
# Look for requests with high timing values
```

## Backend Performance (ironbee-node-devtools-cli)

When TTFB or API latency suggests backend bottlenecks, inspect the Node.js process:

```bash
# Connect to API/server process
ironbee-node-devtools-cli --session-id perf debug connect --pid 12345

# Tracepoint on slow handler to capture call context
ironbee-node-devtools-cli --session-id perf debug put-tracepoint \
  --url-pattern "routes/heavy.ts" \
  --line-number 30
```

## Common Issues

- Large unoptimized images
- Render-blocking CSS/JS
- Too many HTTP requests
- Slow server response (TTFB)
- Layout shifts from dynamic content
- Uncompressed resources
- Missing caching headers
- Third-party scripts blocking main thread

## Best Practices

1. **Run multiple times** for consistent results
2. **Wait for network idle** before measuring
3. **Use --wait-ms** for LCP/CLS to settle
4. **Check network requests** for slow/large resources
5. **Take screenshots** at different load stages
6. **Test on different network conditions** (throttle if needed)
7. **Compare before/after** for optimization validation

