7 min de leitura

WooCommerce lento: causas mais comuns e como diagnosticar

Carrinho de compras e ficha de produto associados a uma medida de desempenho.

Uma loja WooCommerce pode demorar a abrir categorias, apresentar resultados de pesquisa, atualizar o carrinho ou concluir uma compra. Embora o sintoma seja semelhante — a loja responde lentamente —, as causas podem ser muito diferentes.

Antes de instalar outro plugin de cache ou mudar de alojamento, vale a pena perceber que operação está lenta e onde é gasto o tempo. Esse é o ponto de partida para um diagnóstico útil.

Porque é que WooCommerce exige mais recursos?

Num website institucional, muitas páginas podem ser servidas a vários visitantes sem gerar novamente o mesmo conteúdo. Numa loja online, parte do trabalho é dinâmica: o WooCommerce trata de preços, impostos, portes, descontos, disponibilidade, sessões e carrinhos, entre outras operações.

Consoante a configuração, também comunica com serviços de pagamento, transportadoras, sistemas de faturação, gestão de stock ou CRM. Tudo isto acrescenta processamento em PHP, consultas à base de dados e, por vezes, pedidos externos. Mais complexidade não significa que a loja tenha de ser lenta, mas obriga a investigar diferentes componentes.

Primeiro, identifique onde está a lentidão

O mesmo problema não deve ser investigado da mesma maneira em todas as páginas. Esta tabela relaciona os sintomas com as primeiras áreas a verificar; apresenta hipóteses, não diagnósticos confirmados.

Onde se nota a demoraO que vale a pena investigar
Em grande parte das páginas públicasTempo de resposta, cache de página, processamento PHP, base de dados, imagens e JavaScript.
Nas categorias, pesquisa ou filtrosConsultas à base de dados, atributos, mecanismo de filtragem e estrutura do catálogo.
Nas páginas de produtoVariações, imagens, scripts e pedidos executados ao carregar ou selecionar opções.
No carrinho ou na finalização da compraCálculo de portes e impostos, validações, métodos de pagamento e integrações externas.
No painel de administração, sobretudo nas encomendasConsultas, tarefas agendadas, plugins, dados das encomendas e pedidos externos.
Apenas em determinados períodosUtilização de CPU e memória, processos PHP disponíveis, base de dados e tarefas intensivas.

Convém ainda distinguir o que acontece a um visitante anónimo do que acontece a um cliente autenticado ou a um administrador. Uma página pública servida a partir da cache pode parecer rápida, enquanto uma operação dinâmica continua demorada.

Catálogo, pesquisa e produtos variáveis

O número de produtos, por si só, não determina a velocidade da loja. Um catálogo com milhares de referências pode funcionar bem; outro, bastante menor, pode tornar-se lento se a pesquisa e os filtros executarem consultas dispendiosas.

A estrutura dos atributos, das categorias e dos filtros influencia o trabalho realizado. Quando a demora surge ao combinar critérios como tamanho, marca, preço e disponibilidade, faz sentido analisar o mecanismo de pesquisa, as consultas à base de dados e os índices utilizados, em vez de atribuir o problema ao catálogo inteiro.

Os produtos variáveis acrescentam outra dimensão. Combinar cores, tamanhos ou acabamentos pode originar muitas variações, cada uma com informação de preço, stock ou imagem. Isso pode afetar a apresentação do produto e a sua edição no painel de administração. O objetivo não é evitar variações úteis, mas verificar se a estrutura escolhida e as extensões envolvidas são adequadas.

Por exemplo, se uma categoria abre rapidamente mas a aplicação de um filtro por tamanho e disponibilidade demora vários segundos, a primeira investigação deve concentrar-se nesse filtro e nos pedidos que desencadeia.

Carrinho, finalização da compra e integrações

O carrinho, a finalização da compra (checkout) e a área «A minha conta» apresentam informação específica de cada cliente. A documentação oficial do WooCommerce recomenda excluir estas páginas da cache de página e configurar corretamente o tratamento das sessões e dos cookies relevantes.

Isto não implica desativar toda a cache: a cache de objetos, a OPcache do PHP e a distribuição de ficheiros estáticos por uma CDN têm funções diferentes. Também não significa que a cache resolva uma validação lenta ou um pedido demorado a um serviço externo.

Durante a compra, a loja pode precisar de calcular portes, aplicar regras fiscais, validar um pagamento ou consultar uma API. Dependendo da integração, serviços de transportadoras, antifraude, faturação ou ERP podem acrescentar tempo de resposta. É importante perceber em que momento ocorre a demora: ao alterar a morada, ao atualizar os portes, ao submeter o pedido ou depois de regressar do pagamento.

Plugins de pagamento e envio, bem como personalizações do checkout, podem acrescentar chamadas à rede, JavaScript ou validações. Se a lentidão se concentra nesta área, devem ser analisados esses componentes e os respetivos registos, sem os desativar indiscriminadamente numa loja que está a receber encomendas.

Base de dados, tarefas agendadas e painel de administração

Encomendas, sessões, opções, registos e dados de extensões fazem crescer a base de dados. Esse crescimento não é necessariamente um problema: interessa sobretudo saber se existem consultas lentas, leituras repetidas, índices inadequados ou um volume excessivo de dados carregados automaticamente a partir de wp_options.

Na gestão das encomendas, há ainda uma distinção atual: a loja pode utilizar o armazenamento tradicional do WordPress ou o High-Performance Order Storage (HPOS), com tabelas próprias. Confirmar qual dos sistemas está ativo e se as extensões são compatíveis é relevante antes de investigar ou alterar esta área. Ativar o HPOS sem avaliar a instalação não constitui, por si só, um diagnóstico.

O WooCommerce e várias extensões utilizam o Action Scheduler para executar tarefas em segundo plano, como notificações, sincronizações e determinados processos de pagamento. Em WooCommerce > Estado > Ações agendadas é possível consultar ações pendentes e falhadas e investigar a sua origem. Ações pendentes, falhadas ou repetidas podem ser consequência de uma integração com erros, de limitações do servidor ou de um problema de execução; não deve ser eliminada sem compreender o que contém.

Por predefinição, o WP-Cron depende de pedidos ao website para desencadear tarefas agendadas. Numa loja com pouco tráfego, isso pode atrasar a sua execução. Em certos contextos, um agendamento ao nível do servidor pode oferecer maior previsibilidade, desde que seja configurado e testado corretamente.

Se a loja pública responde bem mas pesquisar encomendas ou editar produtos no painel de administração é demorado, a investigação deve concentrar-se nessas operações. A cache de página que acelera a navegação pública não resolve automaticamente a gestão da loja.

Tema, plugins e recursos do servidor

Nem toda a lentidão começa no servidor. Imagens grandes, galerias, filtros interativos, pop-ups, ferramentas de análise, chat e outros scripts podem atrasar o carregamento ou a resposta da página no navegador. O tema também pode acrescentar recursos desnecessários ou alterar a forma como o WooCommerce apresenta e consulta produtos.

É útil separar duas situações: o servidor demora a devolver a resposta ou o navegador recebe a página, mas demora a carregá-la e a torná-la utilizável. Ambas prejudicam a experiência, mas exigem medições diferentes.

Quando existe saturação de CPU, falta de memória, processos PHP ocupados, operações de disco lentas ou sobrecarga da base de dados, os recursos do alojamento podem ser uma limitação real. Ainda assim, aumentar a capacidade sem corrigir consultas ineficientes ou integrações mal concebidas pode apenas disfarçar o problema.

O mesmo raciocínio aplica-se aos plugins: não existe um número a partir do qual o WooCommerce fica lento. O impacto depende do que cada plugin executa, em que páginas atua e que consultas, scripts ou pedidos externos acrescenta. Remover funcionalidades desnecessárias ajuda a simplificar a manutenção, mas contar plugins não substitui medir o seu comportamento.

Como diagnosticar sem interromper as vendas

Uma investigação eficaz deve seguir uma sequência que permita comparar resultados e reduzir hipóteses, sem colocar em risco pagamentos ou encomendas reais.

  1. Reproduzir e delimitar o problema. Registar a página ou operação, as condições em que ocorre, o dispositivo e se afeta visitantes, clientes autenticados ou administradores. Confirmar se a demora é consistente ou intermitente.
  2. Medir o que acontece no navegador. As ferramentas de desenvolvimento permitem observar o tempo dos pedidos, imagens, folhas de estilo, JavaScript e chamadas externas. Um atraso na resposta inicial não deve ser confundido com uma página pesada ou um script que bloqueia a interação.
  3. Investigar WordPress e WooCommerce. Analisar consultas à base de dados, erros, pedidos HTTP e ações agendadas. Ferramentas de diagnóstico, como o Query Monitor, podem ajudar a identificar componentes dispendiosos, preferencialmente num ambiente controlado.
  4. Relacionar a lentidão com os recursos do servidor. Verificar CPU, memória, processos PHP, base de dados e operações de disco durante os períodos problemáticos. Métricas recolhidas fora desses momentos podem não revelar a causa.
  5. Isolar hipóteses num ambiente de testes. Numa cópia recente da loja, comparar o comportamento com e sem determinada extensão, integração ou personalização. Evitar que os testes disparem pagamentos, mensagens, sincronizações ou outras ações reais sobre sistemas externos.
  6. Alterar uma variável de cada vez e voltar a medir. Comparar a mesma operação antes e depois e confirmar que carrinho, pagamento, gestão de encomendas e restantes funcionalidades continuam corretos.

Evite desativar plugins ou alterar a base de dados diretamente em produção apenas para experimentar. Uma cópia de segurança recente e um ambiente de testes adequado são precauções importantes; esse ambiente deve ser preparado para não interferir com a loja ativa.

Conclusão

«WooCommerce lento» descreve um sintoma, não a sua causa. A demora pode surgir nas consultas de um filtro, numa integração de pagamento, numa tarefa agendada, no navegador ou na infraestrutura. O diagnóstico deve começar pelo percurso afetado, identificar onde se perde tempo e confirmar as hipóteses com medições. Só depois faz sentido decidir se a solução passa por código, base de dados, cache, integrações ou recursos do servidor.

A sua loja WooCommerce está lenta?

Carrinho de compras e ficha de produto associados a uma medida de desempenho.

A MDigital pode analisar o desempenho do catálogo, da finalização da compra e da gestão da loja para identificar prioridades de intervenção antes de recomendar alterações.

Autor

Equipa MDigital

Especialistas em WordPress, WooCommerce, IA & Automação e Marketing Digital

Fale-nos sobre o seu projeto

Conte-nos o que pretende criar ou melhorar.

Prefere explorar primeiro? Conhecer preços e simulador →