How I won 1st place in a WordPress Performance Contest by improving the page speed of a WooCommerce site to 0.7 sec

In this article, I will share the process of winning the 1st place in the WordPress Performance Contest 2019.

On May 2019, Cloudways announced their first ever WordPress Performance Contest, aiming to engage WordPress community experts in a productive challenge of improving the performance of a WordPress site and setting new benchmarks for website speed optimization.

I heard about this contest from someone in a casual talk regarding improving performance of a site. 
Both of us are group members in WordPress Speed Up, an excellent Facebook group related to improving page speed. 
I highly recommend anyone who is interesting on this niche to join this group. 

Contest details

All contestants got the same copy of an un-optimized version of a WooCommerce store in a WordPress site hosted on a server on the Cloudways platform.
The contestants needed to optimize the site within a period of 5 days.

Limitations for the contestants

  • May not change or alter theme’s files
  • May not remove existing plugins
  • May not activate/deactivate existing plugins
  • New plugins may be added
  • May not remove the number of products and the images of each product
  • There is no access to the server settings
  • No Backups allowed, all the tasks should be performed on a live site
  • Cosmetic changes may be made to the layout of the website
  • Tweaking the settings of existing plugins is allowed

Specification of the WooCommerce store

  • Built with WooCommerce 3.5
  • WordPress 5.1
  • Running on PHP 7.1
  • MySQL 5.6
  • HTTP/2 Enabled
  • PHP FPM Running
  • Products added using Alidropship Woo plugin

Improvement Summary

  1. I couldn’t disable existing plugins so I used Plugin Organizer to disable a few plugins that I didn’t want to load (without actually disabling the plugins).

  2. Removed Google fonts completely (I needed to put a small CSS change so the menu would look the same).

  3. Pre connected external domains to save the time needed to connect. The browser sets up the connections before an HTTP request is actually sent to the server. This includes DNS lookups, TLS negotiations, TCP handshakes.

  4. Pre loaded fonts & images to save time. The browser downloads and caches the resource as soon as possible, so when the resource is needed, it’s available immediately.

    You can read more on preload, preconnect and prefetch.

  5. New plugins were allowed to add, so I purchased the pro version of three plugins to be able to use the advance features like lazyload, disabling scripts and more.

  6. Compressed images. The best way to reduce the page size, and improve page speed, is to decrease image size, so images, including images originating from plugins, were compressed. Image compression includes converting large PNG files to a compressed and smaller JPG.

  7. Fixed Contact Form 7 refill request.

  8. Disabled loading a few JS & CSS that I didn’t needed using Asset Cleanup free plugin.

  9. Improved the performance of WooCommerce admin-ajax.php using the feature of the excellent caching plugin Swift Performance Pro (get 30% discount with this coupon: shaytoder30)

  10. Used ImageKit service to deliver all product images instead of AliCDN.

My results

GTmetrix results
google insights results
pingdom results