CDN e Cloudflare para WordPress: guia completo para agências

O Cloudflare é hoje a CDN mais usada em sites WordPress a nível mundial — e com razão. Configurado corretamente, reduz latência, absorve ataques DDoS e melhora significativamente os Core Web Vitals. Configurado errado, parte formulários, bloqueia pagamentos e cria loops de redirect intermináveis. Este guia cobre as configurações que usamos em produção.

Porque usar CDN em sites WordPress de clientes

Uma CDN (Content Delivery Network) distribui os ativos estáticos do site — imagens, CSS, JavaScript — por servidores geograficamente distribuídos. O visitante recebe os ficheiros do servidor mais próximo, reduzindo o tempo de carregamento.

Para sites WordPress em Portugal com audiência nacional, os ganhos são moderados mas consistentes: tipicamente 15-30% de melhoria no LCP. Para sites com tráfego internacional, os ganhos são substanciais — um ficheiro servido de Lisboa para um utilizador no Brasil tem latência muito superior ao mesmo ficheiro servido de São Paulo.

Além da performance, o Cloudflare gratuito oferece proteção DDoS básica, WAF rudimentar e gestão de DNS com propagação quase imediata — funcionalidades que justificam a adoção mesmo quando a CDN não é a prioridade.

Configuração inicial: o que fazer em primeiro lugar

Modo SSL/TLS

Este é o erro mais comum. O modo SSL tem quatro opções no Cloudflare: Off, Flexible, Full e Full (Strict). Nunca use Flexible em WordPress. O modo Flexible cria loops de redirect infinitos porque o WordPress tenta forçar HTTPS e o Cloudflare serve HTTP entre si e o servidor.

Use sempre Full (Strict) se o servidor tiver certificado válido (Let's Encrypt serve), ou Full se usar certificado auto-assinado. Configure antes de mudar os nameservers.

Regras de cache para WordPress

O Cloudflare, por defeito, não faz cache de HTML — apenas de ativos estáticos. Para WordPress, esta configuração está correta: não queremos conteúdo dinâmico em cache na CDN sem controlo. O que queremos em cache são imagens, CSS e JS.

Crie uma Page Rule (ou Cache Rule) para excluir do cache:

  • /wp-admin/* — nunca deve ser cacheado
  • /wp-login.php — idem
  • URLs com cookie wordpress_logged_in_* — utilizadores autenticados devem ver conteúdo em tempo real
  • Páginas de checkout e carrinho WooCommerce (/carrinho/*, /checkout/*)

Minificação via Cloudflare

O Cloudflare oferece minificação de HTML, CSS e JS nas definições de Speed. Ative com cuidado — pode entrar em conflito com o plugin de cache do WordPress que já faz o mesmo. Use apenas um dos dois. Se usar WP Rocket, W3 Total Cache ou LiteSpeed Cache para minificação, desative no Cloudflare.

Configurações de segurança recomendadas

Security Level

Defina o Security Level como "Medium" para a maioria dos sites. "High" bloqueia demasiados visitantes legítimos com endereços IP suspeitos. Reserve "Under Attack Mode" apenas para ataques ativos em curso.

Bot Fight Mode

Ative o Bot Fight Mode (disponível no plano gratuito). Bloqueia automaticamente bots maliciosos conhecidos sem afetar crawlers legítimos como o Googlebot.

Proteção do wp-login.php

Crie uma regra de firewall que limite o acesso ao /wp-login.php a IPs conhecidos ou que ative o CAPTCHA para todos os outros. Isto reduz dramaticamente ataques de brute force. Complementa a proteção do wp-admin ao nível do servidor.

Problemas comuns após ativar Cloudflare

Loop de redirect HTTPS

Causa: modo SSL em Flexible com WordPress a forçar HTTPS. Solução: mudar para Full ou Full (Strict), ou adicionar define('FORCE_SSL_ADMIN', false); temporariamente para diagnosticar.

Mixed content após ativar HTTPS

O site carrega via HTTPS mas algumas imagens ou scripts carregam via HTTP. Ative "Automatic HTTPS Rewrites" nas definições SSL do Cloudflare. Para casos persistentes, use o plugin Really Simple SSL para atualizar referências na base de dados.

Cache servindo conteúdo errado a utilizadores autenticados

Causa: cache de HTML ativado sem excluir utilizadores com sessão ativa. Certifique-se que a regra de bypass por cookie wordpress_logged_in_* está ativa. Para WooCommerce, adicione também o cookie woocommerce_cart_hash.

Formulários a falhar ou pagamentos a não funcionar

O WAF do Cloudflare pode bloquear submissões de formulários legítimas. Verifique o log de firewall do Cloudflare para regras que estejam a disparar. Pode ser necessário criar exceções para o endpoint do processador de pagamento.

Cloudflare vs outras CDNs: quando considerar alternativas

O Cloudflare gratuito cobre 90% dos casos. Para sites com requisitos específicos, considere:

  • BunnyCDN: mais barato para alto volume de tráfego de vídeo ou ficheiros grandes. Sem proxy — apenas CDN de assets.
  • KeyCDN: bom para controlo granular de regras de cache. Preço por GB transferido.
  • Cloudflare Pro (€20/mês): inclui Polish (otimização automática de imagens), image resizing e regras de firewall avançadas. Vale a pena para sites com tráfego elevado.

Verificar se o Cloudflare está a funcionar

Após configuração, verifique:

  1. Headers de resposta incluem CF-Cache-Status: HIT para ativos estáticos
  2. O IP do site resolve para um endereço Cloudflare (não o IP real do servidor)
  3. O site carrega corretamente em HTTPS sem erros mixed content
  4. O painel WordPress é acessível e funcional
  5. Formulários submetem e emails chegam corretamente

Use curl -I https://seusite.pt/estilo.css para verificar os headers de cache sem abrir o browser.

Quer que geramos a infraestrutura e CDN dos sites dos seus clientes?

O nosso serviço de manutenção WordPress inclui configuração e monitorização de CDN para todos os sites sob gestão.

Falar connosco