web-performance-audit
Conduct comprehensive web performance audits. Measure page speed, identify bottlenecks, and recommend optimizations to improve user experience and SEO.
$ Installieren
git clone https://github.com/aj-geddes/useful-ai-prompts /tmp/useful-ai-prompts && cp -r /tmp/useful-ai-prompts/skills/web-performance-audit ~/.claude/skills/useful-ai-prompts// tip: Run this command in your terminal to install the skill
SKILL.md
name: web-performance-audit description: Conduct comprehensive web performance audits. Measure page speed, identify bottlenecks, and recommend optimizations to improve user experience and SEO.
Web Performance Audit
Overview
Web performance audits measure load times, identify bottlenecks, and guide optimization efforts to create faster, better user experiences.
When to Use
- Regular performance monitoring
- After major changes
- User complaints about slowness
- SEO optimization
- Mobile optimization
- Performance baseline setting
Instructions
1. Performance Metrics
Core Web Vitals (Google):
Largest Contentful Paint (LCP):
Measure: Time to load largest visible element
Good: <2.5 seconds
Poor: >4 seconds
Impacts: User perception of speed
First Input Delay (FID):
Measure: Time from user input to response
Good: <100 milliseconds
Poor: >300 milliseconds
Impacts: Responsiveness
Cumulative Layout Shift (CLS):
Measure: Visual stability (unexpected layout shifts)
Good: <0.1
Poor: >0.25
Impacts: User frustration
---
Additional Metrics:
First Contentful Paint (FCP):
Measure: First visible content appears
Target: <1.8 seconds
Time to Interactive (TTI):
Measure: Page is fully interactive
Target: <3.8 seconds
Total Blocking Time (TBT):
Measure: JavaScript blocking time
Target: <300ms
Interaction to Next Paint (INP):
Measure: Latency of user interactions
Target: <200ms
---
Measurement Tools:
- Google PageSpeed Insights
- Lighthouse (Chrome DevTools)
- WebPageTest
- New Relic
- Datadog
- GTmetrix
2. Performance Analysis Process
# Conduct performance audit
class PerformanceAudit:
def measure_performance(self, url):
"""Baseline measurements"""
return {
'desktop_metrics': self.run_lighthouse_desktop(url),
'mobile_metrics': self.run_lighthouse_mobile(url),
'field_data': self.get_field_data(url), # Real user data
'lab_data': self.run_synthetic_tests(url), # Lab measurements
'comparative': self.compare_to_competitors(url)
}
def identify_opportunities(self, metrics):
"""Find improvement areas"""
opportunities = []
if metrics['fcp'] > 1.8:
opportunities.append({
'issue': 'First Contentful Paint slow',
'current': metrics['fcp'],
'target': 1.8,
'impact': 'High',
'solutions': [
'Reduce CSS/JS for critical path',
'Preload critical fonts',
'Defer non-critical JavaScript'
]
})
if metrics['cls'] > 0.1:
opportunities.append({
'issue': 'Cumulative Layout Shift high',
'current': metrics['cls'],
'target': 0.1,
'impact': 'High',
'solutions': [
'Reserve space for dynamic content',
'Avoid inserting content above existing',
'Use transform for animations'
]
})
return sorted(opportunities, key=lambda x: x['impact'])
def create_audit_report(self, metrics, opportunities):
"""Generate comprehensive report"""
return {
'overall_score': self.calculate_score(metrics),
'current_metrics': metrics,
'target_metrics': self.define_targets(metrics),
'opportunities': opportunities,
'quick_wins': self.identify_quick_wins(opportunities),
'timeline': self.estimate_effort(opportunities),
'recommendations': self.prioritize_recommendations(opportunities)
}
3. Optimization Strategies
Performance Optimization Roadmap:
Quick Wins (1-2 days):
- Enable gzip compression
- Minify CSS/JavaScript
- Compress images (lossless)
- Remove unused CSS
- Defer non-critical JavaScript
- Preload critical fonts
Medium Effort (1-2 weeks):
- Implement lazy loading
- Code splitting (split routes)
- Service worker for caching
- Image optimization (WebP, srcset)
- Critical CSS extraction
- HTTP/2 server push
Long-term (1-3 months):
- Migrate to faster framework
- Database query optimization
- Content delivery optimization
- Architecture refactor
- CDN implementation
- Build process optimization
---
Optimization Checklist:
Network:
[ ] Gzip compression enabled
[ ] Brotli compression enabled
[ ] HTTP/2 enabled
[ ] CDN configured
[ ] Browser caching configured
[ ] Asset fingerprinting
JavaScript:
[ ] Code split by route
[ ] Unused code removed
[ ] Minified and mangled
[ ] Source maps generated
[ ] Deferred non-critical
CSS:
[ ] Critical CSS extracted
[ ] Unused CSS removed
[ ] Minified
[ ] Preloaded fonts
[ ] WOFF2 format used
Images:
[ ] Optimized and compressed
[ ] WebP with fallback
[ ] Responsive srcset
[ ] Lazy loading
[ ] SVG where possible
4. Monitoring & Continuous Improvement
// Setup performance monitoring
class PerformanceMonitoring {
setupMonitoring() {
return {
tools: [
'Google Analytics (Web Vitals)',
'Datadog or New Relic',
'Sentry for errors',
'Custom monitoring'
],
metrics: [
'LCP (Largest Contentful Paint)',
'FID (First Input Delay)',
'CLS (Cumulative Layout Shift)',
'FCP (First Contentful Paint)',
'TTI (Time to Interactive)'
],
frequency: 'Real-time monitoring',
alerts: {
lcp_degradation: 'Alert if >3 seconds',
fid_degradation: 'Alert if >200ms',
cls_degradation: 'Alert if >0.2'
}
};
}
defineBaselines(metrics) {
return {
baseline: {
lcp: metrics.lcp,
fid: metrics.fid,
cls: metrics.cls
},
targets: {
lcp: metrics.lcp * 0.9, // 10% improvement
fid: metrics.fid * 0.8,
cls: metrics.cls * 0.8
},
review_frequency: 'Weekly',
improvement_tracking: 'Month-over-month trends'
};
}
setupPerformanceBudget() {
return {
javascript: {
target: '150KB gzipped',
monitor: 'Every build',
alert: 'If exceeds 160KB'
},
css: {
target: '50KB gzipped',
monitor: 'Every build',
alert: 'If exceeds 55KB'
},
images: {
target: '500KB total',
monitor: 'Every deployment',
alert: 'If exceeds 550KB'
}
};
}
}
Best Practices
✅ DO
- Measure regularly (not just once)
- Use field data (real users) + lab data
- Focus on Core Web Vitals
- Set realistic targets
- Prioritize by impact
- Monitor continuously
- Setup performance budgets
- Test on slow networks
- Include mobile in testing
- Document improvements
❌ DON'T
- Ignore field data
- Focus on one metric only
- Set impossible targets
- Optimize without measurement
- Forget about images
- Ignore JavaScript costs
- Skip mobile performance
- Over-optimize prematurely
- Forget about monitoring
- Expect improvements without effort
Performance Tips
- Start with Lighthouse audit (free, in DevTools)
- Use WebPageTest for detailed analysis
- Test on 3G mobile to find real bottlenecks
- Prioritize LCP optimization first
- Create performance budget for teams
Repository

aj-geddes
Author
aj-geddes/useful-ai-prompts/skills/web-performance-audit
25
Stars
1
Forks
Updated6d ago
Added1w ago