A systematic speed audit covers everything from server response time to how the browser renders your page — not just one metric in isolation. This guide walks through a complete audit process.
Step 1 — Measure Server Response Time (Time to First Byte)
curl -w "TTFB: %{time_starttransfer}s\n" -o /dev/null -s https://yourdomain.com
Under 200ms is excellent; over 600ms indicates a server-side bottleneck worth investigating — see How to Profile and Optimize Slow Application Requests.
Step 2 — Run a Browser-Based Page Speed Test
Use a web-based page speed testing tool to get a comprehensive breakdown of load time, render-blocking resources, and specific optimization recommendations for the front-end.
Step 3 — Check Compression Is Enabled
curl -H "Accept-Encoding: gzip" -I https://yourdomain.com
Look for a Content-Encoding: gzip header in the response — if missing, see Nginx Performance Tuning: Worker Processes, Caching & Gzip.
Step 4 — Check Caching Headers on Static Assets
curl -I https://yourdomain.com/style.css
Look for Cache-Control and Expires headers — if missing, static assets are being re-downloaded on every visit unnecessarily.
Step 5 — Verify HTTP/2 or HTTP/3 Is Active
curl -I --http2 https://yourdomain.com | head -1
See How to Enable HTTP/2 and HTTP/3 on Nginx if you're still on HTTP/1.1.
Step 6 — Check Image Optimization
Large, unoptimized images are one of the most common causes of slow page loads. Check for:
- Images significantly larger than their displayed size
- Missing modern formats (WebP/AVIF) where the format isn't required to match a specific legacy client
- Missing lazy-loading for below-the-fold images
Step 7 — Check for Render-Blocking Resources
CSS and JavaScript loaded synchronously in the document head can delay initial rendering — page speed testing tools specifically flag these as an optimization opportunity.
Step 8 — Check Database Query Time
For dynamic pages, verify the database isn't the bottleneck — see How to Diagnose a Slow VPS: Complete Performance Checklist and the slow query log.
Step 9 — Test from Multiple Geographic Locations
A site that's fast from a location near your server but slow from other regions suggests a CDN would help — see How to Set Up a CDN in Front of Your VPS.
Step 10 — Test on a Realistic Connection Speed
Most browser dev tools let you throttle the simulated connection speed — test under a "slow 3G" or "4G" profile in addition to your own fast connection, since that better represents many real users.
Speed Audit Checklist
- TTFB under 200ms
- Gzip/Brotli compression enabled
- Static assets have long cache expiry headers
- HTTP/2 or HTTP/3 active
- Images properly sized and optimized
- No unnecessary render-blocking resources
- Database queries reasonably fast (checked via slow query log)
- CDN in place if visitors are geographically distributed
Prioritizing Fixes
Focus on server-side response time first (TTFB) — front-end optimizations matter less if the server itself is slow to respond in the first place.
Related Articles
- Nginx Performance Tuning: Worker Processes, Caching & Gzip
- How to Enable HTTP/2 and HTTP/3 on Nginx
- How to Set Up a CDN in Front of Your VPS
