Familiarize yourself with a modeling program (if you aren’t already), even a few months w/ using Blender casually will be good. The ability to edit other people’s meshes can go a long a way. I’ve gotten into the habit of atleast editing the billboards from asset packs that I’ve downloaded off the unreal market. For some reason people like to sell assets that consist of 80% transparent models (which create overdraw problems). With some basic modeling skills you can fix the overdraw issues by cutting out the transparent areas (in exchange for a slightly higher poly count).
For example: I downloaded a free tree pack and the furthest LOD for the trees were a typical square shaped billboard made up of 2 triangles. I replaced it with my own billboard that had very little overdraw and consisted of 14 triangles. In return I got an increase from 37ish fps to 43ish fps in the specific area that I was testing in my level (this was tested with my old laptop that had a gtx 750m).
Being able to create your own LODs is nice as well. UE4’s automatic LOD generator does a good job for certain things, but sometimes you want more control. With my grass, on LOD2+ I completely chopped off the triangles at the top of the mesh. Doing so removed a “few” grass blades, but at that distance it’s almost impossible to notice anyways. I don’t remember the exact increase that I got, but my shader complexity view screen went from pink-white to mostly green. I think my grass goes up to LOD4 or LOD5 and get’s LOD’d to a single triangle at very, very far distances.
To further iterate on this. Let’s say you have foliage in your level that factors in a wind effect. If in your master material you create a switch node right before your wind vertex instructions plug into “world position offset”, you can will get some gains simply by disabling the wind effect (through a 2nd instance of your 1st material instance) on your further out LODs. The wind effect isn’t noticeable at a distance anyways so there’s no quality loss.