Um website multilingue precisa de entregar o conteúdo traduzido correto aos visitantes certos sem sacrificar a velocidade. É aqui que o armazenamento em cache de sites multilingues se torna essencial, ajudando as páginas traduzidas a carregar mais rapidamente e reduzindo os pedidos repetidos ao servidor. No entanto, o armazenamento em cache de várias versões em diferentes idiomas pode apresentar desafios como traduções desatualizadas, conteúdo no idioma errado e resultados inconsistentes para os motores de busca.
Neste guia, vamos explorar os problemas de cache multilingue mais comuns e explicar como o Cloudflare e o Varnish lidam com o conteúdo traduzido. Continue a ler para escolher a estratégia de cache correta, evitar acessos de cache entre idiomas e criar uma configuração fiável para o seu website multilingue.
Pontos principais: Cache de sites multilingues com Cloudflare e Varnish
Versões em línguas separadas
Utilize URLs ou chaves de cache específicas para cada idioma para garantir que cada versão traduzida é armazenada e apresentada separadamente. Isto ajuda a evitar que os utilizadores recebam conteúdo no idioma errado.
Evitar conflitos de cache
O Varnish e o Cloudflare precisam de ter em conta as informações linguísticas provenientes de URLs, cabeçalhos ou cookies. Uma configuração adequada evita o acesso à cache em diferentes idiomas e garante que os visitantes recebem a tradução correta.
Mantenha as traduções atualizadas
Defina os TTLs de cache adequados e limpe os caches afetados sempre que as traduções forem atualizadas. Isto evita que o conteúdo desatualizado permaneça visível para os visitantes.
Porque é que o cache multilingue é importante?

Os sites multilingues podem ter várias versões em cache da mesma página, uma vez que cada idioma pode conter conteúdo e URLs diferentes. O armazenamento em cache destas versões traduzidas permite que o site reutilize as respostas existentes em vez de processar repetidamente o mesmo conteúdo para cada pedido. Isto pode reduzir os pedidos ao servidor de origem, melhorar os tempos de carregamento da página e proporcionar uma experiência mais rápida aos visitantes.
No entanto, a cache multilingue precisa de manter cada versão de idioma devidamente separada. Se o sistema de cache não distinguir entre as variantes de idioma, um visitante que solicite uma página em francês poderá receber uma versão em inglês em cache. Da mesma forma, quando uma tradução é atualizada, uma resposta em cache mais antiga pode continuar a ser apresentada até expirar ou ser invalidada.
O armazenamento em cache também desempenha um papel importante na forma como os rastreadores dos motores de busca acedem às páginas multilingues. Cada URL num idioma diferente deve devolver consistentemente o seu conteúdo traduzido correspondente, para que os motores de busca possam compreender e indexar corretamente as versões localizadas. Portanto, uma configuração de cache fiável deve funcionar em conjunto com sinais de SEO, como hreflang, URLs canónicose metadados específicos de cada idioma.
Como criar uma estratégia de cache para sites multilingues

Uma boa estratégia de cache multilingue garante que os visitantes recebem sempre a versão correta do idioma, mantendo as páginas rápidas e reduzindo os pedidos ao servidor. O primeiro passo é definir como o seu site identifica cada idioma e como o sistema de cache utiliza essa informação.
Encaminhamento de URL e subdomínio
Os URLs específicos para cada idioma são uma das formas mais simples de tornar o cache multilingue previsível. Cada idioma tem o seu próprio URL, permitindo que a cache armazene e forneça cada versão em separado. Por exemplo, exemplo.com/fr/ pode representar a versão francesa, enquanto exemplo.com/de/ representa a versão alemã.
Os subdomínios específicos para cada idioma funcionam de forma semelhante. Um site pode utilizar fr.exemplo.com para francês e de.exemplo.com para alemão. Como o idioma está incluído diretamente no URL, os visitantes e os sistemas de cache podem identificar facilmente qual a versão a apresentar. As estruturas de URL comuns incluem:
- exemplo.com/fr/
- exemplo.com/de/
- fr.exemplo.com
- de.exemplo.com
Detecção de idioma baseada em cabeçalho
Os sites também podem determinar o idioma preferido de um visitante através de cabeçalhos HTTP, em particular o cabeçalho Accept-Language enviado pelo browser. Por exemplo, um browser configurado para francês pode enviar Accept-Language:fr, permitindo ao servidor selecionar automaticamente a versão francesa.
No entanto, a deteção baseada em cabeçalhos exige uma configuração cuidadosa da cache. Se o cache considerar apenas o URL da página e ignorar o cabeçalho de idioma, pode armazenar uma versão num idioma e devolvê-la aos visitantes com uma preferência de idioma diferente. Portanto, a chave da cache ou o comportamento de variação (Vary) devem ter em conta as informações relevantes da língua. Por exemplo:
- Accept-Language: pt
- Accept-Language: fr
- Accept-Language: de
Detecção de idioma baseada em cookies
Outra abordagem é armazenar a preferência de idioma do visitante num cookie. Assim que um visitante seleciona um idioma, o website pode guardar essa escolha e utilizá-la em pedidos subsequentes. Isto pode proporcionar uma experiência mais consistente, especialmente quando os visitantes escolhem um idioma manualmente, em vez de dependerem das definições do browser.
O desafio reside no facto de os cookies poderem complicar o armazenamento em cache. Se o cache não diferenciar os pedidos com base no cookie de idioma, os visitantes podem receber uma página em cache destinada a outro idioma. Por conseguinte, a camada de cache deve ser configurada para variar ou ignorar a cache quando necessário. Por exemplo:
- idioma=pt
- idioma=fr
- idioma=de
Escolhendo uma estratégia de cache
A melhor estratégia de cache depende da forma como o seu website lida com a seleção do idioma. O encaminhamento de idioma baseado em URL é geralmente mais fácil de armazenar em cache, uma vez que cada idioma tem um URL único. A deteção baseada em cabeçalhos e cookies ainda funciona, mas requer uma configuração mais cuidadosa para garantir que as respostas em cache são separadas corretamente.
Antes de escolher uma abordagem, considere o número de idiomas, a forma como os visitantes selecionam os idiomas e a frequência com que o conteúdo traduzido é alterado. O objetivo é fazer com que a deteção de idioma e o comportamento da cache funcionem em conjunto, em vez de deixar a camada de cache tratar cada pedido como a mesma página. Fatores-chave a considerar:
- URLs específicas por idioma
- Configuração da chave de cache
- Manipulação de cabeçalhos e cookies
- TTL da cache
- Invalidação de cache
- Frequência de atualização da tradução
- rastreamento de motores de busca
Como o Varnish armazena em cache conteúdo multilingue e traduzido

O Varnish Cache funciona como um proxy reverso entre os visitantes e o servidor de origem. Quando um visitante solicita uma página, o Varnish verifica se existe uma resposta em cache válida. Se encontrar uma resposta correspondente, apresenta o conteúdo em cache sem reenviar o pedido para a origem. Caso não exista uma resposta adequada, o Varnish encaminha o pedido para a origem, recebe a resposta e pode armazená-la para pedidos subsequentes.
Para sites multilingues, o Varnish precisa de distinguir entre pedidos que devem devolver versões de idiomas diferentes. Portanto, as informações de idioma devem ser consideradas quando o Varnish determina se uma resposta em cache pode ser reutilizada. Isto impede que a cache trate traduções diferentes como a mesma resposta.

chaves de cache específicas do idioma
O Varnish precisa de uma forma de distinguir respostas em cache que representam diferentes versões linguísticas. Quando o idioma já está incluído no URL, cada URL pode ser mapeado naturalmente para uma entrada de cache diferente. Quando o idioma é determinado por um cabeçalho de pedido, cookie ou outro valor de pedido, a configuração do Varnish necessita de incorporar esta informação na sua lógica de cache. Por exemplo, um site multilingue pode distinguir respostas em cache utilizando:
- /en/about/ → Entrada de cache em inglês
- /fr/about/ → Entrada de cache em francês
- Accept-Language: pt → Variação em inglês
- Accept-Language: fr → Variação em francês
- Um cookie de idioma → Idioma selecionado pelo visitante
A implementação exata depende da forma como o site determina o idioma. O requisito fundamental é que os pedidos que produzem respostas traduzidas diferentes não devem resultar no mesmo objeto em cache.
Prevenindo acessos entre línguas
Um acerto de cache entre idiomas ocorre quando o Varnish devolve uma resposta em cache para um idioma a um visitante que solicita outro. Por exemplo, um visitante que solicite uma página em francês pode receber uma resposta em inglês se ambos os pedidos forem tratados como o mesmo recurso armazenável em cache.
Para reduzir este risco, o Varnish deve reutilizar uma resposta em cache apenas quando a variação linguística for conhecida e corresponder ao pedido. Se o idioma não puder ser determinado com segurança, a resposta terá de ser tratada com cuidado, em vez de ser armazenada como uma entrada de cache partilhada. Medidas de segurança importantes incluem:
- Evite armazenar em cache respostas com informações linguísticas ambíguas
- Gerir cookies e cabeçalhos de idioma de forma consistente
- Teste os acertos e erros de cache para pedidos em diferentes idiomas
- Verifique a troca de idioma após a ativação da cache
Invalidação da cache Varnish
A invalidação da cache remove ou marca o conteúdo armazenado em cache como inválido. Isto é importante quando o conteúdo original ou a sua tradução foi atualizado. Sem a invalidação, o Varnish pode continuar a servir uma versão em cache mais antiga até que o tempo de vida (TTL) configurado expire.
Para sites multilingues, a invalidação deve ter em conta todas as versões linguísticas afetadas. Se uma página em inglês e a sua tradução para francês forem atualizadas, as respostas em cache correspondentes devem ser limpas ou atualizadas para que os visitantes não vejam conteúdo desatualizado. As abordagens comuns incluem:
- Remover URLs específicos
- Eliminação de versões em vários idiomas
- Utilizando TTLs de cache
- Limpeza automática após atualizações de conteúdo
- Atualizar as páginas traduzidas afetadas
Como a Cloudflare armazena em cache conteúdo multilingue na borda

O Cloudflare funciona como uma camada de cache de fronteira entre os visitantes e o seu servidor de origem. Quando um visitante solicita uma página, o Cloudflare verifica se existe uma versão em cache disponível num local de fronteira. Se existir uma resposta válida, esta pode ser fornecida diretamente a partir da borda, em vez de solicitar a página do servidor de origem. Se não existir uma resposta em cache disponível, o Cloudflare recupera o conteúdo da origem e pode armazenar a resposta em cache para pedidos subsequentes.
Para sites multilingues, este processo precisa de ter em conta o idioma solicitado. O Cloudflare deve ser capaz de distinguir entre diferentes versões de idioma para que uma resposta em inglês em cache não seja apresentada a alguém que tenha solicitado a versão em francês. Isto torna a configuração da cache com reconhecimento de idioma importante quando o conteúdo traduzido é entregue através de URLs, cabeçalhos ou cookies diferentes.

Separação de versões linguísticas
O Cloudflare pode armazenar em cache diferentes versões de idioma separadamente quando cada versão tem um URL distinto. Por exemplo, /en/, /fr/ e /it/ podem representar conteúdos em inglês, francês e italiano, respetivamente. Uma vez que o idioma está incluído diretamente no URL, cada versão pode ter a sua própria entrada de cache, facilitando a gestão e a remoção de versões de idioma individuais. Por exemplo:
- exemplo.com/pt/produtos/
- exemplo.com/fr/produtos/
- exemplo.com/it/produtos/
Chaves de cache e variações de idioma do Cloudflare
A Cloudflare precisa de distinguir os pedidos sempre que as entradas em diferentes idiomas possam produzir respostas diferentes. Com o encaminhamento de idiomas baseado em URL, esta separação ocorre naturalmente, uma vez que cada idioma tem o seu próprio URL.
É necessário ter mais atenção quando o idioma é determinado pelo cabeçalho Accept-Language ou por um cookie. Se estes valores afetarem a resposta traduzida, mas não forem tratados pela configuração da cache, os pedidos para diferentes idiomas podem ser tratados como o mesmo recurso. Isto pode resultar na exibição de um idioma aos visitantes que solicitem outro.
Para a maioria dos sites multilingues, o encaminhamento baseado em URL é mais fácil de gerir, uma vez que o idioma é diretamente visível no URL. A deteção baseada em cabeçalhos e cookies também funciona, mas requer uma configuração adicional para garantir que as respostas em diferentes idiomas não são partilhadas incorretamente.
TTLs de cache e limpeza
O TTL (Time to Live) da cache determina durante quanto tempo o Cloudflare mantém uma resposta em cache antes de esta expirar. Um TTL mais longo pode melhorar o desempenho, uma vez que o conteúdo permanece em cache durante mais tempo, enquanto um TTL mais curto permite que as alterações fiquem disponíveis mais rapidamente.
Para sites multilingues, o TTL (Tempo para a Vida) deve refletir a frequência com que o conteúdo e as traduções são atualizados. Páginas frequentemente atualizadas podem necessitar de TTLs mais curtos, enquanto páginas estáveis podem geralmente utilizar TTLs mais longos. Quando uma tradução é alterada, a versão do idioma afetado deve ser removida ou atualizada, em vez de esperar que o TTL expire. Isto ajuda a evitar que os visitantes recebam traduções desatualizadas. A estratégia de cache pode incluir:
- TTL curto para conteúdo atualizado com frequência
- TTL mais longo para páginas estáveis
- regras de cache específicas para URLs
- Limpeza manual da cache
- Limpeza automática após atualizações
Melhores práticas para o armazenamento em cache de sites multilingues

Uma configuração de cache bem planeada pode tornar os sites multilingues mais rápidos, sem que os visitantes recebam traduções incorretas ou desatualizadas. O fundamental é fazer com que o sistema de tradução e a camada de cache funcionem em conjunto, separando claramente cada versão linguística.
Combinar tradução e armazenamento em cache
A tradução e o armazenamento em cache devem funcionar em conjunto como parte do mesmo processo de entrega de conteúdos. A camada de tradução determina qual a versão localizada que deve ser devolvida, enquanto a camada de cache armazena essa resposta para pedidos subsequentes. A consideração importante é o momento: o idioma deve ser determinado antes de a resposta ser armazenada em cache. Isto garante que a cache armazena a resposta traduzida que foi efetivamente solicitada, em vez de uma versão ambígua que poderia ser reutilizada para outro idioma.
Para sites que utilizam tradução automática, uma solução como Linguise pode simplificar este processo, gerando conteúdo localizado automaticamente e permitindo que as páginas traduzidas funcionem com o sistema de cache existente do site. Isto pode ser útil para sites com vários idiomas, onde a gestão manual das versões traduzidas e a sincronização com o conteúdo em cache podem tornar-se mais complexas.
Boa prática: Certifique-se de que o seu sistema de tradução e a camada de cache estão de acordo sobre a forma como as versões de idioma são identificadas antes de ativar a cache de página inteira.
Utilize chaves de cache específicas do idioma
Cada resposta traduzida deve corresponder à variação de cache correta. As estruturas de idioma baseadas em URL facilitam isto, uma vez que cada idioma já tem um URL distinto, enquanto as definições baseadas em cabeçalho ou cookies exigem uma configuração de cache adicional.
Boa prática: Sempre que possível, prefira URLs específicos para cada idioma, tais como:
- /pt/sobre/ → Inglês
- /fr/sobre/ → Francês
- /de/sobre/ → Alemão
Isto proporciona uma separação clara entre as versões de idioma e reduz o risco de acessos simultâneos à cache em diferentes idiomas.
Defina o controlo de cache e os TTLs
Os cabeçalhos Cache-Control e os TTLs determinam a forma como os browsers, CDNs e proxies reversos lidam com o conteúdo em cache. Configurar estes parâmetros corretamente ajuda a equilibrar o desempenho do website com a necessidade de fornecer traduções atualizadas.
As páginas que raramente mudam podem geralmente permanecer em cache durante mais tempo, enquanto o conteúdo atualizado com frequência deve utilizar TTLs mais curtos. A configuração ideal depende da frequência com que o conteúdo e as traduções do seu website são atualizados.
Boa prática: Por exemplo, pode utilizar um TTL mais longo para uma página de destino estática multilingue e um TTL mais curto para páginas de produtos ou notícias que mudam frequentemente. Teste sempre a configuração para garantir que o conteúdo atualizado está disponível quando esperado.
Limpar caches após atualizações
Quando o conteúdo ou as traduções forem alterados, limpe ou atualize as respostas em cache afetadas em vez de depender apenas da expiração do TTL. Isto ajuda a garantir que os visitantes recebem a versão mais recente em todos os idiomas afetados.
Boa prática: Inclua a invalidação da cache no seu fluxo de trabalho de atualização de conteúdos e certifique-se de que todas as versões de idioma afetadas estão contempladas.
Páginas multilingues em cache de teste
Os testes são importantes porque os problemas de cache nem sempre são visíveis durante a navegação normal. Uma página pode parecer correta quando acedida diretamente, mas devolver o idioma errado quando servida a partir de uma resposta em cache.
Teste cada versão de idioma após configurar ou alterar as suas regras de cache. Verifique tanto os pedidos iniciais como os subsequentes para confirmar se a resposta em cache correta é devolvida de forma consistente.
Boa prática: Testar cenários como:
- Abrir a mesma página em diferentes idiomas
- Recarregar uma página em cache
- Alternar entre idiomas
- Atualizando uma tradução
- Verificação da página após a limpeza da cache
- Rastreamento de URLs específicos de idioma
Lista de verificação de cache multilingue
Antes de colocar a sua configuração de cache multilingue em produção, utilize uma lista de verificação simples para garantir que a deteção de idioma, o armazenamento em cache e as atualizações de conteúdo funcionam corretamente em conjunto.
Lista de verificação das melhores práticas:
- Atribua a cada versão de idioma um URL único ou uma variação em cache
- Utilize chaves de cache específicas do idioma
- Configure os cabeçalhos Cache-Control adequados
- Defina os TTL com base na frequência de atualização do conteúdo
- Remover as versões de idioma afetadas após atualizações
- Teste páginas em cache em todos os idiomas suportados
- Verifique se existem respostas em idioma incorreto
- Verifique se existe conteúdo traduzido desatualizado
- Verifique URLs específicos de idioma com rastreadores de motores de busca
Conclusão
O armazenamento em cache eficaz de sites multilingues exige um equilíbrio entre o desempenho do site e a entrega da versão correta e atualizada do idioma a cada visitante. Ao utilizar chaves de cache específicas para cada idioma, TTLs apropriados e invalidação de cache fidedigna, pode reduzir os pedidos ao servidor e, ao mesmo tempo, evitar conteúdo desatualizado ou em idioma incorreto.
Para uma forma mais simples de gerir conteúdo traduzido, registe-se no Linguise e otimize o fluxo de trabalho do seu website multilingue com tradução automatizada, mantendo o seu conteúdo localizado rápido e fácil de gerir.



