Google's Page Speed Insights measures the performance of a page for mobile devices and desktop devices. It fetches the url twice, once with a mobile user-agent, and once with a desktop-user agent.
The PageSpeed Score ranges from 0 to 100 points. A higher score is better and a score of 85 or above indicates that the page is performing well. Please note that PageSpeed Insights is being continually improved and so the score will change as we add new rules or improve our analysis.
Above the fold content is some thing that appears on screen's worth, anything that you don't scroll. This is completely related to Designing part, so we'll not concentrate on this in this post.
Time to full page load depend upon the following factors.
In the current post, we'll try to know the factors which cause the issues for the above 7 factors.
The programmatic cause of over server response time is querying the DB. This can be of using Unused/ unwanted queries and Using more queries for getting the result. Unused query means trying the get the data which is not at all being used in the view. Unwanted query means querying the DB for the data which is already there in our hands.
Compression allows your web server to provide smaller file sizes that load faster for your website users. To enable compression for the page we use 'Django-Compressor'.
When PageSpeed Insights detects images on the page, those can be optimized to reduce their filesize without significantly impacting their visual quality. Images often account for most of the downloaded bytes on a page. As a result, optimizing images can often yield some of the largest byte savings and performance improvements.
Leverage browser caching means, setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network. Generally we'll load either static images or the images those were being served from the 3rd party resources.
Minification CSS, JS and HTML refers to the process of removing unnecessary or redundant data without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on.
We'll learn the techniques of how to overcome the above problems in the next blog post.