Enable all three core caching modules, Internal Page Cache, Dynamic Page Cache, and BigPipe. Turn on CSS and JavaScript aggregation in the Performance settings.
Optimise images using responsive image styles, modern formats like WebP, and proper compression. Consider lazy loading images below the fold. Use a CDN to serve static assets from edge locations close to users.
Audit your modules and disable anything unused. Review custom code for slow database queries or expensive operations. Use a profiler like Blackfire to identify bottlenecks. Configure Redis or Memcached for object caching instead of the database. Put Varnish or a CDN in front of Drupal for page level caching. Each of these individually helps, but combined they transform a slow site into a fast one. Spending a day on performance optimisation often pays back in better engagement and rankings.