I’ve never really gotten in to this too much in the past, but before going live (yes it is taking way longer than expected) I’ve been looking at performance metrics on the different types of pages in M2 with the porto theme. One of the most useful tools I’ve found is: https://yellowlab.tools/
It is pointing out some glaring issues IMO with porto. With Porto, in all, there are 18 fonts being loaded. EIGHTEEN. It results in approximately 300kb on a first load. That is insane when the load size is 900KB-1.2MB.
Also, porto is loading another Jquery. Magento seems to load v1.12.4 and porto is also loading v3.4.1. This also seems like a large waste as well. I doubt there is any way around loading magento’s as I’m sure it needs it. It does complain about these being vulnerable versions as well in another test, which is interesting.
Otherwise there are some duplicate selectors and similar colors used, but I don’t think those have a huge impact other than simply being annoying and affecting the score. There’s also the typical magento huge DOM count, complex css, etc… which I also don’t think there will be a good way around that type of stuff either.
I think reducing the webfonts and possibly reducing the jquery down to what default magento wants would help a bit. I haven’t looked in to what porto’s jquery is being used for.