直接答案:36 个文章页共有 1,698 个内联 SVG 标签,但归一化后只有 55 种不同的 SVG 标记。SVG 总字节 1,705,395,每种标记只存一次则只需 201,993 字节——1,503,402 字节(88.2%)是重复。按页看,81.7% 的 SVG 标签在各自页面内就是重复的。

重复高度集中:出现最多的 4 种标记合计 1,439 次,占全部标签的 84.7%、SVG 字节的 67.9%。但这不是所有页面都一样:E23 的 SVG 多是大块不同插图,字节重复只有 19.7%。

88.2%
全局 SVG 字节重复
55
不同 SVG 标记
81.7%
页内重复标签
67.9%
前 4 种占 SVG 字节

方法:把 SVG 当标记指纹

复用第 83 期缓存的 36 个文章页(10 站,2026-11-03 抓取)。先移除 script、style 与注释,提取所有 <svg>…</svg>;把连续空白压缩为一个空格、去掉相邻标签之间的空白,保留全部属性与结构;对归一化后的 UTF-8 字节取 SHA-1,同一指纹即同一段标记。

项判定边界
SVG 标签页面中 <svg> 整块不含脚本字符串里的 SVG
不同标记归一化后 SHA-1 不同换 class/id 也算不同
重复字节总 SVG 字节 − 每种标记只计一次的字节只做空白归一化,不改路径
页内重复同一页内标签数 − 该页不同标记数跨页重复另算

结果:1,698 个标签,55 种标记

口径数值说明
内联 SVG 标签1,69830/36 页至少一个
不同标记(全局)55每种只计一次
SVG 总字节1,705,395UTF-8
去重后字节201,993每种标记只存一次
重复字节1,503,402(88.2%)总字节 − 去重字节
页内重复标签81.7%1,698 个标签中 1,387 个
页内重复字节65.6%按页汇总

重复集中在少数图形

标记出现次数单块字节合计字节占标签占 SVG 字节
S01624873544,75236.7%31.9%
S02580743430,94034.2%25.3%
S03145718104,1108.5%6.1%
S049086477,7605.3%4.6%
S05251,02525,6251.5%1.5%
S062582020,5001.5%1.2%
S07201,46929,3801.2%1.7%
S082081616,3201.2%1.0%

前 10 种标记合计 1,557 次,占标签的 91.7%、SVG 字节的 74.3%。这说明“内联 SVG 很大”主要不是因为有大量不同插图,而是同几段图标/装饰标记在页面和站点之间反复出现。

按站点:模板图标与大块插图是两种形态

站点页数SVG 标签不同标记(页内合计)页内标签重复字节重复SVG 字节
E0353555584.5%82.3%311,975
E0653902593.6%94.1%333,520
E0951655069.7%67.5%125,975
E1451554074.2%74.5%114,670
E2254254589.4%83.6%338,635
E2352089653.8%19.7%480,620
E16 / E19 / E26 / E283 / 1 / 1 / 100——0

E06、E22、E03 是典型的“模板图标反复出现”:E06 的 390 个标签只有 25 种页内标记,字节重复 94.1%。E23 相反:208 个标签、96 种页内标记,字节重复只有 19.7%,它的 SVG 更可能是大块不同插图。把 36 页合成一个 88.2% 会掩盖这两种形态。

重复不等于无用

同一段 SVG 出现多次,可能是导航图标、按钮箭头、装饰线,也可能是模板在每个页面复用的图形。本期只证明“标记重复”,不判断它是否必要,也不建议直接删除。可复核的下一步是:把高频标记与视觉位置对上,再决定哪些适合做 sprite 或外部文件。

对验收的启示

  1. 同时报“标签数”和“不同标记数”。 只看总字节会以为需要压缩图片;先看重复度,可能只需要复用。
  2. 按页看重复。 站点合计会掩盖 E23 这类大块不同插图;验收应抽最大页和高重复页。
  3. 重复图形适合外置。 高频且体积小的标记可考虑 sprite/外部 SVG;大块不同插图另议。
  4. 归一化口径要写清。 保留属性、只压空白是保守口径;换 class/id 会拆成不同标记。
  5. 不把重复率当质量分。 它只回答“标记是否重复”,不回答设计、可访问性或性能。

局限

  • 标记相同 ≠ 视觉相同: 不同 CSS 可能让同一标记呈现不同效果;不同标记也可能看起来一样。
  • 保守匹配: 保留全部属性,只做空白归一化;换 class/id/路径写法不会合并。
  • 只算静态 HTML: 不含 JS 生成、shadow DOM 或外部 sprite 引用的图形。
  • 缓存快照: 2026-11-03 抓取,未复测改版。
  • pilot: 10 站 36 页,不外推行业;站点匿名。

数据与复算

页面级:equipment-article-inline-svg-duplication-2026.csv(36 行 × 9 列:标签数、不同标记、重复标签、SVG/去重/重复字节与重复占比)。标记级:equipment-article-svg-shapes-2026.csv(55 行 × 8 列:匿名 S01–S55、出现次数、单块/合计字节、首次出现页、占标签/字节比例)。仓库内为 docs/research/2026-11-article-inline-svg-duplication.csv 与 2026-11-article-svg-shapes.csv。

探测:scripts/article_svg_duplication_probe.py;单元测试 scripts/test_article_svg_duplication_probe.py(无网络,9 项:空白归一化、属性差异、脚本/注释排除、重复计数、字节与空页)。运行:

python -m unittest scripts.test_article_svg_duplication_probe

配套:文章页 HTML 体积组成 pilot、文章页 HTML 压缩 pilot、文章页图片交付 pilot。

数据来源与口径

  1. 页面缓存:第 83 期 10 站 36 页(2026-11-03 08:40–08:41)。
  2. SVG 提取:移除 script/style/注释后匹配 <svg>…</svg>。
  3. 指纹:空白归一化后 SHA-1;字节 UTF-8;统计时间 2026-11-06,零网络。

相关:文章页可见文字同站重复度 pilot。

相关:首页 HTML 体积组成 pilot。

关于作者

凌壹信息Official(交付团队),负责企业网站、品牌与智能制造项目的需求梳理、方案与验收协作。本文只对缓存 HTML 中的 SVG 标记做指纹去重,不判断视觉用途、可访问性或是否应删除;10 站 36 页 pilot,不外推行业。

SVG 大,先看是不是重复

1,698 个标签只有 55 种标记;88.2% 字节重复,前 4 种占 67.9%。

预约内容验收方案