Um site WordPress lento não tem uma única causa — tem um diagnóstico. Aplicar optimizações ao acaso (instalar mais um plugin de cache, comprimir mais imagens) sem perceber onde está o problema real é como tomar analgésicos para uma fractura. Este guia apresenta as 10 causas mais comuns com as ferramentas de diagnóstico específicas para cada uma.
Ferramenta de diagnóstico inicial: separar TTFB do carregamento total
Antes de ir para as causas, uma distinção crítica: TTFB (Time to First Byte) mede quanto o servidor demora a responder. Carregamento total mede tudo incluindo o que o browser descarrega e processa.
- TTFB alto (>600ms) → problema no servidor ou na geração da página (causas 1-4)
- TTFB baixo mas carregamento alto → problema nos recursos da página (causas 5-10)
Usar Chrome DevTools → Network tab → recarregar a página → clicar no primeiro pedido para ver o TTFB.
1. Hosting lento ou sobrecarregado
Diagnóstico: TTFB consistentemente acima de 800ms em horários normais. Testar em horas diferentes do dia — se o TTFB varia muito, o servidor está sobrecarregado.
Solução: migrar para hosting com PHP-FPM e recursos dedicados (ou VPS). Em hosting partilhado barato, não há muito mais a fazer — o tecto de performance está no servidor.
2. Sem cache de página
Diagnóstico: cada pedido ao site executa PHP + consultas MySQL, mesmo para páginas estáticas. Verificar headers HTTP de resposta — deve existir um header X-Cache: HIT ou equivalente nas páginas cacheadas.
Solução: WP Rocket, LiteSpeed Cache, ou cache nativa do servidor (Nginx FastCGI cache). Impacto típico: TTFB cai de 800ms para 50-200ms para páginas cacheadas.
3. Base de dados não optimizada
Diagnóstico: plugin Query Monitor → Database Queries — verificar número total de queries por página load e identificar queries lentas (>100ms). Sites com anos de conteúdo acumulam milhares de revisões de posts e transients expirados que tornam as queries lentas.
Solução: limpar revisões excessivas, transients expirados, e metadados órfãos com WP-Optimize. Adicionar índices em tabelas de meta se o Query Monitor mostrar queries lentas nessas tabelas.
4. PHP desactualizado
Diagnóstico: verificar versão PHP no painel de hosting ou em "Ferramentas" → "Saúde do Site" no WordPress. PHP 7.4 é 20-30% mais lento que PHP 8.2.
Solução: actualizar para PHP 8.2 em staging primeiro (verificar compatibilidade de plugins), depois em produção.
5. Imagens não optimizadas
Diagnóstico: Chrome DevTools → Network tab → filtrar por "Img" → ordenar por tamanho. Imagens acima de 200KB numa página web são geralmente desnecessariamente grandes.
Solução: comprimir e converter para WebP com Imagify ou ShortPixel. Adicionar atributos width e height para evitar layout shift. Usar loading="lazy" em imagens abaixo do fold.
6. Muitos pedidos HTTP
Diagnóstico: Chrome DevTools → Network tab → contar número total de pedidos. Mais de 80-100 pedidos por página é excessivo. Verificar especificamente pedidos para domínios de terceiros (Google Fonts, scripts de analytics, chat widgets).
Solução: combinar CSS/JS com plugin de cache, hospedar fontes localmente, defer scripts de terceiros, remover plugins não essenciais.
7. Render-blocking resources
Diagnóstico: PageSpeed Insights → "Eliminar recursos que bloqueiam a renderização". CSS e JS em <head> sem async ou defer atrasam o início do rendering da página.
Solução: WP Rocket ou LiteSpeed Cache têm opções para defer CSS/JS não-crítico. Critical CSS inline para o conteúdo above-the-fold.
8. Page builder pesado mal configurado
Diagnóstico: desactivar temporariamente o page builder e verificar se o TTFB e o carregamento melhoram significativamente. Elementor e Divi carregam ficheiros CSS/JS em todas as páginas mesmo nas que não usam o builder.
Solução: activar o carregamento de assets apenas nas páginas que usam o builder (opção nativa no Elementor). Para sites novos, considerar temas mais leves (GeneratePress, Kadence).
9. Sem CDN para ficheiros estáticos
Diagnóstico: verificar a latência dos pedidos para imagens e CSS/JS — se o servidor está em Lisboa e o visitante em Lisboa, não é relevante. Se o site tem audiência internacional, CDN é importante.
Solução: Cloudflare (gratuito) para cache de ficheiros estáticos e optimização automática de imagens. Alternativas premium: BunnyCDN, KeyCDN.
10. Plugins com queries excessivas
Diagnóstico: Query Monitor → Database Queries → ordenar por número de queries por plugin. Alguns plugins de WooCommerce, SEO, ou redes sociais fazem dezenas de queries adicionais por page load.
Solução: desactivar plugins um por um e medir impacto com Query Monitor. Substituir plugins problemáticos por alternativas mais eficientes ou código customizado quando justificável.
Ordem de prioridade para optimização
Se precisar de resolver o problema rapidamente, priorizar nesta ordem:
- 1. Hosting + PHP actualizado (maior impacto no TTFB)
- 2. Cache de página (maior impacto para visitantes recorrentes)
- 3. Imagens optimizadas (maior impacto no carregamento total)
- 4. Base de dados limpa (impacto em sites com muitos conteúdos)
- 5. CDN + defer de scripts (refinamento final)
Optimização de performance incluída na manutenção
A Vuvo inclui diagnóstico e optimização de performance periódica nos planos Pro — com relatório documentado das métricas antes e depois.
Ver planos de manutenção