在之前的 SEO 实战系列中,我们从理论层面拆解了 SEO 核心技术,并手把手教大家实现了 WebP 和原生 AVIF 的图片极致优化。然而,对于独立站长而言,追求网站速度的脚步从未停止。
今天,我们将优化的战场从“媒体资源”转移到“静态资源传输”。本期教程将带你掌握比传统 Gzip 更先进、压缩率更高的 Brotli 压缩技术。这将是你填补网站性能优化的关键拼图——用更小的带宽消耗,换取更快的加载速度。

一、Brotli压缩的优势
1. 更小的体积:Brotli 算法比传统的 Gzip 压缩率高 20% - 30%。这意味着 HTML、CSS 和 JS 文件体积更小。
2. 更快的传输:体积减小直接导致下载时间缩短,显著降低 LCP(最大内容渲染时间)。
3. 移动端友好:对于使用移动数据网络的用户,Brotli 能节省大量带宽,有助于提升页面加载体验。
二、Nginx服务器开启Brotli
Nginx 是目前最流行的 Web 服务器。官方主线版本通常不内置 Brotli,需通过模块加载。
1. 安装ngx_brotli模块
方法一:使用包管理器(推荐 Ubuntu/Debian)
这是最简单的方法,易于维护。
# 更新源
sudo apt update
# 安装 Brotli 模块
sudo apt install libnginx-mod-http-brotli
方法二:编译安装(适用于 CentOS 或自定义编译)
如果你的源中没有 Brotli,或者你使用的是宝塔面板(需在编译安装 Nginx 时添加模块),请按以下步骤操作:
git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli
2. 配置Nginx文件代码
打开 nginx.conf,在 http {...}块中添加以下优化配置。这段配置经过性能平衡,既能压缩极致,又不会耗尽 CPU。
http {
# ... 其他配置 ...
# --- Brotli 配置开始 ---
brotli on;
# 静态压缩:如果存在 .br 文件直接返回,不实时压缩(适合静态站点)
brotli_static on;
# 压缩等级:1-11。建议设置为 6。
# 等级 11 压缩率最高但 CPU 消耗极大,6 是性能与体积的最佳平衡点。
brotli_comp_level 6;
# 最小压缩文件大小:太小的文件压缩没有意义
brotli_min_length 20;
# 需要压缩的 MIME 类型
brotli_types
text/plain
text/css
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xml+rss
image/svg+xml;
# --- Brotli 配置结束 ---
}
3. 重启并验证
sudo nginx -t # 检查语法错误
sudo systemctl reload nginx
三、Apache服务器开启Brotli
Apache 从 2.4.26 版本开始内置了 mod_brotli,配置相对简单。
1. 启用模块
Ubuntu/Debian:
sudo a2enmod brotli
sudo systemctl restart apache2
CentOS:
编辑配置文件(通常在 /etc/httpd/conf/httpd.conf),取消以下行的注释:
LoadModule brotli_module modules/mod_brotli.so
2. Apache配置文件
添加以下代码以启用智能压缩:
<IfModule mod_brotli.c>
# 开启输出过滤器
SetOutputFilter BROTLI_COMPRESS
# 排除不需要压缩的图片格式(本身已压缩)
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli
# 设置压缩质量 (1-11),推荐 6
BrotliCompressionQuality 6
# 针对文本类型启用压缩
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/json image/svg+xml
</IfModule>
四、IIS服务器开启Brotli
IIS 默认仅支持 Gzip,从 IIS 10 (Windows Server 2016+) 开始支持 Brotli,但通常需要手动激活。
1. 安装IIS Compression扩展
微软不再直接提供简单的 EXE 下载,建议通过 Web Platform Installer 搜索 "IIS Compression" 安装。
2. 在IIS管理器中启用
- 打开 IIS 管理器。
- 点击你的站点,在右侧功能区找到 “压缩”。
- 确保勾选 “启用动态内容压缩”。
如果安装成功,你应该能在压缩方案列表里看到br。
3. 调整web.config
为了确保 Brotli 优先级高于 Gzip,可以在 web.config 中配置:
<system.webServer>
<httpCompression>
<!-- 确保 br 在 gzip 之前 -->
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
</httpCompression>
</system.webServer>
五、验证Brotli是否生效
配置完成后,必须验证,否则工作白费。
方法一:Chrome 开发者工具(最直观)
- 使用 Chrome 浏览器访问你的网站。
- 按 F12 打开开发者工具,切换到 Network (网络) 面板。
- 刷新页面,点击主文档(通常是第一个请求)。
- 查看 Headers (标头) -> Response Headers (响应头)。
- 查找
content-encoding字段:- ✅ br:成功!Brotli 正在运行。
- ⚠️ gzip:未生效,或浏览器不支持,或配置优先级错误。
方法二:命令行curl测试
在终端输入以下命令:
curl -H "Accept-Encoding: br" -I https://www.yourdomain.com
如果返回 Content-Encoding: br,则配置成功。
六、常见问题与SEO避坑
Q1: 开启 Brotli 会导致 CPU 负载过高吗?
A: 会略微增加。Brotli 的计算复杂度比 Gzip 高。这也是为什么我们推荐压缩等级设为 6 而不是 11。等级 6 提供了比 Gzip 更好的压缩率,同时 CPU 消耗完全在可接受范围内。
Q2: 如果用户的浏览器很老不支持 Brotli 怎么办?
A: 不用担心。Web 服务器具有“内容协商”机制。如果浏览器请求头中不包含 br,服务器会自动降级使用 Gzip 或不压缩。这对 SEO 是安全的。
Q3: 为什么图片不建议开启 Brotli?
A: JPG、PNG、WebP 等格式本身已经是高度压缩的二进制文件。再次使用 Brotli 压缩收效甚微,却会浪费大量 CPU 资源,增加 TTFB(首字节时间),进而对 SEO 产生负面影响。
QQ交流群:884250547
关注下方微信公众号,获取更多优质资源线报

