博客 / WordPress/ WordPress 启用 GZIP 压缩的 5 种方法详解( 更新)

WordPress 启用 GZIP 压缩的 5 种方法详解( 更新)

WordPress 启用 GZIP 压缩的 5 种方法详解( 更新)

什么是 GZIP 压缩?

GZIP 是一种广泛使用的文件压缩格式,也是 HTTP 协议支持的一种压缩方式。当服务器启用 GZIP 压缩后,它会在将文本类文件(如 HTML、CSS、JavaScript)发送给浏览器之前进行压缩,从而显著减少传输数据量,加快页面加载速度,提升用户体验和 SEO 表现。

启用 GZIP 压缩的五种方法

注意: 以下方法通常只需选择一种启用,同时启用多种方式可能导致冲突。

方法一:修改根目录 index.php 文件

此方法通过修改 WordPress 核心文件实现,但每次 WordPress 升级后修改会被覆盖,需重新操作。

  1. 使用 FTP/SFTP 或文件管理器,访问网站根目录(通常包含 wp-config.php 的目录)。
  2. 找到并编辑 index.php 文件。
  3. 在代码 define('WP_USE_THEMES', true); 下方添加:
    ob_start('ob_gzhandler');

前提条件: 服务器 PHP 环境必须已启用 Zlib 扩展(支持 ob_gzhandler 函数)。

方法二:配置 .htaccess 文件(Apache/LiteSpeed 服务器)

这是 Apache 类服务器上最推荐的方法,通过服务器配置文件实现,效率高且不影响核心文件。

在 WordPress 根目录的 .htaccess 文件(位于 # BEGIN WordPress 规则之前)中添加以下代码:

<IfModule mod_deflate.c>
    # 启用压缩过滤器
    SetOutputFilter DEFLATE
    # 设置不压缩特定文件类型(如图片、PDF等已经是压缩格式)
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|pdf|flv|swf|zip)$ no-gzip dont-vary
    # 针对特定 MIME 类型启用压缩
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json application/xml application/rss+xml
</IfModule>

<IfModule mod_expires.c>
    # 启用缓存控制(非GZIP必需,但常配合使用)
    ExpiresActive On
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
</IfModule>

注意: 修改前请备份原文件。如果服务器使用 Nginx,此方法不适用。

方法三:通过 php.ini 配置(需服务器支持)

如果您的服务器允许通过 .htaccessuser.ini 覆盖 PHP 配置,可以尝试此方法。

在网站根目录的 php.ini(或 .user.ini)文件中添加:

zlib.output_compression = On
zlib.output_compression_level = 5

zlib.output_compression_level 的取值范围是 1-9,1 压缩比最低但最快,9 压缩比最高但最耗 CPU,通常建议设置为 5 或 6 以取得平衡。

方法四:使用 WordPress 插件

对于不熟悉代码的用户,使用插件是最安全便捷的方法。

  • 推荐插件: WP Rocket、W3 Total Cache、Perfmatters、LiteSpeed Cache(如果服务器是 LiteSpeed)。这些缓存插件通常都包含 GZIP 压缩功能,且配置简单。
  • 传统专用插件: GZIP Compression、Enable GZIP Compression 等。但请注意,许多此类插件已多年未更新,建议优先选择活跃维护的缓存插件。

安装并启用插件后,通常在“设置”或“性能”选项中勾选启用 GZIP 压缩即可。

方法五:在主题的 functions.php 文件中添加代码

此方法将功能代码添加到当前主题中,切换主题会失效。代码更健壮,会先检测服务器环境是否已启用压缩。

打开当前使用主题的 functions.php 文件,在末尾的 ?> 之前(如果存在)添加以下代码:

// 启用 GZIP 压缩
function enable_gzip_compression() {
    // 如果已经通过其他方式启用了压缩,则跳过
    if ( ini_get('zlib.output_compression') || ini_get('output_handler') == 'ob_gzhandler' ) {
        return;
    }
    // 检查 Zlib 扩展是否加载,并尝试启用输出缓冲压缩
    if ( extension_loaded('zlib') && !ob_start('ob_gzhandler') ) {
        ob_start();
    }
}
add_action('init', 'enable_gzip_compression');

重要提示: 修改主题文件前,请务必创建子主题,并在子主题的 functions.php 中进行修改,以防止主题更新丢失更改。

如何验证 GZIP 压缩是否生效?

配置完成后,可以使用以下在线工具进行检测:

在工具的检测报告中,查看“压缩”或“Enable compression”项目,确认文本资源(如 HTML、CSS、JS)的响应头中是否包含 Content-Encoding: gzip

总结与推荐

  • 最佳实践(Apache/LiteSpeed): 优先使用方法二(配置 .htaccess),这是服务器层面的高效解决方案。
  • 最佳实践(Nginx): 需要在 Nginx 配置文件中(如 nginx.conf 或站点配置文件)添加 GZIP 相关指令,通常由服务器管理员或托管服务商配置。
  • 新手用户: 推荐使用方法四,选择一个可靠的缓存插件(如 WP Rocket 或 LiteSpeed Cache)来一键启用,同时获得其他性能优化功能。
  • 开发者/高级用户: 可根据服务器环境选择方法二或方法五(使用子主题)。

启用 GZIP 压缩是 WordPress 网站性能优化的基础且关键的一步,能有效减少带宽使用并提升页面加载速度。

  1. avatar
    wordpress建站吧

    学习了,用到的时候少

回复 wordpress建站吧 取消回复

您的邮箱不会公开。必填项已用 * 标注。