Cache policy |
Serve static assets with an efficient cache policy. A long cache lifetime can speed up repeat visits to your page |
Critical Request Chains |
The Critical Request Chains below show you what resources are loaded with a high priority. Consider reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load. |
Defer unused CSS |
Remove dead rules from stylesheets and defer the loading of CSS not used for above-the-fold content to reduce unnecessary bytes consumed by network activity. |
DOM size |
Browser engineers recommend pages contain fewer than ~1,500 DOM elements. The sweet spot is a tree depth < 32 elements and fewer than 60 children/parent element. A large DOM can increase memory usage, cause longer style calculations, and produce costly layout reflows. |
First Contentful Paint |
First Contentful Paint marks the time at which the first text or image is painted. |
First CPU Idle |
First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. |
First Meaningful Paint |
First Meaningful Paint measures when the primary content of a page is visible. |
Input Latency |
Input responsiveness is a key factor in how users perceive the performance of your app. 100ms to respon, any longer than that, and the user perceives the app as laggy. |
JavaScript Bootup Time |
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. |
Minify CSS |
Minifying CSS files can reduce network payload sizes. |
Network Payloads |
Large network payloads cost users real money and are highly correlated with long load times. |
Offscreen Images |
Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. |
Optimize Images |
Optimized images load faster and consume less cellular data. |
Page redirects |
Redirects introduce additional delays before the page can be loaded. |
Preload key requests |
Consider using to prioritize fetching resources that are currently requested later in page load. |
Properly Size Images |
Ideally, your page should never serve images that are larger than the version that's rendered on the user's screen. Anything larger than that just results in wasted bytes and slows down page load time. |
Render-Blocking Resources |
Fast page loads result in higher user engagement, more pageviews, and improved conversion. You can improve your page load speed by inlining links and scripts that are required for first paint, and deferring those that aren't. |
Server Response Times |
Time To First Byte identifies the time at which your server sends a response. |
Speed Index |
Speed Index shows how quickly the contents of a page are visibly populated. |
Serve Images in Next-Gen Formats |
Image formats like JPEG 2000, JPEG XR, and WebP often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. |
Text Compression |
Text compression minimizes the byte size of network responses that include text content. Less bytes downloaded means faster page loads. |
Time to Interactive |
Time to interactive is the amount of time it takes for the page to become fully interactive. |
User Timing Marks and Measures |
Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. |