How to reduce time between discovery and loading?

Part of my website loading graph:

Note the long delay between discovery and start of request. What causes this, and is there any way to lessen or prevent it from happening? A full load of my website from first contact to document complete is about 16 seconds, first visible around 5 seconds, and that sucks.

When we moved from a “static” html/css site to a CMS-driven site the complete load time went from under 2 seconds to this. I get that a CMS grabs from the database and builds the webpage on the fly, but over fifteen seconds feels like a bit much to pay for the convenience of a CMS. Any thoughts on how I might improve this?

Looks like HTTP 1.1 which only allows for one request at a time over a given connection. There are probably 6 connections open to the origin (several requests over the start of the waterfall) and as requests complete new ones will be sent.

You can use HTTP/2 which will send several requests in parallel but they will still only come back one at a time (the light part of the bar would just be longer instead).

From the looks of the ark parts of the bars, it looks like it is spending all of the time downloading anyway - the bandwidth graph at the bottom of the waterfall will tell you for sure. If so, requesting them sooner won’t make it any faster because it is constrained by bandwidth. You could change the ordering of the requests if that one is more important for some reason (like the LCP image) or you could make the images smaller but reducing the overall bytes is likely the only way to make it fully complete everything faster.

Sorry, should have included the details. Here are the details for that last longest one:

image