--- name: wp-meteor description: Diagnóstico e configuração do WP Meteor (delay/reorder de JavaScript não crítico) via WP-CLI em servidores CWP. Cobre os 5 módulos reais do plugin — `ultimate-reorder` (atraso de execução de JS até interacção do utilizador, com modo "zero delay" e modo "só interacção"), `exclude` (exclusões manuais por regex), `gdpr` (exclusões automáticas para 8 plugins de cookies), `elementor-animations` e `elementor-pp` (emulação do menu Elementor PowerPack Pro — NÃO é "Elementor Pro") — mais o módulo interno `Compatibility` (sempre activo, não configurável, com exclusões automáticas para dezenas de outros optimizadores). Cobre também os mecanismos de bypass automático (query strings, user agents, page builders, conflito com WP Rocket/Nitropack/FastPixel), o endpoint REST `wpmeteor/v1/detect`, e diagnóstico de CLS/CWV com Chrome DevTools performance trace. Usar quando "wp meteor", "wpmeteor", "atraso javascript", "delay js", "ultimate reorder", "cls alto", "layout shift", "core web vitals wordpress", "facade pattern js", "js não crítico", "elementor powerpack pro", "zero delay mode", "wpmeteordisable", "wpmeteordebug". --- # /wp-meteor — Diagnóstico e config do WP Meteor (delay de JavaScript) Plugin de performance de terceiros (`wp-meteor`, autor Aleksandr Guidrevitch, v`3.4.18`). Melhora TBT/INP **atrasando a execução de JavaScript não crítico** até à primeira interacção do utilizador ou até um timeout fixo. Config completa numa única option serializada, `wp_options.wp-meteor-settings` (array PHP, **5 módulos reais** + versão + campo interno `detected`). Catálogo confirmado por leitura completa do código-fonte do plugin (5718 linhas em todos os `.php`, sessão 16-08-2026) — não há módulos escondidos por descobrir; o que está documentado abaixo é o total. Confirmado activo em `emanuelalmeida.pt` (16-08-2026, esta sessão). **Não confirmado noutros sites do bundle** — `wp plugin get wp-meteor` em `carstuff.pt` devolveu vazio/erro, i.e. não está instalado lá. Verificar sempre por site antes de assumir que está presente. --- ## Comandos base (SSH + WP-CLI, servidor CWP) ```bash PATH=/home/USER/public_html # ex: /home/ealmeida/emanuelalmeida.pt # Ler a option completa (fonte de verdade) sudo -u USER /usr/local/bin/wp option get wp-meteor-settings --format=json --path=$PATH # Confirmar versão e estado do plugin sudo -u USER /usr/local/bin/wp plugin get wp-meteor --format=json --path=$PATH # Via SSH directo (alias `server` já configurado, porta 9443) ssh server "sudo -u USER /usr/local/bin/wp option get wp-meteor-settings --path=$PATH --format=json 2>/dev/null" ``` Os avisos PHP (`WP_DEBUG_LOG already defined`) que aparecem em `stderr` são ruído do ambiente — ignorar, não é erro do plugin. --- ## Estrutura real da option `wp-meteor-settings` (verificado ao vivo) ```json { "ultimate-reorder": { "enabled": true, "id": "ultimate-reorder", "delay": "2", "description": "" }, "gdpr": { "enabled": true, "id": "gdpr", "description": "Most of the time, you want your GDPR/Cookie to be displayed instantly..." }, "exclude": { "enabled": true, "id": "exclude", "description": "Specify URLs or keywords or regular expressions... GA and GTM", "value": [] }, "elementor-animations": { "enabled": true, "id": "elementor-animations", "description": "" }, "elementor-pp": { "enabled": true, "id": "elementor-pp", "description": "" }, "v": "3.4.18" } ``` | Módulo | Estado real | O que faz | |---|---|---| | `ultimate-reorder` | `enabled=true`, **`delay=2`** (segundos, string) | Mecanismo central — ver secção seguinte | | `gdpr` | `enabled=true` | Impede que o banner de cookies/GDPR seja atrasado — aparece instantaneamente | | `exclude` | `enabled=true`, **`value: []` — lista vazia** | ⚠️ Lista de URLs/palavras-chave/regex a excluir do atraso. **Nada está excluído hoje.** A própria descrição da opção sugere excluir menus, carrosséis do hero, GA e GTM — nenhum destes está configurado | | `elementor-animations` | `enabled=true` | Compatibilidade com animações nativas do Elementor (deixa correr entrance animations mesmo com scripts atrasados) | | `elementor-pp` | `enabled=true` | ⚠️ **Não é "Elementor Pro"** — emula o menu do plugin de terceiros **Elementor PowerPack Pro** (Livemesh). Título real no código: `"Emulate Elementor Powerpack Pro menu"`. Se o site não usa PowerPack Pro, este módulo é irrelevante e pode ficar ligado sem efeito | | `v` | `"3.4.18"` | Versão do plugin no momento em que a option foi gravada (não confundir com a versão instalada — confirmar sempre via `wp plugin get`) | | `detected` | não presente hoje (array, quando existe) | Campo interno alimentado pelo endpoint REST `wpmeteor/v1/detect` (JS de admin reporta ferramentas de terceiros detectadas, ex. `"marketo"`, `"hubspot"` — dispara um aviso admin sugerindo contacto com o autor do plugin para optimizações extra) | Estes **5 módulos são o catálogo completo e definitivo** desta versão do plugin (`3.4.18`) — confirmado por leitura de todo o código-fonte, não só da option gravada. **O plugin NÃO tem** (verificado directamente no código, ausência confirmada, não assumida): - Lazy loading de imagens/iframes — zero. - Defer/async de scripts como toggle independente — o mecanismo de delay é tudo-ou-nada por script, controlado só pelo `ultimate-reorder`. - Remoção de query strings de assets estáticos. - Preconnect/dns-prefetch configurável — existe um `preconnect: true` interno calculado automaticamente (`frontend_adjust_wpmeteor` em `UltimateReorder.php`), mas não há opção na UI nem chave na option para o utilizador controlar. - Critical CSS / CSS não usado. - Qualquer módulo específico de WooCommerce (existe apenas uma exclusão automática fixa para um script de troca de classe `woocommerce-no-js` → `woocommerce-js`, dentro do módulo interno `Compatibility`, não é um módulo à parte nem é configurável). Não confundir com outros plugins de performance (WP Rocket, Autoptimize, etc.) que têm estas features — o WP Meteor é deliberadamente um plugin de um truque só (delay de JS), bem executado, com módulos de compatibilidade à volta desse truque. --- ## Como funciona o `ultimate-reorder` (delay/facade pattern) Padrão clássico de optimização de TBT/INP: em vez de deixar o browser executar todo o JavaScript da página logo no carregamento (bloqueando a main thread), o plugin **intercepta os `