WooCommerce Lento: Como Resolver

Seu WooCommerce está lento? Descubra as causas mais comuns e aprenda a resolver cada uma com soluções práticas e testadas.

Se a sua loja WooCommerce está lenta, você está perdendo vendas. Estudos mostram que cada segundo adicional no tempo de carregamento reduz as conversões em 7%. Para e-commerces, onde o visitante está pronto para comprar, a velocidade é ainda mais crítica do que em sites de conteúdo.

O WooCommerce é poderoso e flexível, mas essa flexibilidade tem um custo: sem otimização adequada, a performance pode degradar rapidamente. Neste guia, vamos diagnosticar as causas da lentidão e resolver cada uma com soluções práticas.


Por Que o WooCommerce Fica Lento?

O WooCommerce adiciona uma camada significativa de complexidade ao WordPress. Para cada página de produto, o sistema precisa:

  • Consultar o banco de dados para informações do produto, variações, preço, estoque
  • Carregar imagens do produto (geralmente múltiplas)
  • Verificar regras de frete, impostos e descontos
  • Processar dados do carrinho e sessão do usuário
  • Executar hooks e filtros de dezenas de plugins

Quando qualquer um desses processos não está otimizado, a lentidão aparece. Vamos às causas mais comuns.


Causas Comuns de Lentidão

1. Excesso de plugins

Esta é a causa número um. Muitos lojistas instalam plugins para cada funcionalidade imaginável, sem considerar o impacto na performance.

Sinais de alerta:

  • Mais de 30 plugins ativos
  • Múltiplos plugins com funcionalidades sobrepostas
  • Plugins abandonados (sem atualização há mais de 1 ano)

Exemplos de sobreposição comum:

  • Dois plugins de SEO ativos ao mesmo tempo
  • Plugin de slider + plugin de galeria + plugin de portfolio
  • Múltiplos plugins de segurança

2. Banco de dados inchado

Com o tempo, o banco de dados do WooCommerce acumula lixo:

  • Transients expirados: dados temporários que não foram limpos
  • Revisões de posts: cada salvamento cria uma revisão
  • Comentários spam: centenas ou milhares de comentários spam
  • Logs do WooCommerce: registros de pedidos, ações e erros
  • Sessões expiradas: dados de carrinhos abandonados

3. Ausência de cache

O WooCommerce, por padrão, desabilita cache em páginas dinâmicas (carrinho, checkout, minha conta). Mas muitas lojas não configuram cache nem para as páginas que poderiam ser cacheadas, como a home, categorias e páginas de produto.

4. Catálogo de produtos muito grande

Lojas com mais de 5.000 produtos, especialmente com variações (cor, tamanho), podem sofrer com consultas lentas ao banco de dados.

5. Tema pesado

Temas multiuso como Flavflavor, Flavor e Flavor Theme são bonitos, mas vêm carregados de funcionalidades que você provavelmente não usa. Cada funcionalidade não utilizada ainda carrega CSS e JavaScript desnecessários.

6. Chamadas externas de API

Plugins que fazem chamadas a APIs externas em tempo real podem travar o carregamento da página:

  • Verificação de estoque em tempo real
  • Cálculo de frete via Correios/transportadoras
  • Gateways de pagamento com verificações síncronas
  • Integrações com ERPs e marketplaces

7. Hospedagem inadequada

Uma hospedagem compartilhada barata não suporta o WooCommerce em produção. O WooCommerce exige mais recursos que um blog comum: mais memória PHP, mais poder de processamento e I/O de disco mais rápido.


Diagnóstico: Encontrando os Gargalos

Antes de sair otimizando, é essencial identificar onde está o problema. Use estas ferramentas:

Query Monitor

O Query Monitor é o plugin mais útil para debug de performance no WordPress. Ele mostra:

  • Todas as consultas SQL executadas (e o tempo de cada uma)
  • Quais plugins estão fazendo mais consultas
  • Chamadas HTTP externas
  • Hooks e seus tempos de execução
  • Erros PHP

Instalação:

# Via WP-CLI
wp plugin install query-monitor --activate

Após ativar, uma barra aparece no admin com detalhes de performance de cada página.

GTmetrix

  • Acesse gtmetrix.com
  • Insira a URL da sua loja
  • Analise o relatório: Waterfall, Performance Score e Web Vitals

Preste atenção especial ao:

  • TTFB (Time to First Byte): se for alto (acima de 1s), o problema está no servidor ou PHP
  • Total Page Size: se for alto (acima de 3MB), imagens e scripts precisam ser otimizados
  • Total Requests: se forem muitas (acima de 80), reduza scripts e CSS

Google PageSpeed Insights

  • Acesse pagespeed.web.dev
  • Teste tanto a versão mobile quanto desktop
  • Foque nas métricas Core Web Vitals: LCP, FID/INP e CLS

New Relic ou Blackfire

Para diagnósticos avançados no nível do código PHP, ferramentas como New Relic e Blackfire mostram exatamente quais funções PHP estão consumindo mais tempo.


Solução 1: Otimização do Banco de Dados

Limpar transients expirados

Transients são dados temporários armazenados no banco. O WooCommerce cria muitos, e nem todos são limpos automaticamente.

# Via WP-CLI
wp transient delete --expired

# Contar transients
wp db query "SELECT COUNT(*) FROM wp_options WHERE option_name LIKE '_transient_%';"

Limpar revisões de posts

Cada vez que você salva um produto ou post, o WordPress cria uma revisão. Com milhares de produtos, isso pode significar dezenas de milhares de linhas desnecessárias.

# Ver quantas revisões existem
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';"

# Deletar todas as revisões
wp post delete $(wp post list --post_type='revision' --format=ids) --force

# Limitar revisões futuras (adicione ao wp-config.php)

No wp-config.php :

// Limitar a 3 revisões por post/produto
define('WP_POST_REVISIONS', 3);

Limpar logs do WooCommerce

# Via WP-CLI
wp wc tool run clear_transients
wp wc tool run clear_sessions

Otimizar tabelas do banco

# Otimizar todas as tabelas
wp db optimize

# Reparar tabelas corrompidas
wp db repair

Plugin recomendado: WP-Optimize

O WP-Optimize automatiza a limpeza do banco de dados:

  • Remove revisões, spam, transients e rascunhos automáticos
  • Otimiza tabelas do banco
  • Permite agendar limpezas automáticas

Solução 2: Cache Estratégico para WooCommerce

O cache no WooCommerce requer cuidado especial. Você precisa cachear as páginas estáticas, mas excluir páginas dinâmicas.

Páginas que devem ser cacheadas

  • Página inicial (home)
  • Páginas de categoria de produto
  • Páginas individuais de produto (com invalidação ao mudar preço/estoque)
  • Páginas institucionais (sobre, contato, políticas)

Páginas que NÃO devem ser cacheadas

  • Carrinho (/cart/)
  • Checkout (/checkout/)
  • Minha conta (/my-account/)
  • Qualquer página com dados de sessão do usuário

Configuração com WP Rocket

O WP Rocket é o plugin de cache mais recomendado para WooCommerce por detectar e excluir automaticamente as páginas dinâmicas.

Configurações recomendadas:

  1. Cache de página: ativado
  2. Cache para usuários logados: desativado (importante para WooCommerce)
  3. Prefetch: ativado
  4. Minificação CSS/JS: ativado com cuidado (teste após ativar)
  5. Lazy load: ativado para imagens

Configuração com Nginx FastCGI Cache

Se você usa Nginx, configure o FastCGI Cache excluindo páginas do WooCommerce:

# Não cachear páginas dinâmicas do WooCommerce
if ($request_uri ~* "/cart/|/checkout/|/my-account/|/add-to-cart/") {
    set $skip_cache 1;
}

# Não cachear se tem itens no carrinho
if ($http_cookie ~* "woocommerce_items_in_cart") {
    set $skip_cache 1;
}

# Não cachear se tem sessão WooCommerce ativa
if ($http_cookie ~* "wp_woocommerce_session") {
    set $skip_cache 1;
}

Object Cache com Redis

Para WooCommerce, o Object Cache com Redis faz uma diferença enorme. Ele armazena consultas frequentes ao banco de dados na memória RAM.

# Instalar Redis
sudo apt install redis-server -y

# Instalar o módulo PHP para Redis
sudo apt install php8.2-redis -y

# Reiniciar PHP-FPM
sudo systemctl restart php8.2-fpm

Instale o plugin Redis Object Cache:

wp plugin install redis-cache --activate
wp redis enable

Solução 3: Otimização de Imagens de Produtos

Imagens de produto são tipicamente as mais pesadas de uma loja. Aplique:

  • Dimensões adequadas (800x800px ou 1000x1000px para zoom)
  • Compressão lossy em qualidade 80-85%
  • Conversão para WebP
  • Lazy loading (exceto na primeira imagem do produto)

Para um guia completo sobre otimização de imagens, veja nosso tutorial dedicado.


Solução 4: CDN para Arquivos Estáticos

Uma CDN acelera o carregamento servindo imagens, CSS e JavaScript de servidores próximos ao visitante.

Opções recomendadas para WooCommerce:

  • Cloudflare (gratuito): CDN global com proteção DDoS
  • BunnyCDN: excelente custo-benefício ($0.01/GB)
  • KeyCDN: boa integração com WordPress

Ao configurar uma CDN para WooCommerce, certifique-se de que:

  • O checkout e carrinho NÃO passem por cache na CDN
  • Regras de cache respeitem cookies de sessão do WooCommerce
  • A CDN não interfira com gateways de pagamento

Solução 5: Upgrade de Hospedagem

Se o seu TTFB é consistentemente acima de 1 segundo, mesmo com cache ativo, a hospedagem provavelmente é o gargalo.

Requisitos mínimos para WooCommerce

  • PHP 8.0+ (recomendado 8.1 ou 8.2)
  • Memória PHP: 256MB (mínimo), 512MB (recomendado)
  • MySQL 8.0+ ou MariaDB 10.4+
  • Armazenamento SSD/NVMe
  • Servidor web: Nginx ou LiteSpeed

Tipos de hospedagem para WooCommerce

Tipo Visitantes/mês Produtos Preço médio
VPS gerenciado Até 100.000 Até 5.000 R$ 200-500/mês
VPS dedicado 100.000+ 5.000+ R$ 500-2.000/mês
Cloud (AWS, GCP) Ilimitado Ilimitado Variável

Para WooCommerce em produção com faturamento real, o mínimo recomendado é um VPS gerenciado.


Solução 6: Otimização de Código e Plugins

Reduzir o número de plugins

Faça uma auditoria completa:

  1. Liste todos os plugins ativos
  2. Use o Query Monitor para ver o impacto de cada um
  3. Desative plugins que não são essenciais
  4. Substitua múltiplos plugins por um que cubra várias funções

Desativar funcionalidades não utilizadas do WooCommerce

// Adicione ao functions.php

// Desativar widgets do WooCommerce que não usa
add_action('widgets_init', function() {
    unregister_widget('WC_Widget_Products');
    unregister_widget('WC_Widget_Recent_Reviews');
    unregister_widget('WC_Widget_Top_Rated_Products');
});

// Desativar scripts do WooCommerce em páginas que não são de loja
add_action('wp_enqueue_scripts', function() {
    if (!is_woocommerce() && !is_cart() && !is_checkout() && !is_account_page()) {
        wp_dequeue_style('woocommerce-general');
        wp_dequeue_style('woocommerce-layout');
        wp_dequeue_style('woocommerce-smallscreen');
        wp_dequeue_script('wc-cart-fragments');
    }
});

Desativar o fragment de carrinho via AJAX

O script wc-cart-fragments faz uma requisição AJAX em cada página para atualizar o mini-carrinho. Isso impede o cache de página e adiciona uma requisição extra.

// Desativar cart fragments globalmente
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_script('wc-cart-fragments');
}, 11);

Se precisar do mini-carrinho atualizado, use uma alternativa mais leve ou atualize apenas nas páginas de loja.


Solução 7: Lazy Loading e Carregamento Otimizado

Lazy loading de imagens de produto

Ative lazy loading para imagens na galeria de produtos, mas mantenha a imagem principal do produto sem lazy loading (ela é o LCP da página).

Defer e async para JavaScript

Carregue scripts não essenciais de forma assíncrona:

// Adicionar defer aos scripts não críticos
add_filter('script_loader_tag', function($tag, $handle) {
    $defer_scripts = ['comment-reply', 'wp-embed'];
    if (in_array($handle, $defer_scripts)) {
        return str_replace(' src', ' defer src', $tag);
    }
    return $tag;
}, 10, 2);

Preload de recursos críticos

// Preload da fonte principal e CSS crítico
add_action('wp_head', function() {
    echo '<link rel="preload" href="/wp-content/themes/seu-tema/assets/fonts/main.woff2" as="font" type="font/woff2" crossorigin>' . "\n";
    echo '<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>' . "\n";
}, 1);

Solução 8: Otimização do Checkout

O checkout é a página mais importante da loja. Se ela for lenta, você perde vendas no momento decisivo.

Simplificar campos do checkout

Remova campos desnecessários:

// Remover campos que não são necessários
add_filter('woocommerce_checkout_fields', function($fields) {
    unset($fields['order']['order_comments']);
    unset($fields['billing']['billing_company']);
    return $fields;
});

Desativar sugestão de login no checkout

// Não exibir formulário de login no checkout
add_filter('woocommerce_checkout_login_message', '__return_empty_string');

Usar checkout em uma página só

Evite checkouts com múltiplas etapas (a menos que seja realmente necessário). Cada etapa adicional é uma oportunidade para o cliente desistir. Se usar múltiplas etapas, garanta que cada transição seja instantânea (sem recarregar a página).


Checklist de Otimização do WooCommerce

Use esta lista para verificar se sua loja está otimizada:

  • [ ] Menos de 25 plugins ativos
  • [ ] Banco de dados limpo (transients, revisões, spam removidos)
  • [ ] Cache de página configurado (com exclusões corretas)
  • [ ] Object Cache (Redis ou Memcached) ativo
  • [ ] Imagens otimizadas e em formato WebP
  • [ ] CDN configurada para arquivos estáticos
  • [ ] Hospedagem adequada (VPS com SSD, PHP 8.x, Nginx/LiteSpeed)
  • [ ] Scripts do WooCommerce carregados apenas nas páginas de loja
  • [ ] Cart fragments desativado ou otimizado
  • [ ] Checkout simplificado
  • [ ] TTFB abaixo de 600ms
  • [ ] LCP abaixo de 2,5 segundos
  • [ ] Pontuação PageSpeed acima de 80 (mobile)

Leia Também


Conclusão

Otimizar o WooCommerce é um processo que envolve múltiplas camadas: banco de dados, cache, imagens, código, hospedagem e configurações específicas do WooCommerce. Não existe uma única solução mágica. O segredo é atacar cada gargalo sistematicamente, medindo antes e depois de cada mudança.

Comece pelo diagnóstico com Query Monitor e GTmetrix, depois siga para a limpeza do banco de dados e configuração de cache. Essas duas ações sozinhas geralmente trazem melhorias de 50% ou mais.

Sua loja WooCommerce está lenta e você não sabe por onde começar? A HOSTWP é especialista em performance WordPress e WooCommerce. Nossa equipe diagnostica os gargalos, otimiza banco de dados, configura cache, ajusta o servidor e garante que sua loja carregue rápido. Do servidor ao site, cuidamos de tudo para que você foque nas vendas. Fale com a nossa equipe .

Artigos relacionados