SEO 百科

压缩

本页目录

压缩

压缩 是在把网页文件发给浏览器之前,用算法把它的体积变小,浏览器收到后再解压还原的做法。它能缩短传输时间,对最大内容绘制(LCP)有直接帮助;但它只对文本类文件有效,已经压过的图片和视频再压一次没有意义。

编码的协商过程

压缩发生在服务器一侧,由浏览器先表态。浏览器在请求里带 Accept-Encoding,写明自己能解哪些编码;服务器选中一种,用 Content-Encoding 告诉浏览器这份内容用了什么编码[1]。

Accept-Encoding: gzip, deflate, br
Content-Encoding: br

MDN 说它“列出了对当前应用资源的任何编码类型,以及编码的顺序”[1]。浏览器照着这个值解码,就能还原出原始的媒体类型。

这一步不影响页面内容,只是把同一份内容换一种更小的写法传过去。

Gzip 与 Brotli 的差别

两者都是通用压缩算法,差别在压缩率与浏览器支持面。

算法 编码值 特点
Gzip gzip 兼容性最广,压缩率一般
Brotli br 压缩率更高,老浏览器可能不支持
Zstandard zstd 较新,支持面还在扩大

Gzip 用 LZ77 算法加 32 位校验[1]。Brotli 是它的后继,规范写在 RFC 7932 里[2]。HTTP Archive 的统计给出过差距:Brotli 的压缩率比 Gzip 高出 20% 到 26%[5]。

两种编码同时开着时,浏览器带 br 就按 Brotli 处理[3]。老浏览器不支持 Brotli,会自动回到 Gzip,因此两个都开着比只开一个稳妥。

适用与不适用的文件类型

能压的是文本。这类文件主要是 HTML、CSS、JavaScript、JSON、SVG 和 XML[3]。它们的共同点是内容里有大量重复的空格、标签名和单词,算法能找到规律。

不该压的是已经压过的格式。MDN 提醒,对已经压过的格式再做压缩“并不合适”,因为结果可能反而变大[1]。阿里云的说明更具体:PNG、JPG 等图片和 MP4 等视频本身已经压缩,再开压缩没有效果,建议关闭[3]。

与抓取和指标的关系

压缩省下的是下载时间。文件更小,浏览器拿到内容更早,LCP 这类指标随之改善。

对抓取同样有影响。服务器响应越快,爬虫单位时间能取回的页面越多,而百度会按服务器压力调整抓取频次[4]。压缩是降低单次传输开销的手段,和缓存、CDN 一起用才明显。

有一处例外要记住。源站如果已经压过,响应里带了 Content-Encoding,边上再挂 CDN 压缩就不再生效[3]。重复压缩既浪费,也可能让文件变大。

常见误用

  • 给图片和视频开压缩,以为能再省一半。它们已经压过,结果通常没变化。
  • 只开 Gzip 就收工,忽略了 Brotli 更小的体积。
  • 源站和 CDN 两头都压,响应里出现两层编码,排查时容易看错。
  • 开了压缩后文件的 MD5 值会变,还在按旧值做校验就会失败[3]。

附录

参见

参考资料

官方(境外)

  1. 《Content-Encoding》,MDN Web 文档,2025-07-04 更新。
  2. 《Brotli Compressed Data Format》,IETF,2016-07。

官方(国内)

  1. 《Brotli 压缩》,阿里云,2026-09-20 更新。
  2. 《平台工具使用手册(抓取频次)》,百度搜索资源平台,2020-08-14 更新。

第三方

  1. 《CDN》,HTTP Archive《Web Almanac》,2026-01-15。

外部链接

无。