How to Speed up Magento 2

Step 1: Enable Flat Categories and Products ( Before doing this take a backup of the database )

Step 2: Merge CSS and JS Files and also enable the option of loading js at bottom

Step 3: Content Delivery Network ( ask server spoke person or use Imageengine for image )

Step 4: Caching ( Enable FPC if possible, use Memcache or Redis for the database, Ask to sever for any host cache they provide or for Opcache enable and make use of it )

Step 5: Image Optimization ( Use any image optimization extension or just do it manually if you get it done by CDN well and good )

Step 6: Enable Compression ( Use Gzip, extend cache time for static content, )

Step 7: Reduce Server Response Time (Use Varnish HTTP Cache if server provide, Or just buy full page cache warmer)

Step 8: Magento Updates ( this is up to you but make sure all the latest security patches is applied )

Step 9: Make use of Critical CSS

Step 10: Indexers to “Update on Schedule”

Step 11: Enable Production mode

Step 12: Remove or find the best way to use a third-party script or style

Step 13: Choose Extensions wisely ( Pick those extensions do what you required additional features might some time slow down the website )

Step 14: Remove all those core modules which you don't require.

Step 15: if possible stop features like Now Online in the customer tab under the menu.

Step 16: Make use of the .webp image ( There is a lot of extensions some are free as well )

Step 17: If Possible make use of the AMP extension for the mobile device ( Use paid and lifetime update extension only )

This is not a step this is a must Optimize Server and System Requirements. Buy a server that assures you high speed and meet your requirement.

Happy Coding