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.
- 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".
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étrica | O que mede | Alvo (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-end | Do 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.
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/healthe a latência do índicecatalog_product. - Reindex incompleto também impacta — use
bin/magento indexer:statuse rodeindexer:reindexpara 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.5e 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_reviewe 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
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
- Cache de página em Varnish, hit rate > 90%.
- Elasticsearch/OpenSearch saudável, sem rejected queries.
- Cron rodando (
bin/magento cron:runnão acumula backlog). - Queue consumers ativos e processando mensagens.
- Indexers todos em "Update by Schedule" ou "Ready".
- PHP-FPM com workers suficientes para o pico (regra: 2× CPU cores).
- MySQL com slow query log ativo e nenhuma query > 1s recorrente.
- WebP entregue para navegadores compatíveis.
- 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
- Google. Web Vitals — essential metrics for a healthy site. web.dev/articles/vitals
- Chrome. Chrome User Experience Report (CrUX) — overview. developer.chrome.com/docs/crux
- Adobe Commerce. Configure Varnish — Full Page Cache architecture. experienceleague.adobe.com
- Adobe Commerce. Release notes 2.4.7 — image formats (WebP support). experienceleague.adobe.com
- Google. Find Out How You Stack Up to New Industry Benchmarks for Mobile Page Speed, Think with Google.
- Deloitte / Google. Milliseconds Make Millions — A Study on How Improvements in Mobile Site Speed Positively Affect a Brand's Bottom Line, 2020.
- Baymard Institute. Cart Abandonment Rate Statistics (atualização contínua). baymard.com/lists/cart-abandonment-rate
- 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.
Continue lendo
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.
