Pular para o conteúdo
Magento 212 min de leitura

Como saber se o seu Magento 2 está lento (e o que fazer)

Magento 2 lento raramente tem uma causa única. Este guia mostra como medir LCP, TTFB e tempo de checkout, e como cruzar isso com cache, Elasticsearch, banco e integrações para achar o gargalo real.

Gráficos de performance e métricas em monitor de computador
Performance não é um número — é uma tendência. O LCP de hoje só importa se você sabe como estava na semana passada.Unsplash
O que você vai aprender
  • As 5 métricas que importam em Magento 2 (TTFB, LCP, CLS, INP, checkout end-to-end) e os alvos para o Brasil.
  • Por que medir só Lighthouse local é "medir o seu Wi-Fi, não a loja".
  • Roteiro de 15 minutos para isolar gargalo: cache → Elasticsearch → banco → integração → tema.
  • Armadilhas: módulos "mágicos" que pioram Magento.

"O site está lento" é uma frase imprecisa que esconde dezenas de problemas distintos. Para diagnosticar lentidão no Magento 2, você precisa primeiro medir, depois isolar a camada, e só então mexer em alguma coisa. Este guia mostra como — sem cair no clássico erro de "instalei mais cache e piorou".

1s
a mais de carregamento = 20% menos páginas vistas no mobile
Google/SOASTA, 2017
2.5s
é o limite de LCP que o Google trata como "Bom" — 27% dos sites de e-commerce não chegam lá
CrUX / HTTP Archive 2024
~70%
de abandono médio de carrinho — performance ruim figura entre as 3 causas principais
Baymard Institute, 2024
+8.4%
de conversão móvel para cada redução de 0,1s no tempo de carregamento
Deloitte / Milliseconds Make Millions, 2020
Pessoas não esperam pelo seu site. Em mobile, 53% das visitas são abandonadas se a página demora mais de 3 segundos para carregar.— Google, "How You Stack Up to New Industry Benchmarks for Mobile Page Speed"

Quais métricas realmente importam

Magento 2 tem fluxos distintos com características de performance diferentes. Olhar só o tempo médio de carregamento da home é olhar um número que mistura coisas que não se misturam.

MétricaO que medeAlvo (Brasil, loja média)
TTFB (Time to First Byte)Quanto demora para o primeiro byte sair do servidor< 600 ms home, < 800 ms produto, < 1.2 s checkout
LCP (Largest Contentful Paint)Quando o maior elemento visível aparece< 2.5 s
CLS (Cumulative Layout Shift)Quanto o layout "pula" enquanto carrega< 0.1
INP (Interaction to Next Paint)Responsividade da página a cliques/scrolls< 200 ms
Checkout end-to-endDo carrinho até pedido confirmado< 8 s sem cartão, < 12 s com tokenização

Os alvos de Core Web Vitals seguem a definição oficial do Google em web.dev/vitals.[1] Veja o detalhamento do que cada métrica significa em Core Web Vitals para loja virtual.

Onde medir (e onde não medir)

O que serve para diagnóstico técnico:

  • WebPageTest: roda múltiplas execuções com cache frio/quente, mostra waterfall completo e Core Web Vitals. Padrão ouro de diagnóstico para análise pontual.
  • Chrome DevTools (Network + Performance): melhor para isolar JS/CSS que estão segurando a renderização.
  • CrUX (Chrome User Experience Report): dados reais de usuários Chrome reais. Field data — é o que o Google usa pra ranking. [2]
  • New Relic / Datadog APM: mostra onde o backend está gastando tempo — query, integração, render.
  • Monitoramento sintético contínuo: navegação real (Chromium) a cada poucos minutos, com checkout. Captura regressão antes do cliente.

O que NÃO serve isoladamente:

  • Lighthouse local com cache do navegador. Mede o seu Wi-Fi, não a loja. Use o Lighthouse só de dentro do PageSpeed Insights (servidor remoto).
  • Pingdom / GTmetrix gratuitos. Servidor fixo no exterior, geralmente em data center — não representa o usuário real no Brasil.
📌 Lab vs field: Lighthouse é lab data (laboratório, condição controlada, uma execução). CrUX é field data (usuários reais, distribuição de p75). Os dois mentem se você usar isoladamente — Lighthouse muito otimista, CrUX com viés de dispositivos rápidos. Use ambos.
Mãos digitando código em laptop, terminal aberto
Em Magento 2, instalar módulos de performance sem medir é a forma mais rápida de piorar. Antes de instalar, meça. Depois de instalar, meça de novo.Unsplash

Diagnóstico prático em 15 minutos

1 — TTFB está alto? Cache no backend

Se TTFB passa de 1s na home com cache morno, o problema é caching de página. Em Magento 2:

  • Verifique se o Full Page Cache está como Varnish (e não built-in PHP). Built-in só serve para dev. [3]
  • Veja a taxa de hit do Varnish (varnishstat -1 | grep cache) — abaixo de 90% indica configuração de TTL muito curta ou variant explosion (ESI, customer group, etc.).
  • Tem CDN na frente? Veja se ela está cacheando HTML também, não só estático. Cache de HTML em borda muda o jogo, mas exige configuração cuidadosa.

2 — TTFB alto só em produto? Banco e Elasticsearch

  • Magento 2 usa Elasticsearch / OpenSearch para busca e camadas de filtros. Se ele está sobrecarregado ou com índice corrompido, todo o catálogo fica lento. Veja GET _cluster/health e a latência do índice catalog_product.
  • Reindex incompleto também impacta — use bin/magento indexer:status e rode indexer:reindex para os que estão como "Reindex required".
  • Query lenta no MySQL aparece como N+1 (uma página de produto disparando 50 queries por causa de EAV mal usado). Ative o slow query log com long_query_time=0.5 e veja o que aparece.

3 — Checkout lento, resto rápido? Integração

Checkout no Magento 2 é dezenas de chamadas em sequência: cálculo de frete, validação de cupom, antifraude, tokenização de cartão, validação de CPF/CNPJ, gravação do pedido. Cache de página não ajuda aqui. O gargalo costuma ser uma dessas integrações respondendo devagar.

  • Ative profiling no checkout (bin/magento dev:profiler:enable) por algumas horas — o relatório mostra quem está gastando tempo.
  • Compare o tempo de cálculo de frete da sua transportadora com o que ela documenta como SLA. Diferença grande é ela com problema, não você.
  • Antifraude síncrono trava o pedido — considere migrar para assíncrono (pedido entra em fraud_review e o antifraude libera depois).

4 — LCP ruim mas TTFB ok? Front-end

Backend rápido e LCP > 2.5s é problema de tema/JS:

  • Imagens não otimizadas. Magento 2 entrega WebP nativamente desde a 2.4.7 — verifique se está habilitado. [4]
  • Banner principal carregado por JavaScript em vez de HTML estático. LCP do "hero" tem que sair direto do HTML do servidor.
  • Render blocking de CSS/JS de terceiros — chat, analytics, A/B testing. Use inspetor de cabeçalhos HTTP para ver o que está sendo servido e em que ordem.

Armadilhas comuns

⚠ Cuidado: instalar módulos novos "de performance" sem medir o estado atual é a forma número um de piorar Magento 2. Cada módulo adiciona código, e códigos somam tempo de boot, observers e plugins. Antes de instalar, meça. Depois de instalar, meça de novo. Sem isso, você está chutando.

Premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.

Donald Knuth, "Structured Programming with go to Statements" (1974)

Checklist rápido de saúde do Magento 2

  1. Cache de página em Varnish, hit rate > 90%.
  2. Elasticsearch/OpenSearch saudável, sem rejected queries.
  3. Cron rodando (bin/magento cron:run não acumula backlog).
  4. Queue consumers ativos e processando mensagens.
  5. Indexers todos em "Update by Schedule" ou "Ready".
  6. PHP-FPM com workers suficientes para o pico (regra: 2× CPU cores).
  7. MySQL com slow query log ativo e nenhuma query > 1s recorrente.
  8. WebP entregue para navegadores compatíveis.
  9. Checkout testado end-to-end em rede 4G simulada.

Como detectar piora antes do cliente reclamar

Performance não é um número — é uma tendência. O LCP de hoje só importa se você sabe como estava na semana passada. Configure monitoramento contínuo que capture Core Web Vitals em produção, navegue checkout completo a cada poucos minutos e dispare alerta quando alguma métrica passa do limite.

É exatamente o que a Especialista Loja Virtual faz com Chromium real: veja como funciona com Magento 2.

Referências

  1. Google. Web Vitals — essential metrics for a healthy site. web.dev/articles/vitals
  2. Chrome. Chrome User Experience Report (CrUX) — overview. developer.chrome.com/docs/crux
  3. Adobe Commerce. Configure Varnish — Full Page Cache architecture. experienceleague.adobe.com
  4. Adobe Commerce. Release notes 2.4.7 — image formats (WebP support). experienceleague.adobe.com
  5. Google. Find Out How You Stack Up to New Industry Benchmarks for Mobile Page Speed, Think with Google.
  6. Deloitte / Google. Milliseconds Make Millions — A Study on How Improvements in Mobile Site Speed Positively Affect a Brand's Bottom Line, 2020.
  7. Baymard Institute. Cart Abandonment Rate Statistics (atualização contínua). baymard.com/lists/cart-abandonment-rate
  8. HTTP Archive. Web Almanac — Performance & E-commerce chapters, 2024. almanac.httparchive.org

Perguntas frequentes

Qual é um TTFB aceitável para uma loja Magento 2 no Brasil?
Para usuários no Brasil acessando uma loja brasileira, mire em TTFB abaixo de 600 ms na home e abaixo de 800 ms em página de produto. Acima de 1 s é sinal claro de que o caching está furado ou o banco está sobrecarregado.
Vale a pena trocar Varnish por Fastly/Cloudflare?
Depende. Se você já tem Varnish bem configurado com tags e ESI, trocar por CDN com cache de página adiciona complexidade. Se nunca configurou Varnish direito, partir de Fastly ou Cloudflare com Magento Cloud connector entrega ganho com menos esforço.
Por que o checkout fica lento mesmo com o catálogo rápido?
Checkout no Magento 2 carrega dezenas de blocos dinâmicos, calcula frete em tempo real e chama integrações externas (cartão, antifraude, ERP). Cache não ajuda aqui — o gargalo costuma ser uma dessas integrações respondendo devagar.
Posso medir performance só com Lighthouse?
Não. Lighthouse mede uma única sessão simulada, sem carrinho, sem login, sem dados reais. Para Magento, complemente com Web Vitals em produção (RUM) e com testes de fluxo que simulem checkout real.

Monitore tudo isso automaticamente

A Especialista Loja Virtual roda navegação real no seu site a cada poucos minutos, alerta no Discord, Slack ou e-mail e mostra screenshot do incidente. Comece grátis.