Skip to main content

Many Servers Don't Properly Support HTTP Prioritization

July 29, 2025 · Updated on · 5 min read
Matt Zeunert

Loading the most important resources first is key to improving website performance. However, even when resources are correctly prioritized, servers don't always adhere to the request priorities provided by the browser.

In this article we'll take a look at how server-side prioritization support impacts page load time, how well different content delivery networks support HTTP prioritization, and what browsers and developers can do to work around server limitations.

Request priorities and web performance

When loading a website, browsers request many different resources from the server. Each of these has a request priority between Low and Highest.

For example, a stylesheet that's required to start rendering page content will be high-priority. In contrast, most images are low-priority by default.

This request waterfall shows an example of different resources downloaded during the page load process, along with the priority of each request.

Request waterfall showing request priorities

Unimportant resources can outcompete more important requests, delaying the page load process.

This can happen for two reasons:

  1. The browser assigns an incorrect priority to the request
  2. The server doesn't adhere to the priority provided by the browser

When the browser doesn't correctly guess the priority, developers can use the fetchpriority HTML attribute to tell it to load a specific resource earlier.

However, in this article, we'll take a look at the second reason low-priority requests can delay high-priority requests.

HTTP prioritization

Since HTTP/2, the HTTP protocol supports multiplexing. That means the ability to load multiple resources over the same server connection.

Ever since, HTTP has also included support for specifying the priority of a resource. This request priority is determined by the browser and the server then knows what order to send response data in.

Here's an example of how that works in practice. On our test page, we have a high-priority image at the top, and a low-priority image a bit further down.

Request waterfall with good server-side request priority support

You can see when data chunks for each resource arrive in dark blue. Both requests start at the same time, but the server sends the response data for the high-priority request first.

What happens when servers don't correctly support HTTP prioritization

In our previous example everything worked as expected. But when we serve the same page from different serves that's not always the case!

Instead, we see that both files are downloaded at more or less an equal rate.

Request waterfalls showing data for both requests loading at the same time

This also impacts what users see:

  1. It takes almost twice as long for the main image to finish loading
  2. The secondary image starts rendering at the same time

Impact of poor prioritization on rendering

tip

I first learned about server-side HTTP prioritization at performance.now() in 2023: you can find Robin Marx's amazing presentation on Resource Loading at the Cutting Edge on Youtube!

What does HTTP prioritization support look like today?

Hasselt University published a paper on real-world HTTP/3 prioritization support in 2024. Here's the key table showing what aspects of HTTP prioritization different servers and content delivery networks (CDNs) support.

Many widely used platforms don't fully support correct prioritization.

Table showing HTTP/3 prioritization support, with Fastly and QUIC.cloud having the best results

In addition to the priority the browser provides when first requesting a resource, priority changes are also common on the web. For example, once the page starts rendering the browser might realize that an image is in the viewport and increase its priority. Or more simply, the user might scroll down the page causing new images to enter the viewport.

Even when a server supports setting the initial priority it might still not support later priority changes.

tip

The table above shows support for HTTP/3 prioritization support, and HTTP/2 support might look different. HTTP/2 also had many issues with request priority support, although the data I could find wasn't updated since 2018.

What this means for browsers and developers

In practice, correct HTTP prioritization can't always be relied upon. That means sometimes it's best to avoid making a request entirely. A server that doesn't know you want to load a specific file won't use up any bandwidth to send it to you!

Tight mode in browsers

Many browsers divide the page load process into two separate phases: tight mode and a later loading phase.

During tight mode the browser avoids requesting low-priority resources and instead only tells the server about the files it thinks are most needed.

That shows up as "wait time" in a request waterfall. The browser is waiting for other resources to finish loading before making additional requests.

Wait time due to tight mode

Lazy loading and JavaScript logic

In theory you could expect images below the fold to not delay above-the-fold content. But in practice, deferring off-screen images can be an effective strategy to improve page speed.

Likewise, prefetched resources are low-priority, but prefetching can still have a negative impact on the initial page load.

How to test HTTP prioritization on your own website

Page speed testing tools like the DebugBear website speed test or WebPageTest can show you the priority of each resource and when different data chunks arrive.

Make sure to use a low-bandwidth (usually mobile) connection for testing, as it can be difficult to see on a fast network.

Conclusion

Assigning the right request priority in the browser isn't enough to ensure correct load order. Your server or CDN also needs to correctly support HTTP prioritization.

If you are working on web performance optimizations, try out DebugBear to measure and optimize your page speed.

Illustration of website monitoringIllustration of website monitoring

Monitor Page Speed & Core Web Vitals

DebugBear monitoring includes:

  • In-depth Page Speed Reports
  • Automated Recommendations
  • Real User Analytics Data

Get a monthly email with page speed tips