Performance Optimization Testing Checklist
Slow apps lose users. AI-generated code often includes unoptimized images, unnecessary re-renders, and bloated bundles that make your app feel sluggish. This checklist helps you identify and fix the performance issues that drive users away.
Last updated: 2026-03-14
Page Load Performance
Largest Contentful Paint is under 2.5 seconds
Measure LCP on key pages using Lighthouse or PageSpeed Insights and optimize if it exceeds the threshold.
First Input Delay is under 100 milliseconds
Verify that the page responds to user interactions quickly after loading, without long JavaScript execution blocking input.
Cumulative Layout Shift is under 0.1
Check that page content does not shift around during loading, especially images, ads, and dynamically loaded elements.
Time to Interactive is under 3.8 seconds
Measure the time from navigation start until the page is fully interactive on a mid-range mobile device.
Asset Optimization
Images are properly compressed and sized
Verify that images are served in modern formats like WebP, are appropriately dimensioned, and use lazy loading.
JavaScript bundle size is minimized
Check the total JavaScript download size and verify that code splitting and tree shaking are working correctly.
CSS is not blocking rendering unnecessarily
Verify that critical CSS is inlined and non-critical CSS is loaded asynchronously.
Fonts are loaded efficiently
Check that web fonts use font-display swap, are subsetted to needed characters, and are preloaded.
Third-party scripts are loaded asynchronously
Verify that analytics, chat widgets, and other third-party scripts do not block page rendering.
Runtime Performance
Scrolling is smooth at 60fps
Scroll through long pages and lists while monitoring frame rate to catch any janky rendering.
Animations do not cause layout thrashing
Check that animations use transform and opacity rather than properties that trigger layout recalculations.
Lists and tables handle large datasets efficiently
Load pages with hundreds of items and verify the app remains responsive without freezing or excessive memory usage.
No memory leaks during extended usage
Navigate between pages repeatedly and monitor memory usage to verify it does not grow unbounded.
Network and Caching
API responses are cached appropriately
Verify that GET requests use proper cache headers and that stale data does not persist after mutations.
Static assets have long cache lifetimes
Check that CSS, JS, and image files have far-future cache expiry headers with content-based filenames for cache busting.
No unnecessary network requests on page load
Monitor the network tab and verify that every request on page load is necessary for the initial view.
API calls are batched where possible
Check that the app does not make dozens of individual API calls when a single batched request would suffice.
Frequently Asked Questions
What performance score should I aim for in Lighthouse?
Aim for a Lighthouse performance score of 90 or above on desktop and 70 or above on mobile. AI-generated apps typically score in the 40-60 range on mobile before optimization.
Which performance issues matter most for user experience?
Largest Contentful Paint and First Input Delay have the biggest impact on perceived performance. Users notice slow page loads and unresponsive interactions more than any other performance metric.
Let human testers run through this checklist for you
Submit your app and our testers will find the bugs you missed. Starting at €15 per test.
Related checklists
Mobile Responsive Testing Checklist
Mobile responsive testing checklist for AI-generated web apps. Verify layouts, touch interactions, and performance across devices and screen sizes.
Read moreSEO Audit Checklist
Technical SEO checklist for AI-built web applications. Cover meta tags, structured data, sitemaps, page speed, and crawlability for better rankings.
Read moreProgressive Web App Testing Checklist
Progressive web app testing checklist covering offline support, installation, push notifications, and service worker behavior for AI-generated PWAs.
Read more