An excellent score in website performance is difficult to achieve; even for the most experienced website designers and developers. There are many variables that can stand in the way of a high score...the client's stack, assets, or the site's required functionality. Making matters worse, the industry standard for auditing a website is continually changing it's metrics and forcing us to rethink how we optimize and build our sites. The goalposts literally shift year by year. That said, despite the changing industry standards and the pressures we put on ourselves to get more performant, the average user "feels" performance in a different way than we judge ourselves.
The average visitor to a website will instantly "feel" a website's performance. That "feel" is usually decided by load speed and then internal site navigation. Once a user tries to navigate to a website, if greeted by a white screen or a seconds long loading feature most people "feel" that website as slow. Once on the site, internal navigation is the deciding factor in how a user experiences performance...especially mobile users. They have experience with native apps and how they respond to input and screen changes. They expect a website to act like an app. Is that fair? No, but what we think isn't what matters. It's the user experience - not what the industry or Lighthouse says, stupid.
How do we build websites that excel in "feel" despite what Lighthouse may say?
Well, for starters build and send static pages whenever and wherever possible. The site will load faster or at least "feel" like it does because of first initial paint.
Next, optimize all your images and only serve the appropriate size for the client device. Using Next-gen formats and webP can also help for certain users.
Always lazy-load. If you aren't using an image preprocessing solution like Sharp and then lazy-loading your images with SVG placeholders...you are building slow 'feeling' websites. That we can guarantee.
Code-split your JS bundles and prioritize what gets loaded immediately and what can wait a bit.
Host via CDN. This goes along with using static. It is a no-brain choice. Why on earth would you want to serve up a website from halfway around the world when you can send it from closer to the user?
Use modern technology. Stay clear of Wordpress, Wix, and other solutions that are carrying loads of technical debt. What is technical debt? Well, simply put...Wordpress sites are slow and outdated because last decade they dominated and millions and millions of websites were built using it. They can't change as quickly or easily adopt the latest and greatest web technologies because they would break the internet and really piss-off millions of clients and Wordpress developers. This is called technical debt and it gets worse year by year.