135 lines
4.9 KiB
Markdown
135 lines
4.9 KiB
Markdown
---
|
|
name: rank-math
|
|
description: Gestão programática do Rank Math SEO (Free e PRO) via WP-CLI em servidores CWP. Cobre auditoria SEO, meta em massa, schema markup, redirects, sitemaps, Instant Indexing, Analytics PRO, hooks/filtros, taxonomias WooCommerce, News/Video Sitemap, validação e rollback. Usar quando "rank math", "seo cli", "schema markup", "redirects seo", "instant indexing", "indexnow", "seo bulk", "rankmath pro".
|
|
layer: wiki
|
|
---
|
|
|
|
# /rank-math — Gestão Programática Rank Math SEO via WP-CLI
|
|
|
|
Operações SEO WordPress completas via WP-CLI no servidor CWP. Free + PRO.
|
|
|
|
**Manual completo:** `Hub/06-Operacoes/Documentacao/Manuais/WP-CLI/Rank-Math-WP-CLI-Manual-Definitivo.md`
|
|
**Quick Reference:** `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-RankMath-WP-CLI.md`
|
|
**Pesquisa Claude:** `Hub/06-Operacoes/Documentacao/Manuais/WP-CLI/Rank-Math-SEO-WP-CLI-Skils-Pesquisa-Claude.md`
|
|
**Pesquisa Gemini:** `Hub/06-Operacoes/Documentacao/Manuais/WP-CLI/Rank-Math-SEO-WP-CLI-Skills-Pesquisa-Gemini.md`
|
|
**NotebookLM:** [WordPress Config CLI](https://notebooklm.google.com/notebook/fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d)
|
|
**Skill relacionada:** `/seo-post` — optimizar posts individuais com pipeline completo
|
|
|
|
---
|
|
|
|
## Contexto NotebookLM
|
|
|
|
ANTES de executar, consultar notebooks para contexto especializado:
|
|
|
|
| Notebook | ID | Consultar quando |
|
|
|----------|-----|-----------------|
|
|
| WordPress e Elementor | 5be0d1a6 | Sempre |
|
|
| Marketing Digital PT | 4c595973 | Para contexto SEO |
|
|
|
|
```
|
|
mcp__notebooklm__notebook_query({
|
|
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601",
|
|
query: "<adaptar ao contexto do pedido do utilizador>"
|
|
})
|
|
```
|
|
|
|
---
|
|
|
|
## Uso
|
|
|
|
```
|
|
/rank-math audit SITE_PATH
|
|
/rank-math update-meta SITE_PATH
|
|
/rank-math sitemap SITE_PATH
|
|
/rank-math redirects SITE_PATH
|
|
/rank-math schema post ID SITE_PATH
|
|
/rank-math indexing SITE_PATH [URL|bulk]
|
|
/rank-math analytics SITE_PATH
|
|
/rank-math taxonomy SITE_PATH
|
|
/rank-math hooks SITE_PATH
|
|
/rank-math backup SITE_PATH
|
|
/rank-math provision SITE_PATH
|
|
```
|
|
|
|
---
|
|
|
|
## Contexto CWP — sempre obrigatorio
|
|
|
|
```bash
|
|
# Formato base (PHP 8.3)
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp <comando> --allow-root --path=/home/USER/public_html
|
|
|
|
# Alias
|
|
wp83 <comando> --allow-root --path=/home/USER/public_html
|
|
```
|
|
|
|
**Acesso via MCP SSH:**
|
|
```
|
|
servidor: server.descomplicar.pt (176.9.3.158) | porta: 9443 | user: root
|
|
```
|
|
|
|
**Prefixo de tabelas:** Sites podem ter prefixo custom (ex: `wpah_` em vez de `wp_`). Detectar primeiro:
|
|
```bash
|
|
PREFIX=$(wp db prefix --allow-root --path=$PATH)
|
|
# Usar $PREFIX em todas as queries SQL: ${PREFIX}posts, ${PREFIX}postmeta, etc.
|
|
```
|
|
|
|
**Unico comando nativo Rank Math:**
|
|
```bash
|
|
wp rankmath sitemap generate --allow-root --path=$PATH
|
|
```
|
|
|
|
Tudo o resto usa `wp post meta`, `wp option patch`, `wp eval` ou `wp db query`.
|
|
|
|
**Options com defaults:** Muitas sub-keys (title_separator, strip_category_base, homepage_title, knowledgegraph_type) podem nao existir na BD se nunca foram alteradas — o Rank Math usa valores por defeito internos. `wp option pluck` retorna exit code 1 neste caso. Nao e erro — significa valor default.
|
|
|
|
---
|
|
|
|
## Decision tree — qual comando usar
|
|
|
|
| Operacao | Comando |
|
|
|----------|---------|
|
|
| Alterar meta de 1 post | `wp post meta update` |
|
|
| Alterar sub-key em option serializada | `wp option patch update` |
|
|
| Ler sub-key de option | `wp option pluck` |
|
|
| Schema complexo | `wp eval` com PHP |
|
|
| Redirects | `wp eval` com `\RankMath\Redirections\DB` |
|
|
| Bulk simples | shell loop com `wp post list \| while read` |
|
|
| Bulk complexo | `wp eval-file` com script PHP |
|
|
| SQL directo | apenas auditorias (seguido de `wp cache flush`) |
|
|
| Regenerar sitemap | `wp rankmath sitemap generate` |
|
|
| Instant Indexing | `wp eval` com IndexNow API ou classes RM |
|
|
| Side-effects RM | `wp eval` com `update_option()` (dispara hooks) |
|
|
|
|
---
|
|
|
|
## 1. Auditoria SEO (/rank-math audit)
|
|
|
|
### Passo 1 — diagnostico rapido
|
|
|
|
```bash
|
|
PATH=/home/USER/public_html
|
|
PREFIX=$(wp db prefix --allow-root --path=$PATH)
|
|
|
|
# Posts sem titulo SEO
|
|
wp db query "SELECT p.ID, p.post_title FROM ${PREFIX}posts p
|
|
LEFT JOIN ${PREFIX}postmeta pm ON p.ID=pm.post_id AND pm.meta_key='rank_math_title'
|
|
WHERE p.post_type='post' AND p.post_status='publish'
|
|
AND (pm.meta_value IS NULL OR pm.meta_value='');" --allow-root --path=$PATH
|
|
|
|
# Posts sem descricao SEO
|
|
wp db query "SELECT p.ID, p.post_title FROM ${PREFIX}posts p
|
|
LEFT JOIN ${PREFIX}postmeta pm ON p.ID=pm.post_id AND pm.meta_key='rank_math_description'
|
|
WHERE p.post_type='post' AND p.post_status='publish'
|
|
AND (pm.meta_value IS NULL OR pm.meta_value='');" --allow-root --path=$PATH
|
|
|
|
# Distribuicao de SEO scores
|
|
wp db query "SELECT
|
|
CASE WHEN CAST(meta_value AS UNSIGNED) >= 80 THEN 'Bom (80-100)'
|
|
WHEN CAST(meta_value AS UNSIGNED) >= 50 THEN 'OK (50-79)'
|
|
ELSE 'Fraco (0-49)' END AS faixa,
|
|
COUNT(*) AS total
|
|
FROM ${PREFIX}postmeta WHERE meta_key = 'rank_math_seo_score' GROUP BY faixa;" --allow-root --path=$PATH
|
|
|
|
# Top 404s (ultimos 30 dias)
|
|
wp db query "SELECT uri, SUM(times_acce |