Direct answer: the 14 homepages from study 95 hold 1,310,636 bytes (1.31 MB) of raw HTML. Locally, gzip -9 gives 227,922 bytes (17.4%) and brotli -q11 gives 177,701 bytes (13.6%). In a live probe of the same 14 homepages, 12 returned gzip, 1 returned brotli (E25) and 1 was uncompressed (E18); the median wire/decoded ratio was 21.0% (11.3%–100%).
Compared with the 36 article pages in study 90: local gzip 15.7%, brotli 11.7%; live 10/10 gzip, 0 brotli, median 26.9%. The content and servers differ, so the two sets cannot be ranked; what can be said is that the homepage sample contains two cases absent from the article sample — one uncompressed response and one brotli response.
Method: same homepages, local compression plus live encoding
The sample is the same as study 95: 14 identifiable homepage URLs from the 2024 Su–Xi–Chang first-set equipment list (16 companies, excluding E21 HTTP 502 and E20 1,329 bytes). Locally, the cached HTML is compressed with gzip.compress(data, 9) and brotli.compress(data, quality=11). Live, each homepage was requested once with Accept-Encoding: gzip, br; status, Content-Encoding, wire and decoded bytes were recorded.
| Item | Local recompression | Live probe |
|---|---|---|
| Sample | 14 cached homepages | One URL per homepage, 14 sites |
| Compared | raw / gzip / brotli | wire / decoded |
| Level | gzip 9, brotli quality 11 | Server's actual choice |
| Does not represent | Actual server transfer | The whole site or all paths |
Local: 1.31 MB to 228 KB gzip / 178 KB brotli
| Codec | Raw | Compressed | Of raw | Saved |
|---|---|---|---|---|
| gzip -9 | 1,310,636 | 227,922 | 17.4% | 82.6% |
| brotli -q11 | 1,310,636 | 177,701 | 13.6% | 86.4% |
| brotli vs gzip | 227,922 | 177,701 | 78.0% | 22.0% |
Per page, the median gzip share was 19.0% (9.1%–41.5%) and the median brotli share 15.1% (6.8%–35.5%). Homepage compression is less concentrated than on article pages: some pages are almost all repeated template and fall below 10%, while pages with more unique text/markup stay above 40%.
Live: 12 gzip, 1 brotli, 1 uncompressed
| Site | Status | Content-Encoding | Wire bytes | Decoded bytes | Wire/decoded |
|---|---|---|---|---|---|
| E01 | 200 | gzip | 5,690 | 21,084 | 27.0% |
| E02 | 200 | gzip | 24,169 | 214,244 | 11.3% |
| E04 | 200 | gzip | 34,814 | 139,998 | 24.9% |
| E08 | 200 | gzip | 15,348 | 86,749 | 17.7% |
| E11 | 200 | gzip | 12,564 | 50,967 | 24.7% |
| E12 | 200 | gzip | 10,374 | 58,364 | 17.8% |
| E13 | 200 | gzip | 5,568 | 24,523 | 22.7% |
| E17 | 200 | gzip | 22,027 | 126,998 | 17.3% |
| E18 | 200 | — (none) | 16,124 | 16,124 | 100.0% |
| E24 | 200 | gzip | 29,547 | 158,886 | 18.6% |
| E25 | 200 | br | 52,303 | 294,026 | 17.8% |
| E27 | 200 | gzip | 8,411 | 43,443 | 19.4% |
| E29 | 200 | gzip | 12,015 | 49,829 | 24.1% |
| E30 | 200 | gzip | 8,218 | 25,401 | 32.4% |
Across the 14 URLs, wire totalled 257,172 bytes and decoded 1,310,636 bytes, or 19.6%. E18 carried no Content-Encoding (wire and decoded both 16,124 bytes); E25 used br (wire 52,303 / decoded 294,026).
Compared with article pages: do not use one set for the other
| Metric | 14 homepages | 36 article pages (study 90) |
|---|---|---|
| Local gzip aggregate | 17.4% | 15.7% |
| Local brotli aggregate | 13.6% | 11.7% |
| Live encoding | 12 gzip / 1 br / 1 none | 10 gzip / 0 br / 0 none |
| Live wire median | 21.0% | 26.9% |
The page content and servers differ, so this cannot rank one page type as better or cheaper. What is reproducible is the distribution: the homepage sample contains one uncompressed response and one brotli response; all 10 article URLs were gzip.
Outliers and composition
In study 95, E18's HTML was 94.2% script and E25's 91.6% style. Live, E18 was uncompressed and E25 used brotli. Both observations occur together, but with only two pages this study cannot claim "script pages are not compressed" or "style pages use brotli"; it records the association only.
What this means for acceptance
- Check Content-Encoding on homepages too. One of 14 was uncompressed; page size alone hides the transfer difference.
- Brotli is not automatically site-wide. Only one homepage used br; check page type and path separately.
- Local ratios are not server settings. gzip 9 / brotli 11 are laboratory levels; the 21.0% live median is the server's actual choice.
- Do not generalise one sample to the other. Homepage and article-page encoding distributions differ; sample both.
- Compression is not a performance score. This study does not measure TTFB, LCP, parsing or CrUX.
Limits
- 14-page pilot: the same homepages as study 95; not the full 30-company sample.
- Local levels: gzip 9 / brotli quality 11 are a laboratory ceiling, not server defaults.
- One live URL per site: not all paths or edge nodes.
- HTML only: images, CSS, JS, fonts and headers are excluded.
- One time window: 2026-11-07 02:40; no cross-day recheck.
- No causal claim: server configuration was not inspected; outlier composition and encoding are not linked causally.
Data and reproduction
Local: equipment-homepage-html-compression-2026.csv (14 rows × 9 columns: raw/gzip/brotli bytes and shares, saved percentage). Live: equipment-homepage-content-encoding-2026.csv (14 rows × 10 columns: status, Content-Encoding, Content-Type, wire/decoded bytes and shares, error, time). In-repo copies: docs/research/2026-11-homepage-html-compression.csv and 2026-11-homepage-content-encoding.csv.
Probe: the local and live subcommands of scripts/article_html_compression_probe.py; tests: scripts/test_article_html_compression_probe.py (no network, 7 tests). Run:
python -m unittest scripts.test_article_html_compression_probe
Related: the homepage HTML weight composition pilot, the article HTML compression pilot, and the article HTML weight composition pilot.
Sources and definitions
- Sample: 14 homepage caches from study 95 (fetched 2026-11-07; 16 companies, excluding E21 502 and E20 1,329 bytes).
- Local compression: 2026-11-07, gzip 9 and brotli quality 11 on UTF-8 raw bytes.
- Live probe: 2026-11-07 02:40, one homepage URL per site, Accept-Encoding: gzip, br.