«O site está lento» quer dizer coisas diferentes conforme quem o diz: a primeira página demora a aparecer, o painel arrasta, ou um site que era rápido deixou de ser. As causas mudam e as curas também, e é por isso que a primeira coisa a fazer não é instalar nada, é medir.
Medir primeiro, mexer depois
| 1 |
Abra o site noutra rede. Do telemóvel, com dados móveis, por exemplo. Se aí é rápido, o problema é a sua ligação ou a cache do seu navegador, e não o site.
|
|
| 2 |
Experimente uma segunda página. Se só uma é lenta, o problema é essa página, uma galeria, um mapa, um formulário, e não o servidor.
|
|
| 3 |
Repare se é só o painel. Um /wp-admin lento com o site rápido é quase sempre um plugin, e não falta de recursos.
|
|
|
Aponte os números antes de começar. Mude uma coisa de cada vez e volte a medir. Mudar cinco de uma vez até pode resultar, mas não vai saber qual foi, e da próxima começa do zero.
|
A lista curta, por ordem de retorno
Se quer a versão rápida, é esta. Cada linha está explicada em baixo, e a ordem é a que dá mais resultado por hora de trabalho.
| Ordem |
O que fazer |
| 1 |
Passar para uma versão actual de PHP. Minutos, e é o ganho maior. |
| 2 |
Ligar a cache de páginas do LiteSpeed. Minutos. |
| 3 |
Tratar as imagens: tamanho, formato e carregamento adiado. |
| 4 |
Apagar os plugins que não usa, e desconfiar de três famílias. |
| 5 |
Limpar a base de dados e travar as revisões. |
| 6 |
Só depois disto: falar de plano. |
A causa mais comum aqui: a versão do PHP
É a que vemos mais e a mais barata de corrigir. Muitos sites continuam a correr versões de PHP que já não recebem correções. Uma versão 8 corre o mesmo código visivelmente mais depressa e, ao contrário das antigas, ainda recebe correções de segurança.
| 1 |
No cPanel, procure por MultiPHP Manager ou Select PHP Version.
|
|
| 3 |
Abra o site e o painel logo a seguir, e clique por algumas páginas. É esse o teste que conta.
|
|
|
Mude, teste, e saiba voltar atrás. Um tema ou plugin muito antigo pode não correr em PHP 8, e aí o site dá erro em vez de ficar mais rápido. Não é grave: volta-se atrás no mesmo ecrã. Faça a mudança a uma hora calma.
|
Cache: os nossos servidores correm LiteSpeed
Sem cache, cada visita obriga o servidor a construir a página outra vez: consultar a base de dados, correr o PHP, montar tudo. Com cache, a página pronta é servida directamente. É a mudança que mais corta o tempo de resposta.
Os nossos servidores correm LiteSpeed. Isso importa porque significa que o plugin certo para WordPress aqui é o LiteSpeed Cache: ele guarda as páginas no próprio servidor, antes de o PHP arrancar, coisa que um plugin de cache genérico não consegue fazer.
| 1 |
Instale o plugin LiteSpeed Cache a partir do repositório do WordPress.
|
|
| 2 |
Ligue a cache. As opções de origem já dão quase todo o ganho, não precisa de mexer em tudo.
|
|
| 3 |
Depois de cada alteração ao site, use Purge All. Se editou uma página e continua a ver a antiga, é a cache a fazer o trabalho dela. O detalhe todo, incluindo as exclusões e como provar que funciona, está em instalar e afinar uma cache de páginas.
|
|
| A cache resolve |
A cache NÃO resolve |
| Páginas que se repetem |
Páginas diferentes por visitante: carrinho, conta, finalização. Essas têm de ser excluídas. |
| Picos de visitas |
O painel de administração, que nunca é guardado em cache. |
| Um servidor sobrecarregado |
Uma página que é lenta em si: se demora oito segundos a construir, a primeira visita continua a demorar oito. |
|
Nunca dois plugins de cache ao mesmo tempo. Os sintomas são páginas velhas que não saem, entradas que não pegam e, numa loja, o carrinho de um visitante a aparecer a outro. Escolha um e apague o outro, não basta desactivar.
|
Imagens: quase sempre o maior ganho isolado
A razão mais comum para uma página pesada não é o código: são fotografias enviadas tal como saíram da máquina. Uma imagem de 4 MB numa página que a mostra com 800 pontos de largura obriga cada visitante a descarregar 4 MB para ver 800 pontos.
| 1 |
Redimensione antes de enviar. Para a maioria dos sites, 1600 pontos de largura é mais do que suficiente.
|
|
| 2 |
Grave em WebP onde puder: costuma ficar com metade do tamanho, com a mesma qualidade visível.
|
|
| 3 |
Ligue o carregamento adiado, para as imagens só carregarem quando o visitante lá chega. O LiteSpeed Cache tem essa opção.
|
|
Plugins e temas
Cada plugin activo custa alguma coisa em cada página, mesmo nas que não o usam. Não é o número que conta: é o peso de cada um.
| 1 |
Desactive o que não usa, e apague o que está desactivado. Um plugin desactivado não corre, mas continua a ser uma porta por remendar.
|
|
| 2 |
Desconfie de três famílias: construtores visuais pesados, plugins de estatísticas que escrevem cada visita na sua base de dados, e carrosséis na página inicial.
|
|
| 3 |
Para encontrar o culpado: desactive metade, meça, e repita com a metade que fica. Quatro ou cinco voltas chegam lá.
|
|
Quando é só o painel que arrasta
Site rápido e painel lento é um problema diferente, e a cache não o resolve, porque o painel nunca é guardado em cache. As causas são quase sempre estas quatro:
| Causa |
O que se nota, e o que fazer |
| O batimento do editor |
Enquanto está a escrever uma página, o WordPress fala com o servidor de poucos em poucos segundos para gravar sozinho e avisar que a página está a ser editada. Num separador aberto o dia inteiro, isso são centenas de pedidos. Há plugins que reduzem a frequência disso. |
| admin-ajax.php |
Se vê este ficheiro a repetir-se no registo de acessos, há um plugin a falar com o servidor sem parar, muitas vezes também no lado público do site: o admin-ajax a consumir tudo. |
| O agendador interno |
O WordPress corre as tarefas agendadas à boleia das visitas. Num site com poucas visitas elas acumulam-se e disparam todas em cima do visitante seguinte. A cura é trocar o WP-Cron pelo cron do servidor; o contexto geral está em tarefas agendadas (cron). |
| Widgets do painel |
Caixas de notícias, estatísticas e avisos de plugins que vão buscar dados a servidores externos. Esconda o que não lê, no menu Opções do ecrã, ao canto. |
A base de dados
Com os anos acumula-se lixo invisível: uma revisão de cada texto alguma vez editado, dados de plugins removidos há muito, e opções que são carregadas em todas as páginas. Num site com alguns anos, limpar isto dá um ganho real.
| 2 |
Trave as revisões futuras com define( 'WP_POST_REVISIONS', 5 ); no wp-config.php. Guarda as cinco últimas de cada texto em vez de todas desde sempre.
|
|
| 3 |
Esvazie o lixo mais depressa com define( 'EMPTY_TRASH_DAYS', 7 );.
|
|
|
Há uma coisa que pesa em TODAS as páginas. A tabela de opções tem linhas marcadas para carregarem em cada pedido. Um plugin mal feito, ou um que já apagou, deixa lá linhas enormes que continuam a ser lidas mil vezes por dia. Vale a pena olhar para as maiores antes de olhar para mais nada.
|
O que vem de fora da sua casa
Parte do tempo que o visitante espera não é gasto no nosso servidor: é gasto a ir buscar coisas a outros. Tipos de letra externos, mapas encaixados, vídeos, botões de partilha, widgets de conversa e códigos de análise. Cada um é uma ligação nova a um servidor que não controla, e se esse estiver lento, o seu site parece lento.
Faça a conta ao que tem, e tire o que não está a servir para nada. Os tipos de letra podem ser servidos do seu próprio site; os vídeos podem carregar só quando alguém carrega em reproduzir.
Quando não é o site, é o plano
Há um ponto a partir do qual optimizar deixa de compensar. Se o Resource Usage mostra o limite a ser atingido todos os dias, ou se aparece o erro 508, o site já não cabe no plano: erros de site: 500, 403, 404 e 508 e os limites que não vêm no anúncio. O que medir antes de decidir está em o site está lento: o que medir antes de mudar de plano, e a comparação honesta em hospedagem compartilhada ou VPS.
|
Cuidado com os «optimizadores» agressivos. Opções como juntar e minificar todo o CSS e o JavaScript, ou adiar tudo, compram décimas de segundo e partem menus, formulários e carrinhos com facilidade impressionante. Ligue uma de cada vez e use o site a sério a seguir a cada uma, incluindo comprar, se vende. Se alguma coisa partir: erros comuns do WordPress.
|
Duas coisas que vale a pena confirmar antes de mudar o que quer que seja: se a compressão está ligada, e o que a conta está mesmo a gastar.