Direct answer: the 36 article pages contain 1,698 inline SVG tags but only 55 distinct normalised SVG blocks. Total SVG bytes are 1,705,395; storing each distinct block once would take 201,993 bytes, so 1,503,402 bytes (88.2%) are repeats. Per page, 81.7% of SVG tags repeat a block already present on that same page.
The repetition is concentrated: the four most frequent blocks account for 1,439 occurrences, 84.7% of all tags and 67.9% of SVG bytes. But not every page looks the same: E23 carries large distinct illustrations and only 19.7% byte repetition.
Method: fingerprint the SVG markup
We reused the 36 cached article pages from study 83 (10 sites, fetched 2026-11-03). Script, style and comment blocks are removed first; every <svg>…</svg> is extracted; whitespace runs are collapsed to one space and whitespace between adjacent tags is removed, with all attributes and structure kept; SHA-1 over the normalised UTF-8 bytes identifies identical markup.
| Item | Rule | Boundary |
|---|---|---|
| SVG tag | A whole <svg> block | SVG strings inside scripts excluded |
| Distinct block | Different SHA-1 after normalisation | A different class/id counts as different |
| Repeat bytes | Total SVG bytes minus one copy of each block | Only whitespace normalised; paths untouched |
| Within-page repeat | Tags minus distinct blocks on that page | Cross-page repeats counted separately |
Result: 1,698 tags, 55 blocks
| Measure | Value | Note |
|---|---|---|
| Inline SVG tags | 1,698 | 30/36 pages have at least one |
| Distinct blocks (global) | 55 | Each counted once |
| Total SVG bytes | 1,705,395 | UTF-8 |
| Distinct bytes | 201,993 | One copy of each block |
| Repeat bytes | 1,503,402 (88.2%) | Total minus distinct |
| Within-page repeat tags | 81.7% | 1,387 of 1,698 |
| Within-page repeat bytes | 65.6% | Aggregated per page |
Repetition sits in a few blocks
| Block | Occurrences | Bytes each | Total bytes | Of tags | Of SVG bytes |
|---|---|---|---|---|---|
| S01 | 624 | 873 | 544,752 | 36.7% | 31.9% |
| S02 | 580 | 743 | 430,940 | 34.2% | 25.3% |
| S03 | 145 | 718 | 104,110 | 8.5% | 6.1% |
| S04 | 90 | 864 | 77,760 | 5.3% | 4.6% |
| S05 | 25 | 1,025 | 25,625 | 1.5% | 1.5% |
| S06 | 25 | 820 | 20,500 | 1.5% | 1.2% |
| S07 | 20 | 1,469 | 29,380 | 1.2% | 1.7% |
| S08 | 20 | 816 | 16,320 | 1.2% | 1.0% |
The top ten blocks account for 1,557 occurrences, 91.7% of tags and 74.3% of SVG bytes. So "inline SVG is large" is mostly not a large set of different illustrations; it is a small set of icons and decorations repeated across pages and sites.
By site: template icons versus large illustrations
| Site | Pages | SVG tags | Distinct blocks (per page, summed) | Tag repeat | Byte repeat | SVG bytes |
|---|---|---|---|---|---|---|
| E03 | 5 | 355 | 55 | 84.5% | 82.3% | 311,975 |
| E06 | 5 | 390 | 25 | 93.6% | 94.1% | 333,520 |
| E09 | 5 | 165 | 50 | 69.7% | 67.5% | 125,975 |
| E14 | 5 | 155 | 40 | 74.2% | 74.5% | 114,670 |
| E22 | 5 | 425 | 45 | 89.4% | 83.6% | 338,635 |
| E23 | 5 | 208 | 96 | 53.8% | 19.7% | 480,620 |
| E16 / E19 / E26 / E28 | 3 / 1 / 1 / 1 | 0 | 0 | — | — | 0 |
E06, E22 and E03 are the "template icon" pattern: E06's 390 tags contain only 25 distinct blocks per page and 94.1% of bytes repeat. E23 is the opposite: 208 tags, 96 distinct blocks, 19.7% byte repetition; its SVG is more likely large, different illustrations. A single 88.2% across 36 pages hides both patterns.
Repeated does not mean useless
The same SVG block may be a navigation icon, a button arrow or a decorative line, or a template element reused on every page. This study only shows markup repetition; it does not decide whether the element is necessary, and it does not recommend deleting it. The next check is to map high-frequency blocks to visual positions before choosing a sprite or external file.
What this means for acceptance
- Report tags and distinct blocks together. Total bytes alone suggests image compression; check repetition first, because reuse may be the cheaper fix.
- Look per page. A site total hides E23-style large illustrations; sample the largest and most repetitive pages.
- Repeated shapes suit external files. Frequent, small blocks may fit a sprite or external SVG; large distinct illustrations are a different case.
- State the normalisation. Keeping attributes and only collapsing whitespace is conservative; a different class/id becomes a different block.
- Repetition is not a quality score. It answers whether markup repeats, not design, accessibility or performance.
Limits
- Same markup is not the same visual: CSS can render one block differently; different blocks can look identical.
- Conservative match: all attributes are kept and only whitespace is normalised; different class/id/path writing will not merge.
- Static HTML only: JS-generated, shadow-DOM or external-sprite graphics are not counted.
- Cached snapshot: fetched 2026-11-03; no redesign recheck.
- Pilot: 10 sites, 36 pages; not an industry estimate; sites anonymised.
Data and reproduction
Page level: equipment-article-inline-svg-duplication-2026.csv (36 rows × 9 columns: tags, distinct blocks, repeat tags, SVG/distinct/repeat bytes and repeat share). Block level: equipment-article-svg-shapes-2026.csv (55 rows × 8 columns: anonymous S01–S55, occurrences, per-block and total bytes, first page, tag/byte share). In-repo copies: docs/research/2026-11-article-inline-svg-duplication.csv and 2026-11-article-svg-shapes.csv.
Probe: scripts/article_svg_duplication_probe.py; tests: scripts/test_article_svg_duplication_probe.py (no network, 9 tests: whitespace, attributes, script/comment exclusion, repeats, bytes, empty page). Run:
python -m unittest scripts.test_article_svg_duplication_probe
Related: the article HTML weight composition pilot, the article HTML compression pilot, and the article image-delivery pilot.
Sources and definitions
- Page cache: study 83, 10 sites and 36 pages (2026-11-03 08:40–08:41).
- SVG extraction: remove script/style/comments, then match
<svg>…</svg>. - Fingerprint: SHA-1 after whitespace normalisation; UTF-8 bytes; measured 2026-11-06 with no network.
Related: the article visible-text within-site repetition pilot.