HTTP Request Count Budget
Set and track HTTP request count budgets for web pages. Learn how request count impacts performance on HTTP/1.1 vs HTTP/2, waterfall effects, and strategies for request reduction through bundling and sprites.
Detailed Explanation
HTTP Request Count Budgets
While HTTP/2 multiplexing has reduced the per-request overhead compared to HTTP/1.1, request count still matters. Each request adds DNS, TCP, and TLS overhead, and too many concurrent requests can saturate bandwidth on slow connections.
Request Count Recommendations
| Site Type | Max Requests |
|---|---|
| Blog/Content | 20-30 |
| Landing Page | 15-25 |
| E-commerce | 30-50 |
| SPA (initial) | 25-40 |
| Dashboard | 30-60 |
HTTP/2 Does Not Eliminate the Problem
HTTP/2 multiplexing allows many requests over a single connection, but:
- Each request still requires header overhead (compressed with HPACK)
- Browser limits concurrent streams (typically 100 per connection)
- Third-party requests go to different origins (no multiplexing benefit)
- Each request triggers server processing overhead
- Many small files can be less efficient than fewer larger files for caching
Types of Requests to Track
Add each of these as resource entries:
- Document — The HTML page itself
- Stylesheets — CSS files
- Scripts — JavaScript files (first-party and third-party)
- Images — Individual image files
- Fonts — Font files (WOFF2)
- XHR/Fetch — API calls made during page load
- Other — Favicons, manifests, source maps
Request Reduction Strategies
- Bundling — Combine multiple JS/CSS files (but preserve code-splitting benefits)
- Image sprites — Combine small icons into a single sprite sheet
- Inline critical resources — Inline critical CSS and small SVG icons
- Data URIs — Embed tiny images (< 2 KB) as base64 in CSS
- Preconnect — Use
<link rel="preconnect">to eliminate connection overhead for known origins - HTTP/2 Push — Server push critical resources (use carefully, being deprecated in favor of Early Hints)
Waterfall Analysis
Request count budgets work best when combined with waterfall analysis. Even 30 requests can be fine if they load in parallel, but 10 requests in a serial chain (each waiting for the previous) will be slow.
Use Case
Request count budgets are particularly important for sites with many third-party integrations. Each analytics script, ad network, and social widget brings its own cascade of subrequests. A single chat widget may trigger 10+ additional requests for its own scripts, styles, and API calls. Tracking total request count prevents this from spiraling out of control.