- A cache serve versões já geradas das páginas para não ter de as processar em cada visita. Melhora muito a velocidade, mas, mal configurada, estraga funcionalidades dinâmicas.
- Há 3 tipos de cache com funções distintas: de páginas, de objetos e do navegador. Cada uma precisa da sua própria configuração.
- Em sites com WooCommerce, área de utilizador ou conteúdo personalizado, há páginas que nunca devem ir para a cache. Configurar bem as exclusões é tão importante como ativar a cache.
“Instala um plugin de cache para o WordPress ficar mais rápido” é um bom conselho. O que quase nunca se explica é que, sem o configurar bem, pode criar problemas tão graves como os que resolve.
Uma cache mal configurada pode mostrar páginas desatualizadas, mostrar a um utilizador os dados de outro, estragar o carrinho do WooCommerce ou fazer com que os formulários falhem ao ser enviados. E podem passar dias até alguém dar por isso.
O que é a cache e porque é que melhora a velocidade
Sempre que alguém visita uma página do WordPress, o servidor executa código PHP, consulta a base de dados e monta o HTML que é enviado ao navegador. Tudo isso consome tempo e recursos.
Um sistema de cache interrompe esse ciclo: da primeira vez que uma página é visitada, o servidor processa-a normalmente e guarda o resultado. As visitas seguintes recebem essa cópia diretamente, sem PHP nem base de dados: a resposta é muito mais rápida e o servidor aguenta melhor os picos de tráfego.
O problema surge quando o conteúdo de uma página tem de mudar (porque o utilizador iniciou sessão, tem produtos no carrinho ou o conteúdo é atualizado com frequência) e a cache continua a servir a versão antiga. Por isso, configurar as exclusões é tão crítico como ativar a cache. Tem também em conta que a cache é só uma peça do desempenho; aqui tens outras formas de reduzir o tempo de resposta do teu site sem mexer no código.
Os 3 tipos de cache no WordPress
Cache de páginas
É a que tem mais impacto na velocidade. Gera ficheiros HTML estáticos das páginas e serve-os diretamente, sem passar pelo PHP nem pela base de dados. Em páginas sem conteúdo dinâmico, a melhoria no tempo de resposta costuma ser muito notória.
A configuração-chave é decidir bem o que fica excluído. Nunca devem ir para a cache o carrinho e o checkout do WooCommerce, as páginas da área de utilizador (a minha conta, perfil, encomendas), qualquer página que mude consoante quem a vê e as páginas que mostram uma confirmação depois de se enviar um formulário.
Um caso menos conhecido: muitos formulários levam um código de segurança temporário (o nonce do WordPress) que expira ao fim de algumas horas. Se a página continuar em cache mais tempo, o formulário falha ao ser enviado. É por isso que o WP Rocket renova a cache a cada 10 horas por predefinição; com outros plugins, encurta a duração da cache nessas páginas.
Cache de objetos
O WordPress faz muitas consultas à base de dados para montar cada página. A cache de objetos guarda em memória os resultados dessas consultas (normalmente com Redis ou Memcached) para não as repetir. Ajuda sobretudo em lojas grandes e áreas de utilizador, precisamente as páginas que a cache de páginas não consegue cobrir.
Nem todos os alojamentos oferecem Redis ou Memcached. Os geridos para WordPress costumam incluí-lo ou vendê-lo como extra; nos partilhados básicos muitas vezes não existe. Pergunta ao teu fornecedor antes de instalar o que quer que seja.
Cache do navegador
Indica ao navegador do visitante que guarde certos ficheiros (imagens, CSS, JavaScript, tipos de letra) durante um determinado período. Nas visitas seguintes são carregados a partir do próprio dispositivo, e a navegação entre páginas fica claramente mais rápida.
Configura-se no servidor (.htaccess no Apache ou a configuração do Nginx) ou a partir do próprio plugin de cache.
Que plugin escolher consoante o teu caso
WP Rocket é um dos plugins de cache mais completos: configuração guiada, boa compatibilidade com o WooCommerce, otimização de CSS e JavaScript integrada e um suporte técnico de qualidade. É pago, com licença anual. Em sites que são canal de negócio, o tempo que poupa costuma compensar o custo.
LiteSpeed Cache é gratuito e muito potente se o teu alojamento usar servidor LiteSpeed, algo habitual em muitos fornecedores de alojamento partilhado. Confirma antes de o escolher: se o teu servidor for Apache ou Nginx, a cache de páginas do plugin não funciona e só vais poder aproveitar as funcionalidades de otimização.
W3 Total Cache é gratuito e tem imensas opções, mas a interface é complexa e é fácil enganar-se sem conhecimentos técnicos.
Se o teu alojamento já inclui cache de servidor, não a dupliques com a cache de páginas de um plugin: usa o plugin só para o que o alojamento não cobre.
Configuração passo a passo para um site WordPress normal
Passo 1: ativa a cache de páginas com as exclusões certas
No WP Rocket, a cache de páginas fica ativa logo ao instalar o plugin e as opções estão no separador Cache. Se o teu tema for responsivo, não precisas de uma cache separada para telemóveis. Nas regras avançadas, acrescenta os URL dinâmicos que não devam ir para a cache. O WP Rocket já exclui o carrinho, o checkout e a conta do WooCommerce, mas confirma: outros plugins nem sempre o fazem.
Passo 2: ativa a otimização de CSS e JavaScript com cuidado
A minificação elimina espaços e comentários dos ficheiros CSS e JavaScript para que fiquem mais leves. Alguns plugins também combinam ficheiros ou atrasam o JavaScript até o utilizador interagir. Melhora a velocidade, mas é o passo com mais risco: há temas e plugins que deixam de funcionar quando o seu JavaScript é alterado ou carregado mais tarde.
Ativa as opções uma a uma e confirma que o site funciona depois de cada alteração: menus, formulários, carrinho, sliders. Se algo deixar de funcionar, o culpado costuma estar nas opções de JavaScript. E, com HTTP/2, combinar ficheiros traz pouco ganho.
Passo 3: configura a cache do navegador
Ativa-a no plugin ou no servidor. Define períodos longos para ficheiros que mudam pouco (imagens, tipos de letra, CSS do tema) e curtos, ou nenhum, para o que é atualizado com frequência. Os bons plugins acrescentam um número de versão aos ficheiros para que, quando mudam, o navegador descarregue a versão nova.
Passo 4: ativa o pré-carregamento
A maioria dos plugins consegue gerar antecipadamente a cache de todas as páginas a partir do sitemap XML. Assim evitas que o primeiro visitante de cada página receba a versão lenta. Configura o pré-carregamento para correr automaticamente quando publicas ou atualizas conteúdo e, em alojamentos modestos, garante que não sobrecarrega o servidor se o teu site tiver milhares de URL.
Passo 5: verifica que a cache não afeta os utilizadores com sessão iniciada
É o erro mais frequente em sites com área de utilizador: confirma que quem iniciou sessão vê o seu conteúdo e não a página anónima em cache. A maioria dos plugins permite não pôr páginas em cache quando há uma sessão ativa ou criar uma cache separada por utilizador. Para testar, usa 2 navegadores: um com sessão iniciada e outro numa janela privada.
Erros de configuração mais frequentes
- Pôr em cache o carrinho e o checkout do WooCommerce, com o risco de mostrar a um cliente o carrinho de outro.
- Ativar uma otimização agressiva de JavaScript sem testar se o tema e os plugins continuam a funcionar.
- Não configurar a limpeza automática da cache ao publicar ou atualizar conteúdo.
- Ter 2 plugins de cache ativos ao mesmo tempo, que interferem entre si.
- Não limpar a cache (nem a da CDN, se usares uma) depois de alterações importantes de design ou de conteúdo.
Se tens uma loja online, neste caso em que reduzimos o tempo de carregamento de uma loja WooCommerce de 8 para 2 segundos vês como a cache encaixa no resto das otimizações.
Checklist: cache bem configurada
- Cache de páginas ativa, com exclusões definidas para as páginas dinâmicas.
- Carrinho, checkout e conta excluídos explicitamente se houver WooCommerce.
- Otimização de CSS e JavaScript ativada e site revisto depois de cada alteração.
- Cache do navegador configurada com períodos de retenção adequados.
- Pré-carregamento automático ao publicar ou atualizar conteúdo.
- Confirmado que os utilizadores com sessão iniciada veem o seu conteúdo personalizado.
- Um único plugin de cache ativo, sem conflitos com outros plugins de desempenho.
Perguntas frequentes
A cache funciona da mesma forma em todos os alojamentos?
Não. Muitos alojamentos geridos implementam a cache no próprio servidor (Nginx, Varnish ou LiteSpeed), que responde antes de o WordPress chegar a carregar e é mais eficiente do que a de um plugin. Nos alojamentos partilhados básicos, a cache de plugin costuma ser a única opção.
De quanto em quanto tempo se deve limpar a cache?
Não há uma resposta universal. O importante é que a cache seja invalidada automaticamente quando o conteúdo muda: ao publicar ou atualizar um artigo, ao alterar um produto ou quando o stock muda. Se funcionar bem, só é preciso limpá-la à mão depois de grandes alterações de design.
A cache pode fazer com que as alterações que faço não apareçam?
Sim, é um sintoma típico de uma invalidação automática que não funciona. Limpa a cache a partir do plugin (e a da CDN, se a usares) e experimenta numa janela privada para pôr de parte a do teu navegador. Se se repetir com frequência, é preciso rever a invalidação.
Na Baqueiro configuramos a infraestrutura de desempenho do WordPress (cache, CDN e alojamento) de forma integrada, e não plugin a plugin. Se o teu site continua lento apesar de ter um plugin de cache instalado, fala connosco e analisamos o caso.