Website is not optimized as per Google PageSpeed Insights

Optimize images
Minify Javascript and CSS
Render-Blocking Resources Above the Fold
Leverage Browser Caching

We have made a great plugin to speed up WordPress and increase results on GTmetrix, Google PageSpeed, and Pingdom. Borlabs Cache for WordPress.
For image optimization we recommend tinyPNG (free plugin) https://wordpress.org/plugins/tiny-compress-images/

Hi, Jafferwillson. I have written an article about it, for more detail check this article.Optimize website speed

  1. We use images in the article to provide quality information or describe the article in short time. The image quality also increases page size. Use small images inside of the large image. 800 ×400 size images would be perfect for all screen types. If you have a large image, so optimize image size or use plugin to do this work.

  2. Specify image’s dimensions. While user’s browser displays a page it has to figure out how to layout content around images. If you describe the image’s dimensions on your page so you can make browser’s work easy. The browser won’t do extra to find out the image’s size.

  3. Disable hotlinking of images. What is hotlinking of images? While another website owner uses your page image on their page. So if they copy your image’s URL and link to their page. It causes stealing your bandwidth. By this stealing, your HTTP request is increasing and someone uses site’s bandwidth.

  4. Minify CSS & JavaScript codes. Your template, widget, and plugins, etc., are made through interpreted languages like CSS, JavaScript, etc. But sometimes designers use enters, coma, blank spaces, etc., while designing it. It causes your website size to make bulky. Now you need to minify it. Use some online tools and optimize the file size by 75% in some cases. If you feel this is a bigger task, so you can use WordPress plugins that make your work easier.

  5. Use Browser Caching. If you open any website that uses browser caching. At the first time of opening, that site’s almost data like the design, photo, logo, etc., will be downloaded into the browser cache memory and if you visit again site’s another page, so the page will open as soon as, as your almost data already downloaded into the browser’s memory. Mean only new content will be downloaded. You can use WordPress plugins that make your work much easier.

  6. Delete all plugins that you don’t use. Plugins increase your site bandwidth and Http request. As many plugins you use on a site, so many HTTP requests increase. Average almost WordPress site install one or two useless plugins if you have a useless plugin, so uninstall it.

  7. Use AMP. The Amp is a Google open source project that allows sites to load faster. AMP helps to display a page as soon as. It opens your page lightweight content immediately and heavy material opens after opening lightweight materials. AMP boost site speed, if your site has heavy contents, so Google AMP will be proven to you as a boon. Inside of this, Google gives a higher value to the AMP pages.

  8. Put CSS at the top and JS at the bottom. You need to make your website all above areas () with CSS language’s code. Because CSS code loads fast and displays the page while the page load. Avoid JS as JS code doesn’t display your content while page loading.

  9. Enable Gzip Compression. It is main aspect Gzip compression make your page much faster. If you enable Gzip compression, so your page converts from HTML format to zip format. Today’s browser knows how to convert from zip pages to HTML pages to display the page. There is no side effect of using Gzip compression. Gzip compression reduces page size by 90%. If your page size is 200 KB so zip file size can be 20 KB.

  10. Reduce server response time. Server response time makes your page slow down as if the users open a webpage so server response time plays the main role to open your page. Server response time should be less than 200 milliseconds. You need to know what aspect up your server response time.

  11. Reduce Http request. As every webpage made from various aspects like images, CSS, JavaScript, etc. These aspects increase Http requests. You need to remove these elements.

  12. Use CDN (Content Delivery Network) hosting. CDN hosting distributes your main server load to the local server. It causes your page make fast. Local server distributes page fast as local servers are established nearer to the users. For example, if someone in Korea and wants to display a page (The page use CDN hosting), so it will be done through the local Korean server.

  13. Use a good template. A template is the main source whereat depends on site speed. If you use a bulky template so your page is definitely heavy, so don’t use a bulky template.

  14. Clean up your database. If you are using WordPress, so it could be a deficit. This platform saves your deactivate plugins, post revision, etc., in your draft memory. It increases Http requests. Use WP-Optimize, this plugin clean all of the stuff that you don’t need.

  15. Fix all broken links. Broken links are a drain on bandwidth it causes users leave a site. Hence delete all broken links. Use online tools for finding broken links.

  16. Avoid Html and use PHP. As PHP pages deliver more requests-per-second than static Html pages.

  17. Use stylesheets and don’t use @import. Stylesheets and @import are the site’s code language that describes how documents are presented on screen, in print, or perhaps how they are pronounced. @import use more resource than directly link to your stylesheets. And you get same results through both methods. Hence, don’t use @import it takes more resources than stylesheets.

  18. Disable trackbacks and Pingbacks. It is a feature of WordPress website to notify each other that you’ve linked out their URL in your post. But today’s spammers use this feature to send trackbacks from spam website.

  19. Enable Keep-Alive. This function tells the browsers of users to establish a transmission control protocol connection, all web files will load on a page, once instead of multiple times of requests. Whereby you can optimize page loading time as it stops the useless interaction between the browser and the server.

  20. Images should be loaded one by one. If a user visits a site, so they see primarily above area and then user scroll down the page, if the user has seen the images in the above area so the user won’t abandon a web page. So hence, use lazy load or lazy load by the WP rocket plugin for free. This plugin helps you to make this work more helpful and the image will be open one by one as user current viewport.

  21. Reduce round trip time. Round trip time is that time taken for the user to send a request and the server to respond. If round trip time is high, so the page will be displayed slow. To decrease round trip time decrease the number of unnecessary requests. Use CSS inside of the image.

  22. Minimize Redirects. The redirect is a process that automatically refers visitors from one page to another page. By this redirection hurt your page speed. You need to reduce all redirects.

  23. Use expires header to leverage browser caching. Expire header allow the user’s browser to reuse the cache files, they need to update. Through the help of the expire header the user’s browser will download just updated files from your page. Other files that don’t need they won’t download.