← Voltar ao blog

WordPress lento? O diagnóstico que faço antes de instalar mais um plugin

Quando um WordPress está lento, instalar um plugin de cache pode ajudar — mas também pode esconder a origem do problema. Este é o processo que sigo para perceber primeiro onde está o gargalo.

WordPress lento? O diagnóstico que faço antes de instalar mais um plugin

“O site está lento. Instalo qual plugin?” é uma pergunta que aparece muitas vezes. A resposta menos satisfatória é: depende. A resposta mais útil é perceber de que tipo de lentidão estamos a falar.

Um WordPress pode demorar porque o servidor responde lentamente, porque uma página carrega imagens enormes, porque existe um plugin a fazer pedidos externos, porque a base de dados acumulou demasiado lixo, porque há tarefas agendadas em excesso ou simplesmente porque a página está a carregar demasiado JavaScript.

Se começarmos logo por instalar mais um plugin, podemos melhorar o resultado num teste e continuar com o problema por baixo.

Primeiro: a lentidão está no servidor ou no browser?

Gosto de começar por separar duas situações:

  • o HTML demora a chegar — o problema tende a estar no servidor, PHP, WordPress, base de dados ou integrações;
  • o HTML chega rápido mas a página demora a ficar utilizável — o peso tende a estar nas imagens, CSS, JavaScript, fontes ou scripts externos.

Esta distinção evita perder tempo a otimizar imagens quando o servidor demora vários segundos a gerar a página, ou a mexer na base de dados quando o verdadeiro problema são três vídeos e um slider pesado.

1. Verifico o tempo de resposta antes de olhar para a pontuação

Ferramentas como Lighthouse, PageSpeed ou GTmetrix são úteis, mas uma pontuação isolada não explica a origem do problema. Começo pelo comportamento real no separador Network das Developer Tools: quanto tempo demora o documento principal? Existem pedidos bloqueados? Há recursos externos muito lentos?

Se o primeiro pedido demora demasiado, sigo para servidor e WordPress. Se o documento chega rapidamente mas a interface continua pesada, investigo o frontend.

2. Hosting e PHP não são detalhes secundários

Dois sites WordPress iguais podem comportar-se de forma muito diferente em servidores diferentes. Recursos disponíveis, versão de PHP, configuração do servidor, OPcache e carga de outras contas em alojamento partilhado podem afetar bastante o tempo de resposta.

Antes de culpar o WordPress, verifico também erros de servidor, limites de memória, espaço em disco e timeouts. Aumentar memória pode resolver um sintoma momentaneamente, mas não deve substituir o diagnóstico de código ou processos que estejam a consumir recursos em excesso.

3. Plugins: quantidade importa menos do que aquilo que fazem

Ter 30 plugins não significa automaticamente ter um site lento. Um único plugin pode ser mais pesado do que vinte plugins simples.

O que interessa é perceber quais executam lógica em todas as páginas, quais fazem queries pesadas, quais carregam recursos no frontend e quais comunicam com APIs externas.

Quando possível, testo em staging e desativo seletivamente os suspeitos. Também uso ferramentas de diagnóstico como Query Monitor para perceber queries, hooks, erros PHP e chamadas HTTP que estão a acontecer durante o carregamento.

4. Base de dados: limpar sem perceber pode ser tão mau como não limpar

Revisões antigas, transientes expirados, tabelas deixadas por plugins removidos, filas do Action Scheduler e opções autoload podem crescer durante anos.

Mas “limpar a base de dados” não deve significar apagar tudo o que um plugin de otimização sugere. Faço sempre backup e tento perceber o que representa cada tabela ou opção.

Um ponto particularmente importante são as autoloaded options: configurações carregadas em praticamente todos os pedidos. Quando crescem demasiado, podem aumentar trabalho desnecessário em cada página. A documentação oficial do WordPress recomenda vigiar este volume e investigar opções excessivas.

5. WP-Cron e tarefas agendadas podem causar lentidão intermitente

Há sites que parecem rápidos numa visita e muito lentos na seguinte. Nesses casos, olho para tarefas agendadas: sincronizações, emails, importações, feeds, backups, limpezas e jobs do WooCommerce.

O WP-Cron pode executar tarefas durante um pedido normal ao site. Se uma tarefa é pesada ou falha repetidamente, o utilizador pode acabar por sentir essa carga.

Em projetos com muita atividade, pode fazer sentido executar cron pelo servidor em intervalos controlados e deixar o pedido do utilizador fora desse processo.

6. Cache ajuda muito — mas é preciso saber que cache estamos a falar

“Cache” pode significar coisas diferentes:

  • page cache — guarda a página HTML pronta e evita reconstruí-la em cada visita;
  • object cache — reduz acessos repetidos à base de dados, normalmente com Redis ou Memcached;
  • browser cache — permite que imagens, CSS e JavaScript fiquem guardados no dispositivo;
  • opcode cache — como OPcache, evita recompilar PHP constantemente.

É perfeitamente possível ter WP_CACHE ativo e não ter aquilo que imaginamos. A própria documentação do WordPress explica que essa constante, sozinha, não “liga a cache”.

7. Imagens: um dos problemas mais fáceis de ver e de resolver

Fotografias com 4000 ou 5000 píxeis a serem apresentadas num card de 400 px continuam a custar largura de banda e tempo. Tento garantir dimensões adequadas, compressão, formatos modernos quando fazem sentido e lazy loading para conteúdo fora do primeiro ecrã.

Também verifico se o tema ou page builder está realmente a servir tamanhos responsivos e não a enviar sempre a imagem original.

8. JavaScript, CSS e scripts externos

Chats, pixels, mapas, vídeos, fontes, ferramentas de marketing e scripts de terceiros podem transformar uma página aparentemente simples numa longa fila de pedidos.

Nem tudo pode ou deve ser removido. A pergunta é: este script precisa de carregar em todas as páginas e logo no primeiro momento?

Muitas vezes é possível carregar funcionalidades apenas onde são usadas, atrasar scripts não essenciais ou substituir integrações pesadas por soluções mais simples.

9. WooCommerce exige cuidados diferentes de um site institucional

Uma loja tem carrinho, sessões, preços, stock e páginas personalizadas por utilizador. Isso significa que uma estratégia de cache agressiva aplicada sem critério pode criar problemas.

Carrinho, checkout e conta devem ser tratados de forma diferente das páginas institucionais ou categorias públicas. Performance em WooCommerce é tanto uma questão de velocidade como de garantir que os dados apresentados continuam corretos.

O meu processo resumido

  1. Reproduzir o problema e perceber se é constante ou intermitente.
  2. Separar tempo de servidor de peso do frontend.
  3. Verificar logs, PHP, hosting e espaço disponível.
  4. Analisar plugins, queries e pedidos externos.
  5. Rever cron, Action Scheduler e tarefas recorrentes.
  6. Verificar base de dados e autoload com backup feito.
  7. Rever imagens e recursos de frontend.
  8. Só depois escolher cache e otimizações adequadas.
  9. Medir novamente e comparar antes/depois.

O objetivo não é ter 100/100

Uma boa otimização não é perseguir uma pontuação perfeita. É reduzir esperas reais, evitar erros, tornar o backend utilizável e garantir que o site continua estável quando recebe tráfego.

Prefiro um site consistente, previsível e fácil de manter a um site que consegue uma pontuação excelente depois de uma combinação frágil de minificação, atrasos e exceções.

Performance é diagnóstico antes de ser configuração. E muitas vezes o melhor resultado aparece quando retiramos complexidade em vez de instalar mais uma camada.

Leitura adicional

A documentação oficial do WordPress tem bons pontos de partida sobre otimização e sobre os diferentes tipos de cache.

Continua a ler

Mais notas & ideias