为什么性能很重要?
- 用户体验:页面加载超过 3 秒,53% 用户会离开
- SEO 排名:Google 将速度作为排名因素
- 转化率:每快 1 秒,转化率提升 7%
性能诊断
测试工具
| 工具 | 用途 | 地址 |
|---|---|---|
| PageSpeed Insights | Google 官方测试 | pagespeed.web.dev |
| GTmetrix | 详细瀑布图分析 | gtmetrix.com |
| WebPageTest | 多地点测试 | webpagetest.org |
| Query Monitor | 数据库查询分析 | WordPress 插件 |
关键指标
- TTFB:首字节时间 < 200ms
- LCP:最大内容绘制 < 2.5s
- FID:首次输入延迟 < 100ms
- CLS:累积布局偏移 < 0.1
服务器优化
选择合适的主机
| 类型 | 适合 | 推荐 |
|---|---|---|
| 共享主机 | 小型博客 | SiteGround |
| VPS | 中型网站 | Vultr, DigitalOcean |
| 托管主机 | 高流量 | Cloudways, Kinsta |
PHP 版本
- 使用 PHP 8.1 或 8.2
- PHP 8 比 PHP 7.4 快 10-20%
启用 OPcache
; php.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
缓存策略
页面缓存
将动态页面转为静态 HTML:
- WP Rocket(付费,最佳)
- W3 Total Cache(免费,功能全)
- LiteSpeed Cache(LiteSpeed 服务器)
对象缓存
缓存数据库查询结果:
// wp-config.php
define("WP_CACHE", true);
推荐使用 Redis:
# 安装 Redis
apt install redis-server
# WordPress 插件
Redis Object Cache
浏览器缓存
# .htaccess
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
图片优化
压缩图片
- ShortPixel:智能压缩,支持 WebP
- Imagify:WP Rocket 配套
- Smush:免费版够用
使用 WebP 格式
WebP 比 JPEG 小 25-35%:
// 大多数优化插件支持自动转换
懒加载
// WordPress 5.5+ 原生支持
// 或使用插件增强
数据库优化
清理冗余数据
-- 删除修订版本
DELETE FROM wp_posts WHERE post_type = "revision";
-- 清理自动草稿
DELETE FROM wp_posts WHERE post_status = "auto-draft";
-- 优化表
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options;
优化 autoload
-- 查看 autoload 数据大小
SELECT SUM(LENGTH(option_value)) as autoload_size
FROM wp_options WHERE autoload = "yes";
-- 应该小于 1MB
推荐插件
- WP-Optimize
- Advanced Database Cleaner
前端优化
减少 HTTP 请求
- 合并 CSS/JS 文件
- 使用 CSS Sprites
- 内联关键 CSS
延迟加载 JavaScript
<script src="script.js" defer></script>
移除不必要的资源
// 移除 emoji 脚本
remove_action("wp_head", "print_emoji_detection_script", 7);
// 移除 jQuery Migrate
add_action("wp_default_scripts", function($scripts) {
if (!is_admin()) {
$scripts->remove("jquery");
$scripts->add("jquery", false, array("jquery-core"), "3.6.0");
}
});
CDN 加速
国际 CDN
- Cloudflare(免费版够用)
- BunnyCDN(性价比高)
- KeyCDN
国内 CDN
- 阿里云 CDN
- 腾讯云 CDN
- 又拍云
- 七牛云
配置要点
- 静态资源使用 CDN 域名
- 设置合理的缓存时间
- 启用 Gzip/Brotli 压缩
中国特色优化
替换 Google 字体
// functions.php
function remove_google_fonts() {
wp_deregister_style("open-sans");
wp_register_style("open-sans", false);
}
add_action("wp_enqueue_scripts", "remove_google_fonts");
替换 Gravatar
使用 Cravatar 或本地头像:
// 使用 WPCom 镜像
add_filter("get_avatar_url", function($url) {
return str_replace("gravatar.com", "cravatar.cn", $url);
});
性能检查清单
- 使用 PHP 8.x
- 启用页面缓存
- 启用对象缓存 (Redis)
- 图片已压缩并使用 WebP
- 启用懒加载
- 使用 CDN
- 数据库已优化
- 移除未使用的插件
- 启用 Gzip 压缩
- 关键 CSS 内联
性能问题可以 @speed 专家协助诊断!