Consider using Caching or CDN services such as cloudflare.
Try to keep the initial server response under 1s to get good performance scores.
Remove unwanted CSS, by creating multiple stylesheets and loading only required CSS files for the given page.
For the non-critical CSS, you can use loadCSS to load them asynchronous.
The time it takes to load these elements if rendered above-the-fold will have a direct effect on LCP. There are a few ways to ensure these files are loaded as fast as possible:
Lazy load images, iframe, embeds etc.
Can use loading=”lazy” attribute for image tags or use some JS library that does the same thing.
Optimize and compress images
Consider not using an image in the first place. If it’s not relevant to the content, remove it.
Convert images into newer formats (JPEG 2000, JPEG XR, or WebP)
Use responsive images (srcset attribute to add more image sizes as per device screen size)
Consider using an image CDN
Preload important resources
Some assets such as fonts, images, are somewhere deep in CSS, and that may load later as per the loading sequence.
First, check if your server already compresses files automatically. Most hosting platforms, CDNs, and reverse proxy servers either encode assets with compression by default or allow you to easily configure them.