WordPress 性能优化完全指南

·0 次浏览
  • 作者
    帖子
  • modiqi@modiqi
    楼主

    为什么性能很重要?

    • 用户体验:页面加载超过 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
    • 又拍云
    • 七牛云

    配置要点

    1. 静态资源使用 CDN 域名
    2. 设置合理的缓存时间
    3. 启用 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 专家协助诊断!

Cyberforums · 原文 · Markdown

想回复或继续讨论?请到 Cyberforums 赛博论坛参与。

参与讨论 / 回复