🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir o DOM size grande do Elementor no WordPress

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro DOM size grande no Elementor EN: Avoid an excessive DOM size
Severidade Atenção
Descrição O DOM size grande do Elementor acontece porque o modelo de sections e colunas envolve cada bloco em várias divs aninhadas, somando nos demais na página. O Lighthouse marca aviso acima de cerca de 800 elementos e erro acima de cerca de 1.400, o que pesa no PageSpeed e na interatividade.

O que é DOM size grande do Elementor?

O DOM size grande do Elementor e a quantidade excessiva de elementos HTML que a página renderiza, medida pela auditoria do Lighthouse chamada Avoid an excessive DOM size. Segundo a documentação do Google no web.dev, o Lighthouse alerta quando o body passa de aproximadamente 800 nos e aponta erro acima de aproximadamente 1.400 nos, além de avaliar a profundidade maxima da arvore e o número máximo de filhos por elemento. Um DOM grande aumenta o consumo de memória do navegador, encarece o calculo de estilos e o reflow de layout e prejudica a interatividade da página.

No Elementor o problema e estrutural. O modelo antigo de sections e colunas envolve cada bloco em várias camadas de div aninhadas (a section, o wrapper interno da section, a coluna e o wrapper interno da coluna), antes mesmo de chegar ao widget. Quando uma página tem muitas sections, colunas e widgets, esses wrappers se multiplicam e o total de nos dispara, derrubando a nota de performance no PageSpeed Insights mesmo com cache e imagens otimizadas.

Como identificar

  • O PageSpeed Insights ou o Lighthouse exibem a auditoria ‘Avoid an excessive DOM size’ com um número alto de elementos (por exemplo 1.500 ou 2.000 nos) na página feita com Elementor.
  • A auditoria reporta uma profundidade maxima da arvore DOM elevada e um elemento com muitos filhos, apontando o container do conteúdo do Elementor.
  • A página abre visualmente leve, mas a nota de performance no mobile fica baixa e a métrica de interatividade (TBT ou INP) piora conforme o layout cresce.
  • Ao inspecionar o código no navegador, cada bloco do Elementor aparece envolto em múltiplas divs aninhadas (section, wrapper, coluna, wrapper) antes do conteúdo visivel.
  • Templates longos, páginas com muitas seções repetidas ou loops de posts montados com sections e colunas tem o DOM crescendo de forma proporcional ao número de blocos.
Antes de começar: Antes de ativar o Optimized Markup ou migrar sections para Container em producao, faça um backup completo do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging. A remoção de wrappers internos e a troca de estrutura podem afetar CSS personalizado que mira essas divs, e a reconstrucao de seções precisa de conferencia visual antes de publicar.

Como prevenir

  • Construa novas páginas com Container (Flexbox) desde o inicio, em vez de sections e colunas, para nascer com menos divs aninhadas.
  • Mantenha o Optimized Markup ativo em Elementor -> Configurações -> Performance como padrão do site, validando o CSS personalizado em staging.
  • Monitore a auditoria ‘Avoid an excessive DOM size’ no PageSpeed após publicar páginas longas, mantendo o body abaixo do aviso de cerca de 800 nos sempre que possível.
  • Evite addons que injetam marcacao pesada e prefira widgets nativos enxutos, revisando a arvore no Navigator antes de finalizar layouts complexos.

Causa

  • A página foi montada com o modelo antigo de sections e colunas do Elementor, que envolve cada bloco em várias divs aninhadas (wrapper da section, coluna e wrapper da coluna) antes do widget, multiplicando os nos do DOM.
  • O recurso Optimized Markup do Elementor, que remove o div wrapper interno de containers e widgets, esta desligado em Elementor -> Configurações -> Performance, deixando a marcacao com mais elementos do que o necessário.
  • Cada widget recebe wrappers extras de estilo e o uso intenso de Inner Sections (seção dentro de seção) para alinhar conteúdo dobra a quantidade de divs em cada bloco.
  • Loops de listagem (Loop Grid, posts ou produtos) repetem a mesma estrutura de container e widgets dezenas de vezes na mesma página, somando centenas de nos ao total medido pelo Lighthouse.
  • Widgets de terceiros e addons do Elementor (sliders, mega menus, tabs) injetam marcacao duplicada ou nos ocultos que continuam contando para o DOM mesmo sem aparecer na tela.

Como resolver

  1. Meça o DOM atual no Lighthouse: Antes de mexer no layout, rode o PageSpeed Insights na URL afetada e abra a auditoria Avoid an excessive DOM size para anotar o total de elementos, a profundidade maxima e o elemento com mais filhos. Segundo o Google no web.dev, acima de cerca de 800 nos já e aviso e acima de cerca de 1.400 e erro. Esse número e a sua linha de base para comparar depois.
    Acesse pagespeed.web.dev e análise a URL no modo Mobile
    Abra a auditoria 'Avoid an excessive DOM size' e anote: Total DOM Elements, Maximum DOM Depth e Maximum Child Elements
  2. Ative o Optimized Markup do Elementor: O Optimized Markup remove o div wrapper interno de containers e widgets, reduzindo o número de nos sem mudar o layout. Ative o recurso e rode o Lighthouse de novo para confirmar a queda no total de elementos. Atenção: CSS personalizado que mira esses wrappers internos pode precisar de ajuste após a mudanca.
    Painel WP -> Elementor -> Configurações -> aba Performance
    Ative a opção 'Optimized Markup' (ou 'Optimized DOM Output' em versões anteriores, na aba Recursos)
    Salve e limpe o cache do site
  3. Migre sections e colunas para Container (Flexbox): O Container do Elementor substitui o par section mais coluna por um único elemento flexivel, eliminando os wrappers aninhados que mais inflam o DOM. Ative o recurso e reconstrua as seções mais pesadas usando Container no lugar de section com colunas. Esse e o ganho estrutural maior em páginas com muitos blocos.
    Painel WP -> Elementor -> Configurações -> aba Recursos (Features)
    Garanta que o recurso 'Flexbox Container' esteja Ativo
    No editor, recrie as seções mais densas usando Container em vez de Section + Column
  4. Enxugue Inner Sections e wrappers desnecessarios: Reveja o layout e elimine Inner Sections usadas so para alinhar conteúdo, colunas vazias e blocos aninhados sem função. Cada camada removida tira várias divs do DOM. Prefira ajustar alinhamento com as opções de flex do próprio Container em vez de criar novos níveis.
    No editor Elementor, use o Navegador (Navigator) para ver a arvore de elementos
    Remova Inner Sections e colunas vazias usadas apenas para espaçamento
    Use o alinhamento Flexbox do Container no lugar de aninhar novas seções
  5. Reduza a repeticao em loops e templates: Em Loop Grid, listas de posts ou produtos, simplifique o template do item para conter o mínimo de elementos, já que ele se repete por linha. Limite o número de itens exibidos por página e pagine o restante. Menos elementos por item, multiplicado pela repeticao, derruba bastante o total de nos.
    Abra o template do Loop Item e remova widgets e wrappers não essenciais
    Defina um limite de itens por página (paginação) no widget de loop
    Rode o Lighthouse de novo e compare o Total DOM Elements com a linha de base do passo 1
PHP
<?php
// Conta os elementos do DOM no rodape do front-end (apenas para diagnostico).
// Use em ambiente de staging; remova depois de medir.
add_action( 'wp_footer', 'full_debug_dom_count', 999 );
function full_debug_dom_count() {
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?>
    <script>
    document.addEventListener('DOMContentLoaded', function () {
        var total = document.getElementsByTagName('*').length;
        var aviso = total > 800;
        var erro  = total > 1400;
        console.log('[FULL] Total DOM elements: ' + total +
            (erro ? ' (ERRO: acima de ~1400)' : aviso ? ' (AVISO: acima de ~800)' : ' (OK)'));
    });
    </script>
    <?php
}

Perguntas frequentes

O que significa DOM size grande no Elementor
Significa que a página renderiza elementos HTML demais. O Lighthouse mede isso na auditoria Avoid an excessive DOM size e, segundo o Google no web.dev, sinaliza aviso acima de cerca de 800 nos e erro acima de cerca de 1.400. No Elementor o número cresce porque cada bloco ganha várias divs aninhadas.
Por que o Elementor gera tantas divs na página
O modelo antigo de sections e colunas envolve cada bloco em camadas: o wrapper da section, a coluna e o wrapper interno, antes do widget. Quando a página tem muitas sections e colunas, esses wrappers se multiplicam e o total de elementos do DOM dispara.
O recurso Container do Elementor reduz o DOM
Sim. O Container baseado em Flexbox substitui o par de section mais coluna por um único elemento flexivel, eliminando os wrappers aninhados que mais inflam o DOM. Reconstruir as seções pesadas com Container costuma ser o maior ganho estrutural na contagem de nos.
O que faz o Optimized Markup do Elementor
O Optimized Markup remove o div wrapper interno de containers e widgets, reduzindo o número de elementos sem alterar o layout visivel. Ele fica em Elementor, Configurações, aba Performance. Após ativar, confira o CSS personalizado que possa mirar esses wrappers internos.
Qual o limite de elementos do DOM recomendado
O Lighthouse considera bom manter o body abaixo de cerca de 800 nos. Acima disso ele exibe aviso e, acima de cerca de 1.400 nos, aponta erro. A auditoria também avalia a profundidade maxima da arvore e o número máximo de filhos de um elemento.
Um DOM grande prejudica o PageSpeed e a interatividade
Sim. Segundo o Google no web.dev, uma arvore DOM grande aumenta o uso de memória, encarece o calculo de estilos e o reflow de layout e degrada a interatividade. Isso piora métricas como TBT e INP e derruba a nota de performance mesmo com cache ativo.
Loops de posts no Elementor aumentam o DOM
Aumentam. Um Loop Grid repete a estrutura do item por linha, entao cada div extra no template do item e multiplicada por dezenas de itens. Simplifique o template do loop e limite os itens por página com paginação para conter o total de nos.
Preciso reconstruir o site inteiro para reduzir o DOM
Não. Comece ativando o Optimized Markup e migrando apenas as páginas e seções mais pesadas para Container, medindo o resultado no Lighthouse a cada mudanca. A reconstrucao pode ser gradual, priorizando os templates de maior tráfego.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes