Google PageSpeed Insights indicates a score of 90+. However, the same pages still fall into the slow speed category in Google Search Console Chrome UX report. It says FCP is longer than 3 seconds (3.1s average). What is some low hanging fruit I can do to help real world performance? We serve static content via a cookieless subdomain but using a third-party CDN is cost-prohibitive.

Lets talk a bit about the facts , this is the PageSpeed inshight about this spesific page of a site / sector of an app that we are talking now. As you can see it has 59 / 100 overall performance in mobile mode making it yellow. That means that it isn't a garbage but it isn't a even a good one. There is a long dispute if that means that the search engine associated with this tools will throw that in its results deep down. With my experience I can tell that there isn't a linear association but THERE IS AN ASSOCIATION after all (if all other logical optimatation and content managment play along). In desktop it has 95 / 100 that is acceptable (not great but acceptable). For a site that you don't have content managment I can't see why this can't be 100/100 or even make some even better impovement after 100/100 (that this search engine loves , appreciate and marks (I just made this test with a 100/100 web app and still it has suggestions , those has to do with the Content Managment dpt. but I wondered if we the R&D can alter them server side in order to make it even more happy than 100/100) ). The excessive DOM size issue is a really easy one (I can't understand why extensive composition in a CSS would be logical in any way and why a child of a child of a sector that is unique and has a CSS id it has to have a class if it doesn't have siblings of the same type) . Of course you should ensure that the text stay visible during web font load , its simple user experience guidence , but ok I would play along (and I often do) with that one if the site / web app were a clothing brand , but in a forum I can't see the meaning of it. As for CDN's DaniWeb is not based in images and I couldn't see any reason to do it , even if there was a reason the right way (in my point of view and with the experiments and production alternatives that I have made) to implement it has more work and less cost but here its not the case to start talk about it.