HTTP/2 Asset Loading Strategies
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall.
Problem in production
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall.
When: When your cdn serves h2/h3 and you are revisiting http/1.1 bundling assumptions.
Avoid: Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost
Mechanism
For HTTP/2 multiplexing and asset loading strategy, baseline LCP, INP, and CLS before changing implementation.
Edge cases
Test back navigation, refresh, double submit, offline, keyboard-only paths.
Rollout
Feature-flag one route; compare canary p75 for one business day.
Reference implementation
performance.mark("start");
await applyChange();
performance.mark("end");
performance.measure("change", "start", "end");
When to prioritize
When your cdn serves h2/h3 and you are revisiting http/1.1 bundling assumptions.
Anti-pattern
Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost.
Deep dive: third-party drift (1)
Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.
For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.
Deep dive: rollout discipline (2)
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.
Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.
Deep dive: failure rehearsal (3)
Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.
Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.
Deep dive: observability (4)
Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.
Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.
Deep dive: third-party drift (5)
Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.
For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.
Deep dive: rollout discipline (6)
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.
Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.
Deep dive: failure rehearsal (7)
Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.
Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.
Deep dive: observability (8)
Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.
Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.
Deep dive: third-party drift (9)
Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.
For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.
Deep dive: rollout discipline (10)
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.
Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.
Deep dive: failure rehearsal (11)
Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.
Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.
Deep dive: observability (12)
Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.
Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.
Deep dive: third-party drift (13)
Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.
For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.
Deep dive: rollout discipline (14)
We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.
Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.
Frequently asked questions
Does HTTP/2 make bundling unnecessary?
Multiplexing removes per-connection queues but bundling still affects parse cost and cache granularity. Use route-level chunks with long-lived vendor bundles, not one file or twelve micro-files without measurement.
Why was HTTP/2 Server Push deprecated?
Push sent resources browsers often cached, wasting bandwidth. Use 103 Early Hints or link preload instead — browsers respect cache state when deciding to fetch.
How do I verify HTTP/2 is active?
DevTools Network Protocol column shows h2 or h3. Log nextHopProtocol in RUM to segment users on HTTP/1.1 fallback.
Hiring a senior Android / Flutter engineer?
I architect and ship production mobile software — Kotlin, Jetpack Compose, Flutter — for robotics, EV infrastructure, fintech, and real-time systems. Open to remote roles in Europe and the US.
Get in touch →