admin-plugins author calendar category facebook post rss search twitter star star-half star-empty

Tidy Repo

The best & most reliable WordPress plugins

HTTP/2 server push from CDN duplicated resources and the push-preload alignment that eliminated double downloads

HTTP/2 server push from CDN duplicated resources and the push-preload alignment that eliminated double downloads

Ethan Martinez

November 21, 2025

Blog

Imagine clicking a link to visit your favorite website. Everything loads fast — colors pop, images appear, and the page just “feels” instant. That’s the magic of the web doing its thing efficiently. But behind the curtains, a fascinating dance happens between your browser, a server, and sometimes a superhero called a CDN (Content Delivery Network).

TL;DR (Too Long, Didn’t Read)

HTTP/2 allows servers to “push” files like JavaScript and CSS to your browser even before it asks for them. This can go wrong when a CDN pushes resources your browser wants to preload too — causing double downloads! That’s a waste of bandwidth. Luckily, modern best practices developed a fix called push-preload alignment that stops this duplication. Now, things move faster and more efficiently again.

What is HTTP/2 Server Push?

HTTP/2 is like HTTP/1.1 but with cool new tricks. One of its tricks is Server Push.

Normally, when your browser wants a file (like style.css), it must first:

  • Download the main HTML
  • Read the HTML
  • Find out it needs style.css
  • Then finally ask for it

With HTTP/2 Server Push, the server skips that dance. It says, “Hey browser, I know you’ll ask for these files, so here they are — no waiting!”

It pushes them straight to the browser, alongside the main HTML.

How a CDN Helps (or Hurts)

CDNs are magical middlemen. They serve content from servers closer to you. This means faster websites and happier users!

Many websites use CDNs to deliver:

  • Images
  • JavaScript
  • CSS
  • Fonts

Sometimes, CDNs also use HTTP/2 server push. Sounds great, right?

But here’s the rub: the browser might independently decide to preload a file at the same time the CDN pushes it.

Wait, What’s Preloading?

Developers can give browsers a hint: “You’re going to need this file soon — start getting it now.”

This is done with the <link rel="preload"> tag in HTML.

The browser sees this tag and starts fetching the file ASAP.

Now Comes the Conflict

Let’s say you’re using both:

  • CDN with HTTP/2 Server Push
  • <link rel="preload"> in your HTML

Guess what can happen?

The file gets downloaded twice! 🤦‍♀️

The CDN says, “Here’s style.css!” and sends it. But the browser also goes “I’m preloading style.css!” and fetches it again.

This eats up bandwidth and slows things down instead of speeding them up.

Why Double Downloads Are Bad

They waste:

  • Bandwidth
  • Time
  • Battery on mobile devices

And worst of all, they defeat the purpose of Server Push and preload — both meant to optimize loading, not hurt it.

How Push-Preload Alignment Saved the Day

This problem got attention. Engineers scratched their heads. And then…came up with a smart fix called Push-Preload Alignment.

This method:

  • Tells the CDN or server to only push what the browser hasn’t already asked to preload.
  • Let’s the browser “mark” that it already plans to fetch a file soon.
  • And lets the server check those marks before pushing anything.

With this coordination, our dance partners stop stepping on each other’s toes.

Behind the Scenes: How It Aligns

So how does the browser “mark” what it’s going to preload?

There’s a special HTTP header — Early-Hints (103). It’s sent even before the full response.

Inside it are links marked for preload:

HTTP/1.1 103 Early Hints
Link: </style.css>; rel=preload; as=style
Link: </main.js>; rel=preload; as=script

The server sees this early hint and skips pushing those files — awesome!

Win-Win for Everyone

Why does push-preload alignment matter so much?

  • Users get faster websites
  • Developers avoid wasting bandwidth
  • CDNs work smarter, delivering only what’s needed

In fact, as developers adopted this best practice, performance numbers improved across the board.

Some Real Talk: Should You Still Use Server Push?

Funny thing — Server Push used to be super trendy. But now, some folks are stepping back.

Why?

  • The push-preload problem scared people off
  • Pushed resources can’t be cached as easily
  • Modern preload+Early Hints combo is often safer and more predictable

So today, many developers say: “Use HTTP/2 Push only if you really know what you’re doing.”

Tips for Devs and CDNs

  • Always align push and preload — no guessing
  • Use Early Hints to communicate preload intentions
  • Audit your pages with tools like Lighthouse or WebPageTest

This stuff may sound niche, but for websites visited by millions daily — it adds up fast!

Looking Forward

The web keeps evolving. HTTP/3 is rolling out. CDNs adapt fast. Browsers keep getting smarter.

What stays the same is this: Speed matters. And efficiency saves you more than just time — it saves money, energy, and rice (okay, maybe not rice…unless you’re using digital rice cookers).

Understanding how preload and push work — and how to make them dance together — is your step toward mastering web performance.

Final Words

So next time you visit a slick, fast website — know there’s some serious cleverness underneath. Possibly involving HTTP/2 tricks, CDNs doing the limbo, and developers making sure the browser doesn’t fetch the same file twice. That’s push-preload alignment saving the day 🎉

Happy browsing — and even happier preloading!