Why does my game struggle on first load of a level area.

I find my game performs (FPS drop/lag) really bad on first pass of a section of the level but then when I drive away and return to the same spot it performs fine.

Is it caching information that it uses later?

Why does it struggle on initial load of sections?

As far as i understand, you load sections of levels additively. It may be related to shader compilation. Try using Shader.WarmupAllShaders when you load your level(on the loading screen basically)