如何在WordPress网站中实现Signed Exchanges (SXGs)
WordPress 部署Signed Exchanges (SXGs)优化LCP实操流程
前置准备
- 服务器要求:必须使用支持HTTP/2或HTTP/3的Web服务器(Nginx 1.13.9+/Apache 2.4.26+都符合要求),主机需要支持自定义响应头、证书配置
- 证书要求:必须拥有站点对应的有效TLS证书,且证书必须包含
CanSignHttpExchanges扩展(普通DV证书不支持,需要向证书颁发机构申请带该扩展的专用SXG证书) - WordPress环境要求:版本≥5.7,PHP版本≥7.4,无强制缓存插件冲突(如果用了WP Rocket、W3 Total Cache这类插件需要提前预留钩子配置位)
操作步骤
第一步:安装配置SXG生成工具
- 用官方的
gen-signedexchange工具,服务器端安装对应架构的二进制包,或者直接用Docker镜像部署更便捷 - 配置工具参数:指定你的证书路径、私钥路径、SXG有效期(建议设为7天,最长不能超过90天)、站点根URL
# 示例生成单页SXG的命令模板 gen-signedexchange \ -uri https://你的域名/页面路径 \ -content 页面静态文件路径 \ -certificate 你的SXG证书路径.pem \ -privateKey 你的私钥路径.key \ -validity 604800 \ -o 输出路径/文件名.sxg
第二步:配置Web服务器适配SXG响应
Nginx配置示例
- 首先添加SXG的MIME类型:
types { application/signed-exchange sxg; }
- 配置响应头规则,当客户端支持SXG时返回对应内容:
location / { set $sxg_supported ""; if ($http_accept ~* "application/signed-exchange.*v=b3") { set $sxg_supported 1; } if (-f $document_root/sxg$request_uri.sxg) { set $sxg_supported "${sxg_supported}1"; } if ($sxg_supported = 11) { add_header Content-Type "application/signed-exchange;v=b3"; rewrite ^(.*)$ /sxg$1.sxg last; } # 原有WordPress伪静态规则保留 try_files $uri $uri/ /index.php?$args; }
Apache配置示例
- 在
.htaccess中添加规则:
AddType application/signed-exchange;v=b3 .sxg RewriteEngine On RewriteCond %{HTTP:Accept} ~* application/signed-exchange.*v=b3 RewriteCond %{DOCUMENT_ROOT}/sxg%{REQUEST_URI}.sxg -f RewriteRule ^(.*)$ /sxg/$1.sxg [L,T=application/signed-exchange;v=b3]
第三步:WordPress侧适配配置
- 安装自定义功能插件或者在主题
functions.php中添加钩子,实现页面更新时自动触发SXG生成:
// 页面/文章发布更新时触发SXG生成 add_action('save_post', function($post_id) { if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) return; $post_url = get_permalink($post_id); // 调用你部署的SXG生成工具接口/执行shell命令生成对应页面的SXG文件 // 注意:生产环境建议用队列异步处理,避免阻塞发布流程 });
- 如果你用了静态缓存插件,需要在缓存更新钩子上也加上述SXG生成逻辑,保证SXG内容和最新页面内容一致。
第四步:效果验证
- 先本地用curl命令验证响应是否正确:
curl -H "Accept: application/signed-exchange;v=b3" -I https://你的域名/测试页面
正常返回头会包含Content-Type: application/signed-exchange;v=b3
- 用Chrome DevTools的Performance标签页测试LCP变化,同时用Core Web Vitals检测工具验证指标提升效果。
注意事项
- SXG只对可公开访问的静态内容页面生效,登录态页面、动态个性化内容页面不要生成SXG,会导致内容展示错误
- 证书到期前需要提前更新SXG证书并重新生成所有有效SXG文件,避免失效
- 如果发现LCP没有明显提升,优先检查你的LCP元素是否是静态资源,SXG对静态文本、首屏图片类的LCP优化效果最明显
内容的提问来源于stack exchange,提问作者l.vakili
相关产品推荐
相关产品推荐

