Monthly Performance Audit Checklist
A complete monthly checklist for auditing your website's performance. Copy it, use it, and keep your site fast year-round.
BadPageSpeed Team· Performance EngineeringJune 20, 20264 min read
Performance isn't a one-time fix — it's an ongoing practice. Use this monthly checklist to catch regressions before they impact users and revenue.
Weekly Quick Check (5 Minutes)
- Check automated monitoring dashboard for score drops
- Review any performance alert emails
- Spot-check top 3 landing pages in Lighthouse
Monthly Deep Audit (60-90 Minutes)
1. Core Web Vitals Review
Run Lighthouse on your top 5 pages (mobile):
- Homepage
- Most popular landing page
- Product/pricing page
- Blog index
- Conversion page (signup/checkout)
Record scores in a spreadsheet:
| Page | LCP | INP | CLS | Score | Last Month |
|---|---|---|---|---|---|
| Homepage | |||||
| Landing | |||||
| Pricing | |||||
| Blog | |||||
| Signup |
2. Third-Party Script Audit
- List all third-party scripts loading on your site
- Check if any new scripts were added (marketing team often adds without telling engineering)
- Verify each script is still needed and actively used
- Check for duplicate analytics (common: GA4 + GTM GA4 = double counting)
- Test removing any script that hasn't been reviewed in 3 months
3. Image Audit
- Check for any new unoptimized images uploaded
- Verify new images use WebP/AVIF format
- Check for oversized images (3000px wide for a 300px thumbnail)
- Verify lazy loading on below-fold images
- Check that hero/LCP images are NOT lazy loaded
4. JavaScript Bundle Check
- Check total JS bundle size (should be under 200KB compressed)
- Review any new dependencies added to package.json
- Check for unused dependencies
- Verify code splitting is working (check network tab)
5. CSS Review
- Check total CSS size (should be under 100KB compressed)
- Look for unused CSS (Coverage tab in DevTools)
- Verify critical CSS is inlined or preloaded
- Check for render-blocking stylesheets
6. Caching Verification
- Check Cache-Control headers on static assets
- Verify CDN cache hit rate (should be >90%)
- Test a repeat visit — are assets served from cache?
- Check service worker (if applicable) isn't caching stale content
7. Font Check
- Verify font-display: swap on all custom fonts
- Check that fonts are preloaded
- Confirm no more than 2-3 font families, 3-4 weights
- Check for FOIT (Flash of Invisible Text) on slow connections
8. Layout Stability
- Check CLS on all key pages
- Verify all images have width/height attributes
- Check for late-loading ads or banners causing shifts
- Test dynamic content injection (cookie banners, chat widgets)
Quarterly Deep Dive (4 Hours)
Infrastructure Review
- Review hosting performance (TTFB trends)
- Check CDN configuration and edge caching
- Review database query performance (if applicable)
- Test from multiple geographic locations
Competitive Analysis
- Run Lighthouse on top 3 competitors
- Compare Core Web Vitals using CrUX data
- Identify areas where competitors are faster
- Set targets to match or beat their scores
Performance Budget Review
- Review performance budget targets
- Check if any budgets have been exceeded
- Adjust budgets based on new features/requirements
- Present performance report to stakeholders
Automation Recommendations
Automate What You Can
- Monitoring: Use BadPageSpeed for automated scheduled scans
- Build checks: Add Lighthouse CI to your deployment pipeline
- Image optimization: Use a build-time image optimization plugin
- Bundle analysis: Run bundle analyzer monthly
- Alerts: Set up email alerts for score drops
Track What You Can't Automate
- Third-party script decisions
- Performance budget negotiations
- Architecture decisions
- Vendor evaluations
Start Your Performance Routine
BadPageSpeed automates the monitoring piece so you can focus on the analysis and action items.
Ready to stop wasting ad spend?
Track your landing page performance, monitor Core Web Vitals, and calculate exactly how much slow pages cost you.
Start Free — No Credit Card