Performance Audit
Purpose
Identify performance bottlenecks across the full stack — rendering, network, bundle, database, and infrastructure. Produces a profiled baseline, a prioritized bottleneck inventory, and an optimization roadmap with estimated impact for each recommendation.
Inputs
- Application URL or local dev environment access
- Current performance complaints or targets (e.g., "page loads slowly", "LCP > 4s")
- Tech stack details (framework, database, hosting, CDN)
- Traffic profile (approximate users, peak times, geographic distribution)
Process
Step 1: Profile Current Performance Baseline
Run Lighthouse (or equivalent) on key pages. Record Core Web Vitals: LCP, CLS, INP, TTFB. Capture p50, p95, and p99 values where available. Document the baseline as the reference point for all improvements.
Step 2: Identify Render Bottlenecks
Analyze the critical rendering path:
- Largest Contentful Paint — what element is the LCP candidate? Is it blocked by fonts, images, or JS?
- Cumulative Layout Shift — which elements shift? Are dimensions reserved?
- Interaction to Next Paint — which event handlers are slow? Is there long-task blocking?
- Time to First Byte — is the server response slow, or is it DNS/TLS overhead?
Step 3: Analyze Bundle Size and Code Splitting
Inspect the JavaScript and CSS bundles:
- Total bundle size (compressed and uncompressed)
- Largest modules/chunks and their purpose
- Unused code ratio (tree shaking effectiveness)
- Code splitting boundaries — are routes lazy-loaded?
- Third-party script impact (analytics, chat widgets, ads)
Step 4: Audit Database Queries
Review server-side data access patterns:
- Identify N+1 query patterns
- Check for missing indexes on filtered/sorted columns
- Review slow query logs or EXPLAIN plans for high-frequency queries
- Evaluate connection pooling configuration
- Check for unnecessary data fetching (selecting columns not used)
Step 5: Evaluate Network Waterfall
Analyze the network request pattern:
- Total request count and payload size per page load
- Request sequencing — are there blocking chains?
- Compression (gzip/brotli) on text assets
- Image optimization (format, sizing, lazy loading)
- HTTP/2 or HTTP/3 multiplexing usage
Step 6: Assess Core Web Vitals Scores
Compile field data (CrUX) and lab data (Lighthouse) into a scorecard:
- Green/amber/red status for each vital
- Comparison against industry benchmarks
- Mobile vs desktop performance gap
- Geographic performance variance if applicable
Step 7: Recommend Prioritized Optimizations
Rank each finding by impact (estimated improvement) and effort (implementation cost):
- High impact / low effort — do immediately
- High impact / high effort — plan and schedule
- Low impact / low effort — batch together
- Low impact / high effort — skip or defer
Output Format
# Performance Audit: [Application/Page Name]
## Baseline Scorecard
| Metric | Current | Target | Status |
|--------|---------|--------|--------|
| LCP | ... | ... | ... |
| CLS | ... | ... | ... |
| INP | ... | ... | ... |
| TTFB | ... | ... | ... |
| Bundle Size (gzip) | ... | ... | ... |
| Request Count | ... | ... | ... |
## Bottleneck Inventory
### Critical (High Impact)
1. **[Bottleneck name]** — [Description, current metric, estimated improvement]
### Moderate (Medium Impact)
1. **[Bottleneck name]** — [Description, current metric, estimated improvement]
### Minor (Low Impact)
1. **[Bottleneck name]** — [Description, current metric, estimated improvement]
## Optimization Roadmap
| Priority | Optimization | Expected Impact | Effort | Metric Affected |
|----------|-------------|-----------------|--------|-----------------|
| P0 | ... | ... | ... | ... |
| P1 | ... | ... | ... | ... |
| P2 | ... | ... | ... | ... |
## Database Query Findings
| Query/Pattern | Issue | Current Cost | Recommendation |
|--------------|-------|-------------|----------------|
| ... | ... | ... | ... |
## Bundle Analysis
| Chunk | Size (gzip) | Purpose | Optimization |
|-------|-------------|---------|-------------|
| ... | ... | ... | ... |
Quality Checks
- Baseline measurements are recorded with specific numbers, not vague descriptions
- Every bottleneck has a measured current value and an estimated improvement
- Optimizations are prioritized by impact-to-effort ratio
- Core Web Vitals are assessed for both mobile and desktop
- Database queries are reviewed with EXPLAIN plans or equivalent evidence
- Bundle analysis includes both first-party and third-party code
- Network waterfall identifies blocking request chains
- Recommendations include specific implementation steps, not just "optimize X"