🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o checkout do WooCommerce lento

Time Full Services Time Full Services
Tipo WooCommerce
Nome do erro Checkout do WooCommerce lento EN: WooCommerce slow checkout
Severidade Grave
Descrição O checkout lento no WooCommerce acontece quando a página de finalizar compra demora para carregar ou para responder ao clique, fazendo o cliente desistir. Quase sempre vem do cart fragments via AJAX em cada página, de plugins pesados rodando no checkout, ou de consultas lentas no banco com a tabela wp_options inchada.

O que é o checkout do WooCommerce lento?

O checkout é a página de maior valor de uma loja: é onde a venda se concretiza. Quando está ‘lento’, o formulário demora a aparecer, o botão de finalizar trava por segundos, ou a página recarrega devagar a cada mudança de endereço ou frete. Cada segundo a mais de espera derruba a conversão. A lentidão costuma vir de requisições AJAX desnecessárias, plugins que carregam scripts pesados no checkout, ou um banco de dados sobrecarregado.

Como identificar

  • A página de checkout demora vários segundos para exibir o formulário de cobrança.
  • O botão ‘Finalizar compra’ fica girando muito tempo antes de processar o pedido.
  • A cada mudança de endereço ou método de frete a página recalcula lentamente e trava a tela.
  • Ferramentas como o PageSpeed ou o painel de rede (F12) mostram a chamada ‘?wc-ajax=get_refreshed_fragments’ levando segundos em todas as páginas.
Antes de começar: Faça backup antes de limpar a tabela wp_options ou desativar plugins em uma loja no ar, e nunca cacheie a página de checkout inteira: ela precisa ser dinâmica. Teste cada otimização em staging para não quebrar o fluxo de pagamento.

Como prevenir

  • Mantenha cart-fragments restrito às páginas de loja e nunca cacheie a página de checkout inteira
  • Monitore a tabela wp_options e o tempo de resposta do checkout com o Query Monitor após cada novo plugin
  • Use OPcache, cache de objeto persistente e PHP atualizado, e cacheie cotações de frete por alguns minutos

Causa

  • Cart fragments do WooCommerce disparando AJAX (get_refreshed_fragments) em toda página do site, sobrecarregando o servidor.
  • Plugins pesados (de checkout, frete por transportadora, antifraude) executando chamadas externas lentas durante a finalização.
  • Tabela wp_options inchada com muitos registros em autoload, deixando cada requisição do checkout lenta.
  • Cálculo de frete por API de transportadora a cada recarregamento do checkout, sem cache da cotação.
  • Servidor com PHP desatualizado, sem OPcache ou sem cache de objeto persistente (Redis/Memcached) para o WooCommerce.

Como resolver

  1. Limite o cart fragments às páginas de loja: o script de cart-fragments dispara AJAX em todas as páginas para atualizar o mini-carrinho. Restrinja-o às páginas de loja, carrinho e checkout para aliviar o servidor (veja o código abaixo).
  2. Identifique plugins lentos no checkout: use o Query Monitor para ver, na página de checkout, quais plugins consomem mais tempo e fazem chamadas externas. Desative temporariamente os mais pesados e meça a diferença.
  3. Limpe o autoload da wp_options: audite a tabela wp_options e reduza os dados em autoload (transients órfãos e opções grandes de plugins removidos). Uma wp_options inchada deixa todo o checkout lento.
    SELECT SUM(LENGTH(option_value)) AS autoload_bytes FROM wp_options WHERE autoload = 'yes';
  4. Ative cache de objeto e OPcache: habilite o OPcache no PHP e um cache de objeto persistente (Redis ou Memcached). O WooCommerce faz muitas consultas repetidas no checkout que o cache de objeto resolve em memória.
  5. Cacheie a cotação de frete: se o frete é calculado por API de transportadora, use um plugin ou ajuste que armazene a cotação por alguns minutos, em vez de consultar a transportadora a cada recarregamento do checkout.
PHP
// functions.php do tema filho — carrega o cart-fragments (AJAX do mini-carrinho)
// apenas nas paginas de loja, carrinho e checkout, e nao no site inteiro
add_action( 'wp_enqueue_scripts', function () {
    if ( function_exists( 'is_woocommerce' ) ) {
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
            wp_dequeue_script( 'wc-cart-fragments' );
        }
    }
}, 99 );

Perguntas frequentes

Por que o WooCommerce deixa o site lento mesmo fora do checkout?
O script cart-fragments dispara uma chamada AJAX (get_refreshed_fragments) em toda página para atualizar o mini-carrinho. Restringindo esse script às páginas de loja, carrinho e checkout, você corta requisições desnecessárias e o site inteiro fica mais rápido.
Como descubro qual plugin deixa meu checkout lento?
Instale o Query Monitor e abra a página de checkout. Ele mostra o tempo gasto por cada plugin e as chamadas externas. Desative temporariamente os mais pesados e meça a melhora para confirmar o culpado.
A tabela wp_options pode deixar o checkout lento?
Sim. Se a wp_options tem muitos dados em autoload (transients órfãos, opções de plugins removidos), cada requisição carrega esse peso. Audite o autoload e remova o lixo para acelerar todas as páginas, inclusive o checkout.
Posso cachear a página de checkout para acelerar?
Não a página inteira. O checkout precisa ser dinâmico, pois usa nonces e dados de sessão. Cacheá-lo quebra o pedido. Em vez disso, use cache de objeto (Redis/Memcached) e OPcache, que aceleram as consultas sem cachear o HTML do checkout.
O cálculo de frete está travando o checkout. O que fazer?
Se cada recarregamento consulta a API da transportadora, a espera trava a página. Use um plugin ou ajuste que armazene a cotação por alguns minutos, para não chamar a transportadora a cada mudança de campo no checkout.
OPcache e cache de objeto fazem diferença no WooCommerce?
Fazem, e bastante. O WooCommerce executa muitas consultas repetidas no checkout. O OPcache acelera a execução do PHP e o cache de objeto persistente (Redis ou Memcached) guarda resultados em memória, reduzindo o tempo de resposta da finalização de compra.

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