218 lines
5.0 KiB
Markdown
218 lines
5.0 KiB
Markdown
---
|
|
name: wp-performance
|
|
description: Auditoria e optimização de performance WordPress. Analisa velocidade, caching, base de dados e assets. Usa Lighthouse, métricas Core Web Vitals e checklist sistemático.
|
|
layer: wiki
|
|
---
|
|
|
|
# /wp-performance - Auditoria Performance WordPress
|
|
|
|
Checklist sistemático para auditar e optimizar performance de sites WordPress.
|
|
|
|
## Contexto NotebookLM
|
|
|
|
ANTES de executar, consultar notebooks para contexto especializado:
|
|
|
|
| Notebook | ID | Consultar quando |
|
|
|----------|-----|-----------------|
|
|
| WordPress e Elementor | 5be0d1a6 | Sempre |
|
|
|
|
```
|
|
mcp__notebooklm__notebook_query({
|
|
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601",
|
|
query: "<adaptar ao contexto do pedido do utilizador>"
|
|
})
|
|
```
|
|
|
|
Integrar insights do NotebookLM nas recomendações e decisões.
|
|
|
|
### Procedimentos Relacionados
|
|
- `PROC-WordPress-Performance-Standard.md` — Standards de performance WP
|
|
|
|
---
|
|
|
|
## Uso
|
|
|
|
```
|
|
/wp-performance https://site.pt
|
|
/wp-performance site.pt
|
|
```
|
|
|
|
---
|
|
|
|
## Execução
|
|
|
|
### Passo 1: Lighthouse (Performance Geral)
|
|
|
|
```javascript
|
|
// Auditoria Lighthouse mobile + desktop
|
|
const [mobile, desktop] = await Promise.all([
|
|
mcp__lighthouse__get_performance_score({ url, device: "mobile" }),
|
|
mcp__lighthouse__get_performance_score({ url, device: "desktop" })
|
|
]);
|
|
|
|
const vitals = await mcp__lighthouse__get_core_web_vitals({ url });
|
|
```
|
|
|
|
### Passo 2: Verificações Servidor (SSH)
|
|
|
|
```javascript
|
|
// Se site está no servidor CWP (176.9.3.158)
|
|
const server_checks = [
|
|
// GZIP activo?
|
|
`curl -sI -H 'Accept-Encoding: gzip' ${url} | grep -i 'content-encoding'`,
|
|
|
|
// HTTP/2 activo?
|
|
`curl -sI --http2 ${url} | head -1`,
|
|
|
|
// Certificado SSL válido?
|
|
`echo | openssl s_client -connect ${domain}:443 2>/dev/null | openssl x509 -noout -dates`,
|
|
|
|
// PHP version
|
|
`php -v | head -1`
|
|
];
|
|
```
|
|
|
|
### Passo 3: Verificações WordPress (WP-CLI via SSH)
|
|
|
|
```javascript
|
|
// Se temos acesso SSH ao site
|
|
const wp_checks = [
|
|
// Cache plugin activo?
|
|
`sudo -u ${user} wp plugin list --status=active | grep -E 'cache|w3|wp-super|litespeed'`,
|
|
|
|
// Plugins activos (contar)
|
|
`sudo -u ${user} wp plugin list --status=active --format=count`,
|
|
|
|
// Tema activo
|
|
`sudo -u ${user} wp theme list --status=active --format=csv`,
|
|
|
|
// Tamanho da BD
|
|
`sudo -u ${user} wp db size --format=csv`,
|
|
|
|
// Autoload options (problema comum)
|
|
`sudo -u ${user} wp db query "SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes'" --skip-column-names`,
|
|
|
|
// Revisões de posts (limpeza)
|
|
`sudo -u ${user} wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type='revision'" --skip-column-names`,
|
|
|
|
// Transients expirados
|
|
`sudo -u ${user} wp transient delete --expired --network 2>/dev/null || echo 'N/A'`
|
|
];
|
|
```
|
|
|
|
### Passo 4: Análise de Imagens
|
|
|
|
```javascript
|
|
// Verificar imagens não optimizadas
|
|
const image_checks = [
|
|
// Imagens grandes (>500KB)
|
|
`find ${wp_path}/wp-content/uploads -type f \\( -name "*.jpg" -o -name "*.png" \\) -size +500k | wc -l`,
|
|
|
|
// WebP disponível?
|
|
`find ${wp_path}/wp-content/uploads -name "*.webp" | head -5`,
|
|
|
|
// Total imagens
|
|
`find ${wp_path}/wp-content/uploads -type f \\( -name "*.jpg" -o -name "*.png" -o -name "*.webp" \\) | wc -l`
|
|
];
|
|
```
|
|
|
|
---
|
|
|
|
## Output Template
|
|
|
|
```markdown
|
|
# WP Performance Audit - [site.pt]
|
|
|
|
**Data:** YYYY-MM-DD
|
|
**URL:** https://site.pt
|
|
|
|
---
|
|
|
|
## Resumo Executivo
|
|
|
|
| Métrica | Mobile | Desktop | Status |
|
|
|---------|--------|---------|--------|
|
|
| Performance | XX | XX | ✅/⚠️/❌ |
|
|
| LCP | X.Xs | X.Xs | ✅/⚠️/❌ |
|
|
| CLS | X.XX | X.XX | ✅/⚠️/❌ |
|
|
| TBT | XXXms | XXXms | ✅/⚠️/❌ |
|
|
|
|
---
|
|
|
|
## Checklist Servidor
|
|
|
|
| Item | Status | Nota |
|
|
|------|--------|------|
|
|
| GZIP | ✅/❌ | |
|
|
| HTTP/2 | ✅/❌ | |
|
|
| SSL | ✅/❌ | Expira: DD/MM |
|
|
| PHP Version | X.X | |
|
|
|
|
---
|
|
|
|
## Checklist WordPress
|
|
|
|
| Item | Status | Valor |
|
|
|------|--------|-------|
|
|
| Cache Plugin | ✅/❌ | [nome] |
|
|
| Plugins Activos | ⚠️ | XX (recomendado <20) |
|
|
| Tamanho BD | ⚠️ | XX MB |
|
|
| Autoload Size | ⚠️ | XX KB (recomendado <1MB) |
|
|
| Revisões | ⚠️ | XX (limpar se >100) |
|
|
|
|
---
|
|
|
|
## Checklist Imagens
|
|
|
|
| Item | Valor | Acção |
|
|
|------|-------|-------|
|
|
| Imagens >500KB | XX | Optimizar |
|
|
| WebP activo | ✅/❌ | Converter |
|
|
| Total imagens | XX | - |
|
|
|
|
---
|
|
|
|
## Recomendações Prioritárias
|
|
|
|
1. **[CRÍTICO]** Descrição...
|
|
2. **[ALTO]** Descrição...
|
|
3. **[MÉDIO]** Descrição...
|
|
|
|
---
|
|
|
|
## Comandos de Correcção
|
|
|
|
```bash
|
|
# Limpar revisões (manter últimas 5)
|
|
wp post delete $(wp post list --post_type='revision' --format=ids) --force
|
|
|
|
# Limpar transients
|
|
wp transient delete --all
|
|
|
|
# Optimizar BD
|
|
wp db optimize
|
|
```
|
|
|
|
---
|
|
|
|
*Gerado via /wp-performance - YYYY-MM-DD*
|
|
```
|
|
|
|
---
|
|
|
|
## Thresholds
|
|
|
|
| Métrica | ✅ Bom | ⚠️ Médio | ❌ Mau |
|
|
|---------|--------|----------|--------|
|
|
| Performance Score | >70 | 50-70 | <50 |
|
|
| LCP | <2.5s | 2.5-4s | >4s |
|
|
| CLS | <0.1 | 0.1-0.25 | >0.25 |
|
|
| TBT | <200ms | 200-600ms | >600ms |
|
|
| Plugins | <20 | 20-30 | >30 |
|
|
| BD Size | <100MB | 100-500MB | >500MB |
|
|
| Autoload | <1MB | 1-2MB | >2MB |
|
|
| Revisões | <100 | 100-500 | >500 |
|
|
|
|
---
|
|
|
|
## Sites WordPres |