Performance audits can go in a hundred directions. Without structure, you spend hours measuring things that do not matter. Our ten-item checklist has identified the primary bottleneck in forty-three out of fifty audits.
Check one: unoptimized images. Accounts for 35 percent of problems. Symptoms: slow load despite fast TTFB, large LCP values. Fix: WebP/AVIF conversion, responsive srcset, lazy-loading below the fold. We have seen LCP drop from four seconds to one from this alone.
Check two: excessive JavaScript bundles. Open coverage tool. Below 60 percent utilization means significant dead code. Common culprits: full lodash imports, charting libraries on chartless pages, render-blocking marketing scripts.
Check three: render-blocking resources. Check the waterfall for CSS and JS blocking initial render. Common: Google Fonts taking 300ms. Fix: self-host fonts, inline critical CSS, defer the rest.
Check four: server response time. TTFB exceeding 600ms points server-side. Trace to slow database queries, external API calls, or missing caching.
Check five: third-party scripts. Count third-party domains. Marketing teams pile on analytics, chat widgets, heatmaps, and retargeting. We regularly find fifteen to twenty scripts adding two to three seconds collectively. Audit, remove unused, lazy-load non-critical, load async.
Check six: layout shifts. Run Lighthouse for CLS. Usually caused by images without dimensions, dynamically injected content, or font reflow. Fix: explicit width/height, placeholder space, font-display swap.
Check seven: database query performance. Enable query logging, look for N+1 queries, missing indexes, overly broad fetches.
Check eight: caching headers. Surprisingly many apps serve hashed static assets with no-cache. Set one-year cache with content hashing for automatic busting.
Check nine: API response payload size. Check if endpoints return fifty fields when five are displayed. Implement field selection or dedicated list endpoints.
Check ten: connection count. Browsers limit concurrent connections per domain. Thirty requests during load creates a waterfall. Use HTTP/2, bundle requests, preload critical resources.
Checks one through five identify the bottleneck about 80 percent of the time. Full checklist takes two to three hours.
About the Author
Fordel Studios
AI-native app development for startups and growing teams. 14+ years of experience shipping production software.
We love talking shop. If this article resonated, let's connect.
Start a ConversationTell us about your project. We'll give you honest feedback on scope, timeline, and whether we're the right fit.
Start a Conversation