WordPress网站加速教程

WordPress网站加速教程

  • admin admin
  • 2026-09-12
  • 2325
  • 0

选择支持 PHP 8.2 或 8.3 的服务器,优先使用 Nginx 或 LiteSpeed 代替 Apache,启用 PHP OPcache 可以显著降低脚本编译时间,在 php.ini 中设置如下参数:opcache.enable=1 opcache...

¥ 0.00
当前位置:首页 > WordPress资源 > WordPress网站加速教程
详情介绍

选择支持 PHP 8.2 或 8.3 的服务器,优先使用 Nginx 或 LiteSpeed 代替 Apache,启用 PHP OPcache 可以显著降低脚本编译时间,在 php.ini 中设置如下参数:

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.save_comments=0
opcache.enable_file_override=1

使用 PHP-FPM 时根据服务器内存调整 pm.max_children 数量,避免进程过多导致内存耗尽,安装 Redis 或 Memcached 扩展,作为 WordPress 对象缓存后端,减少数据库查询次数,数据库使用 MariaDB 10.6 或 MySQL 8.0,将 innodb_buffer_pool_size 设置为物理内存的 50% 至 70%,并关闭 Query Cache,为 WordPress 数据库启用持久连接,减少每次请求的连接开销。

WordPress网站加速教程  第1张

部署页面缓存插件

安装 LiteSpeed Cache、WP Super Cache 或 WP Rocket 等页面缓存插件,以 LiteSpeed Cache 为例,进入插件设置,在“缓存”选项卡中开启缓存功能,缓存生命周期设置为 3600 秒,移动端与桌面端分别缓存,避免响应式布局错乱,对于 WooCommerce、会员网站或其他动态页面,在插件中排除购物车、结算、账户、登录和注册页面,防止缓存用户私有数据。

启用缓存预加载功能,自动在发布文章后刷新首页、分类页和文章页缓存,对于高流量站点,可以使用 WP-CLI 命令触发缓存预热:

wplitespeed-optionsetcache_prune1
wplitespeed-optionsetcache_ttl604800

测试缓存是否命中,在浏览器隐身窗口访问页面,查看响应头中是否包含 X-LiteSpeed-Cache: hit 或类似标记。

数据库清理与索引优化

定期清理 WordPress 数据库中的冗余数据,使用 WP-CLI 执行以下命令:

wptransientdelete--all
wpdboptimize
wppostdelete--force$(wppostlist--post_status=trash--format=ids)
wpcommentdelete--force$(wpcommentlist--status=spam--format=ids)

wp-config.php 中限制文章修订版本数量,并延长自动保存间隔:

define('WP_POST_REVISIONS',3);
define('AUTOSAVE_INTERVAL',300);

wp_postmeta 表添加索引,加速元数据查询,执行 SQL 语句:

ALTERTABLEwp_postmetaADDINDEXmeta_key_post_id(meta_key(191),post_id);
ALTERTABLEwp_postsADDINDEXpost_type_status_date(post_type,post_status,post_date);

删除孤立的 postmeta 记录,优化表结构:

DELETEpmFROMwp_postmetapm
LEFTJOINwp_postswpONwp.ID=pm.post_id
WHEREwp.IDISNULL;

每月执行一次数据库优化,避免数据碎片影响查询性能。

图片体积压缩与现代格式

使用 Converter for Media 或 ShortPixel 插件将 JPG、PNG 图片自动转换为 WebP 或 AVIF 格式,WebP 可在保持画质的同时减少 30% 到 50% 的文件体积,上传图片前,将全宽博客图尺寸控制在 1600px 以内,缩略图使用 800px 宽度,在文章图片标签中启用原生懒加载:

<imgsrc="image.webp"alt="示例图片"loading="lazy"width="1200"height="675">

对于 WordPress 后台媒体库中的现有图片,批量压缩并生成 WebP 副本,使用 CDN 图片处理参数动态缩放图片,Cloudflare 的图片资源可以通过 width 参数调整尺寸,背景图片使用 CSS 媒体查询加载不同分辨率版本,减少移动端不必要的下载。

CSS 与 JavaScript 文件优化

安装 Autoptimize 或 Perfmatters 插件,进入设置勾选 CSS 合并与压缩、JavaScript 合并与压缩,合并多个样式表和脚本文件可以减少 HTTP 请求数量,对于非关键 CSS,将其内联到页面头部,关键 CSS 单独加载,使用插件或主题代码移除 WordPress 默认加载的 Emoji 脚本、Dashicons 和嵌入脚本:

remove_action('wp_head','print_emoji_detection_script',7);
remove_action('wp_print_styles','print_emoji_styles');
remove_action('wp_head','wp_generator');
remove_action('wp_head','wlwmanifest_link');
remove_action('wp_head','rsd_link');

将非关键 JavaScript 添加 deferasync 属性,避免阻塞页面渲染,在插件设置中排除 jQuery 或主题依赖的脚本,防止加载顺序错误,对于第三方脚本,如广告、统计代码,使用延迟加载或加载后执行,降低首屏影响。

CDN 配置与静态资源分离

注册 Cloudflare 免费账户,将域名 DNS 接入,开启代理,在 Cloudflare 的缓存规则中,设置静态资源缓存策略:

example.com/wp-content/uploads/*
CacheLevel:CacheEverything
EdgeCacheTTL:1month

配置源服务器与 CDN 之间的 Brotli 压缩,减少传输体积,使用 W3 Total Cache 或 WP Rocket 设置 CDN URL 替换,将 wp-contentwp-includes 下的静态文件走 CDN 域名,开启 HTTP/2 或 HTTP/3,支持多路复用,减少连接开销。

对于图片、CSS、JavaScript 等带版本参数的静态文件,设置一年缓存时间,CDN 缓存清除可通过插件或 API 自动触发,确保文章更新后访问者能获取最新内容。

浏览器缓存与压缩响应

在 Nginx 配置中添加静态资源缓存规则:

location~*\.(webp|avif|jpg|jpeg|png|gif|css|js|woff2)${
expires365d;
add_headerCache-Control"public,immutable";
}
gzipon;
gzip_typestext/plaintext/cssapplication/jsonapplication/javascriptimage/svg+xml;
gzip_min_length1024;

如果使用 Apache,在 .htaccess 中启用 mod_expiresmod_deflate

<IfModulemod_expires.c>
ExpiresActiveOn
ExpiresByTypeimage/webp"accessplus1year"
ExpiresByTypetext/css"accessplus1month"
ExpiresByTypeapplication/javascript"accessplus1month"
</IfModule>
<IfModulemod_deflate.c>
AddOutputFilterByTypeDEFLATEtext/htmltext/cssapplication/javascriptapplication/json
</IfModule>

对 HTML 响应设置 Cache-Control: public, max-age=3600,对登录用户禁用页面缓存,避免缓存个人信息,启用 HTTP 实体标签和 Last-Modified,帮助浏览器进行条件请求。

主题与插件减负

停用未使用插件,每个插件都可能增加数据库查询和前端脚本加载,使用 Query Monitor 分析首页查询数和执行时间,超过 80 条查询需要排查,替换重型页面构建器,使用原生区块编辑器或 GeneratePress、Kadence 等轻量主题,关闭不需要的 WordPress REST API 端点、XML-RPC,修改 wp-config.php 或主题 functions.php

add_filter('xmlrpc_enabled','__return_false');
add_filter('rest_authentication_errors',function($result){
if(!is_user_logged_in()){
returnnewWP_Error('rest_forbidden','RESTAPIrestricted',array('status'=>401));
}
return$result;
});

移除登录页不必要的脚本,优化后台加载速度,对于页面构建器,避免嵌套过深,减少 DOM 节点数量,提升浏览器渲染速度。

资源提示与预加载

在主题 header.php 或插件中添加 DNS 预解析和预连接,减少第三方资源连接时间:

<linkrel="preconnect"href="https://cdn.example.com">
<linkrel="dns-prefetch"href="https://fonts.gstatic.com">

对首屏关键图片使用 fetchpriority="high",延迟加载视口下方 iframe,将 Google Fonts 本地托管或使用系统字体栈,避免额外的第三方请求,在文章列表页,对第一篇文章的关键图片进行预加载,提升 Largest Contentful Paint 指标。

安全策略与监控

启用 HTTPS 全站,添加 HSTS 头,强制浏览器使用加密连接,使用 WordPress 防火墙插件限制恶意爬虫和暴力登录消耗服务器资源,用 PageSpeed Insights 和 GTmetrix 定期测试移动端与桌面端性能,开启 Nginx 访问日志分析慢请求,MySQL 慢查询日志记录超过 1 秒的 SQL 并优化索引,每季度审查插件更新和主题代码变更,移除过时功能,保持站点轻量高效。

0