Como corrigir o conflito entre Elementor e WP Rocket no WordPress
O que é o conflito entre Elementor e WP Rocket?
O Elementor monta cada página em tempo de carregamento usando JavaScript próprio (elementor-frontend), folhas de estilo geradas dinamicamente na pasta uploads/elementor/css e dependencias como jQuery, Swiper e os icones eicons. O WP Rocket, para acelerar o site, adia e combina esse JavaScript (Delay JavaScript Execution, Load JavaScript deferred) e remove o CSS que considera não usado em cada página (Remove Unused CSS, Load CSS Asynchronously).
O conflito surge quando essas otimizacoes atingem exatamente os arquivos de que o Elementor depende para renderizar e para abrir o editor. O Delay JavaScript Execution segura o script do Elementor até o usuário interagir, e o editor depende desse script para carregar. O Remove Unused CSS apaga regras que o construtor usa em popups, menus e animacoes porque elas não aparecem na primeira renderizacao. Nenhum dos plugins esta quebrado: eles disputam o controle dos mesmos arquivos. Por isso a FULL trata Elementor e WP Rocket como um par a ser configurado junto, não como dois plugins isolados.
Como identificar
- O editor do Elementor não abre depois de ativar o WP Rocket: a tela fica travada em “Carregando” ou em branco.
- O layout aparece correto dentro do editor mas quebra no frontend depois que o cache e gerado.
- Widgets, popups do Elementor PRO ou o indicador de submenu do menu de navegação somem ou perdem o estilo.
- Icones do Elementor (eicons) e fontes desaparecem ou viram quadrados depois de limpar o cache.
- Efeito sticky (cabeçalho ou coluna fixa) para de funcionar quando a página rola.
- Alterações feitas no editor não aparecem no site até limpar o cache do WP Rocket manualmente.
Como prevenir
- Ative o Elementor nas One-click exclusions do Delay JavaScript Execution antes de ligar a otimização agressiva em producao
- Sempre que adicionar um plugin ou template do Elementor, limpe o Used CSS do WP Rocket para o cache não servir um CSS incompleto
- Teste cada nova opção de otimização do WP Rocket no frontend com ?nowprocket para comparar a página com e sem cache antes de confiar nela
- Mantenha Elementor, Elementor PRO e WP Rocket atualizados: o WP Rocket distribui listas de compatibilidade (dynamic-lists.json) que já excluem arquivos do Elementor automaticamente
Causa
- Delay JavaScript Execution adia o carregamento do elementor-frontend e das dependencias (jQuery, Swiper), e o editor e os widgets dependem desse JavaScript para inicializar.
- Remove Unused CSS apaga regras que o Elementor usa em popups, menus e animacoes porque elas não aparecem na primeira renderizacao da página (Used CSS incompleto).
- Load CSS Asynchronously / Optimize CSS Delivery adia o CSS dinâmico do Elementor gerado em uploads/elementor/css, deixando a página sem estilo no primeiro paint.
- Load JavaScript deferred quebra o efeito sticky do Elementor PRO ao adiar o jquery.sticky.min.js que mantem o elemento fixo na rolagem.
- Minify/Combine CSS muda a ordem das folhas e o post CSS do Elementor entra fora de sequencia (o WP Rocket já exclui o post CSS do Minify por padrão para evitar isso).
- Cache de página servindo o HTML antigo: o WP Rocket entrega a versão em cache enquanto o Elementor já gerou um novo CSS, e a página renderiza com o estilo desatualizado.
Como resolver
- Limpe o cache e regenere o CSS dos dois lados: limpe o cache do WP Rocket e regenere os arquivos do Elementor para descartar HTML e CSS desatualizados antes de qualquer ajuste fino. Esse passo sozinho resolve o sintoma de "alteração não aparece".
WP Rocket > Painel > Limpar cache WP Rocket > Painel > Remover CSS usado (Clear Used CSS) Elementor > Ferramentas > Regenerar arquivos e dados - Confirme se o editor do Elementor esta excluido do cache: abra uma página com ?nowprocket no fim da URL para carregar sem o WP Rocket. Se o editor abre e o layout volta ao normal, esta confirmado que a otimização do cache e a causa, e não um bug do Elementor.
https://seusite.com/qualquer-página/?nowprocket - Resolva o editor que não abre: ajuste o Delay JavaScript Execution: no WP Rocket, em Otimização de arquivos, marque as caixas de One-click exclusions (Exclusoes em um clique) referentes ao Elementor. Se o editor ou os widgets continuarem quebrados, adicione os handles do Elementor na caixa Excluded JavaScript files.
WP Rocket > Otimização de arquivos > Delay JavaScript Execution > One-click exclusions > marcar Elementor - Excluded JavaScript files:
/elementor/assets/js/frontend(.min)?.js /elementor-pro/assets/js/frontend(.min)?.js /elementor/assets/lib/swiper/ eicons - Resolva o layout quebrado: use o CSS Safelist do Remove Unused CSS: mantenha o Remove Unused CSS ligado pela performance, mas devolva ao Used CSS as classes que o Elementor precisa em popups, menus e animacoes. Adicione os padroes do Elementor no CSS Safelist e depois limpe o Used CSS para a mudanca valer.
- WP Rocket > Otimização de arquivos > Remove Unused CSS > CSS Safelist:
/wp-content/uploads/elementor/css/ .elementor(.*) .e-(.*) .swiper(.*) WP Rocket > Painel > Remover CSS usado (Clear Used CSS) - Resolva o sticky e o CSS assincrono: se o efeito sticky do Elementor PRO parou, exclua o jquery.sticky do Load JavaScript deferred e do Delay JavaScript. Se a página pisca sem estilo no carregamento, exclua o CSS dinâmico do Elementor do Load CSS Asynchronously.
- Excluded files (Load JavaScript deferred e Delay JS):
/elementor-pro/assets/lib/sticky/jquery.sticky.min.js Excluir do CSS assincrono: /wp-content/uploads/elementor/css/ - Limpe o cache de novo e valide no frontend: depois de cada exclusão, limpe o cache do WP Rocket e o Used CSS, recarregue a página pública (não o editor) e confira no código-fonte se o bloco wpr-usedcss aparece. Safelisting não e instantaneo: so vale depois que o Used CSS e regenerado.
WP Rocket > Painel > Limpar cache WP Rocket > Painel > Remover CSS usado (Clear Used CSS)
# === Excluded JavaScript files (Delay JS + Load JS deferred) ===
# Carrega o JS do Elementor sem adiar, para o editor abrir e os widgets renderizarem
/elementor/assets/js/frontend(.min)?.js
/elementor-pro/assets/js/frontend(.min)?.js
/elementor/assets/lib/swiper/
eicons
# Mantem o efeito sticky do Elementor PRO funcionando
/elementor-pro/assets/lib/sticky/jquery.sticky.min.js
# === CSS Safelist (Remove Unused CSS) ===
# Devolve ao Used CSS o que o Elementor usa em popups, menus e animacoes
/wp-content/uploads/elementor/css/
.elementor(.*)
.e-(.*)
.swiper(.*)
# === Excluir do Load CSS Asynchronously / Optimize CSS Delivery ===
/wp-content/uploads/elementor/css/














