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.