关于 wp-performance
wp-performance 是用于诊断和优化 WordPress 后端性能的技能,适合排查网站、管理界面、REST 接口和 WP-Cron 的速度问题。它强调先测量基线,再用 WP-CLI 和日志定位瓶颈并复测。
主要功能
- 01采集性能基线并检查环境
- 02使用 WP-CLI 进行诊断和分析
- 03检查自动加载选项与对象缓存
- 04定位数据库、远程请求和 Cron 瓶颈
- 05对比优化前后的性能数据
适用场景
- 01调查页面或 REST 接口响应缓慢
- 02定位管理界面或 WP-Cron 的性能问题
- 03分析数据库查询与自动加载选项
- 04验证缓存或代码优化效果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wordpress/ agent-skills --skill wp-performance安装后在 Claude Code 中输入/wp-performance确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/autoload-options.mdcron.mddatabase.mdhttp-api.mdmeasurement.mdobject-cache.mdquery-monitor-headless.mdserver-timing.mdwp-cli-doctor.mdwp-cli-profile.mdscripts/perf_inspect.mjs详细介绍
WP Performance(仅后端)
适用场景
在以下情况下使用此技能:
- WordPress 网站/页面/端点速度慢(前端 TTFB、管理后台、REST、WP-Cron)
- 需要分析方案和工具建议(WP-CLI profile/doctor、Query Monitor、Xdebug/XHProf、APM)
- 正在优化数据库查询、自动加载的选项、对象缓存、cron 任务或远程 HTTP 调用
此技能假设 Agent 无法使用浏览器界面。优先使用 WP-CLI、日志和 HTTP 请求。
所需输入
- 环境和安全限制:dev/staging/prod、任何限制(禁止写入、禁止安装插件)。
- 如何指定安装位置:
- WordPress 根目录
--path=<path> - (多站点/站点指定)
--url=<url>
- WordPress 根目录
- 性能症状和范围:
- 涉及哪个 URL/REST 路由/管理界面
- 发生时间(始终发生还是偶发;已登录还是未登录)
流程
0) 安全措施:先测量,避免高风险操作
- 确认是否允许执行写入操作(安装插件、修改配置、清空缓存)。
- 选择一个可复现的目标(URL 或 REST 路由)并记录基线:
- 如可行,使用
curl测量 TTFB/耗时 - 如可用,使用 WP-CLI 进行性能分析
- 如可行,使用
阅读:
references/measurement.md
1) 生成仅后端的性能报告(确定性)
运行:
node skills/wp-performance/scripts/perf_inspect.mjs --path=<path> [--url=<url>]
此命令会检测:
- WP-CLI 是否可用以及核心版本
wp doctor/wp profile是否可用- 自动加载的选项大小(如可行)
- 是否存在 object-cache drop-in
2) 快速见效:先运行诊断,再进行深入分析
如果可以使用 WP-CLI,优先运行:
wp doctor check --all(添加--spotlight,仅显示警告和错误)- 或指定检查项,进行以性能为重点的检查:
wp doctor check autoload-options-size constant-savequeries-falsy constant-wp-debug-falsy
如果 wp doctor check 未指定检查项且没有 --all,就会报错退出,而不会运行任何检查。
它可以发现常见的生产环境隐患(自动加载内容膨胀、SAVEQUERIES/WP_DEBUG、插件数量、更新)。
阅读:
references/wp-cli-doctor.md
3) 深入分析(无需浏览器)
优先顺序:
- 使用
wp profile stage查看耗时分布(bootstrap/main_query/template)。 - 使用
wp profile hook(可选添加--url=)查找耗时较长的钩子/回调。 - 使用
wp profile eval分析指定代码路径。
阅读:
references/wp-cli-profile.md
4) Query Monitor(仅后端使用)
Query Monitor 通常通过界面操作,但也可以通过 REST API 响应标头和 _envelope 响应以无界面方式使用:
- 进行身份验证(nonce 或 Application Password)。
- 请求 REST 响应并检查标头(
x-qm-*),和/或使用?_envelope时检查qm属性。
阅读:
references/query-monitor-headless.md
5) 按类别修复(选择主要瓶颈)
根据性能分析输出,选择一个主要瓶颈类别:
- 数据库查询 → 减少查询次数、修复 N+1 模式、优化索引、避免开销大的 meta 查询。
references/database.md
- 自动加载的选项 → 找出占用最大的自动加载选项,并停止自动加载大型数据块。
references/autoload-options.md
- 对象缓存未命中 → 添加缓存或修复缓存键/组的用法;在适当情况下添加持久化对象缓存。
references/object-cache.md
- 远程 HTTP 调用 → 添加超时、缓存和批处理;避免每次请求都调用远程 API。
references/http-api.md
- Cron → 减少到期任务集中执行造成的峰值、去重事件,并将繁重任务移出请求路径。
references/cron.md
6) 验证(重复相同的测量)
- 重新运行相同的
wp profile/wp doctor/ REST 请求。 - 确认性能变化,并确保行为未变。
- 如果修复存在风险,尽可能通过功能开关或分阶段推出。
WordPress 6.9 性能改进
性能分析时,请注意 6.9 的以下变化:
经典主题的按需 CSS:
- 经典主题现在也支持按需加载 CSS(此前只有区块主题支持)。
- 仅加载页面上实际使用的区块样式,可减少 30-65% 的 CSS 载荷。
- 如果你正在分析经典主题,这项改进应该已经生效。
没有渲染阻塞资源的区块主题:
- 未定义自定义样式表的区块主题(例如 Twenty Twenty-Three/Four)现在可以在完全没有渲染阻塞 CSS 的情况下加载。
- 样式来自全局样式(theme.json)和单独的区块样式,并且全部内联。
- 这会显著改善 LCP(最大内容绘制)。
提高内联 CSS 限制:
- 提高了内联小型样式表的阈值,从而减少渲染阻塞资源。
参考:https://make.wordpress.org/core/2025/11/18/wordpress-6-9-frontend-performance-field-guide/
验证
- 已记录基线与改进后的数据(环境和 URL/路由相同)。
- 适用时,
wp doctor check --all检查结果正常(或有所改善)。 - 日志中没有新增 PHP 错误或警告。
- 正确性不依赖清除缓存(清除缓存应作为最后手段)。
故障模式/调试
- 代码更改后“没有变化”:
- 测量的是不同的 URL/站点(
--url不匹配)、缓存掩盖了结果,或者操作码缓存已过期
- 测量的是不同的 URL/站点(
- 性能分析数据波动较大:
- 排除后台任务的影响,在缓存预热后测试,并运行多次采样
SAVEQUERIES/Query Monitor 会造成开销:- 除非获得明确批准,否则不要在生产环境中运行
升级处理
- 如果这是生产环境且你没有明确批准,请勿:
- 在流量高峰期间安装插件、启用
SAVEQUERIES、运行负载测试或清除缓存
- 在流量高峰期间安装插件、启用
- 如果需要进行系统级性能分析(APM、PHP 性能分析扩展),请与运维/托管服务提供方协调。
评论
支持 Markdown