Uma boa estratégia de cache multilingue garante que os visitantes recebam consistentemente a versão de idioma correta, mantendo as páginas rápidas e reduzindo os pedidos ao servidor. O primeiro passo é decidir como o seu site identifica cada idioma e como o sistema de cache utiliza essa informação.
Roteamento de URL e subdomínio
URLs específicos por idioma são uma das formas mais simples de tornar o cache multilíngue previsível. Cada idioma tem seu próprio URL, então o cache pode armazenar e servir cada versão separadamente. Por exemplo, example.com/fr/ pode representar a versão em francês, enquanto example.com/de/ representa a versão em alemão.
Subdomínios específicos por idioma funcionam de forma semelhante. Um site pode usar fr.example.com para francês e de.example.com para alemão. Como o idioma está incluído diretamente na URL, visitantes e sistemas de cache podem identificar facilmente qual versão servir. Estruturas de URL comuns incluem:
- example.com/fr/
- example.com/de/
- fr.example.com
- de.example.com
Detecção de idioma baseada em cabeçalho
Os sites também podem determinar o idioma preferido de um visitante por meio de cabeçalhos HTTP, especialmente o cabeçalho Accept-Language que o navegador envia. Por exemplo, um navegador configurado para francês pode enviar Accept-Language: fr, permitindo que o servidor selecione automaticamente a versão em francês.
No entanto, a deteção baseada em cabeçalhos exige uma configuração cuidadosa da cache. Se a cache considerar apenas o URL da página e ignorar o cabeçalho de idioma, poderá armazenar uma versão de idioma e devolvê-la a visitantes com uma preferência de idioma diferente. A chave de cache ou o comportamento Vary deve, portanto, ter em conta a informação de idioma relevante. Por exemplo:
- Accept-Language: en
- Accept-Language: fr
- Accept-Language: de
Detecção de idioma baseada em cookies
Outra abordagem é armazenar a preferência de idioma do visitante em um cookie. Assim que um visitante seleciona um idioma, o site pode salvar essa escolha e usá-la para solicitações subsequentes. Isso pode proporcionar uma experiência mais consistente, especialmente quando os visitantes escolhem manualmente um idioma em vez de confiar nas configurações do navegador.
O desafio é que os cookies podem complicar o cache. Se o cache não distinguir as solicitações com base no cookie de idioma, os visitantes podem receber uma página em cache destinada a outro idioma. Portanto, a camada de cache deve ser configurada para variar ou ignorar o cache quando necessário. Por exemplo:
- language=en
- language=fr
- language=de
Escolhendo uma estratégia de cache
A melhor estratégia de cache depende de como o seu site lida com a seleção de idioma. O roteamento de idioma baseado em URL geralmente é mais fácil de armazenar em cache porque cada idioma tem uma URL exclusiva. A detecção baseada em cabeçalho e cookie ainda pode funcionar, mas exige uma configuração mais cuidadosa para garantir que as respostas em cache sejam separadas corretamente.
Antes de escolher uma abordagem, considere o número de idiomas, como os visitantes selecionam os idiomas e com que frequência o conteúdo traduzido muda. O objetivo é fazer com que a detecção de idioma e o comportamento do cache funcionem em conjunto, em vez de deixar a camada de cache tratar cada solicitação como a mesma página. Principais fatores a considerar:
- URLs específicas por idioma
- Configuração da chave de cache
- Manipulação de cabeçalhos e cookies
- TTL do cache
- Invalidação de cache
- Frequência de atualização da tradução
- Rastreamento por mecanismos de busca
Como o Varnish armazena em cache conteúdo multilíngue 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 há uma resposta em cache válida disponível. Se encontrar uma resposta correspondente, ele entrega o conteúdo em cache sem enviar a solicitação de volta à origem. Se não existir uma resposta adequada, o Varnish encaminha a solicitação para a origem, recebe a resposta e pode armazená-la para solicitações subsequentes.
Para sites multilíngues, o Varnish precisa distinguir entre solicitações que devem retornar versões em idiomas diferentes. Portanto, as informações de idioma devem ser consideradas quando o Varnish determina se uma resposta em cache pode ser reutilizada. Isso impede que o cache trate traduções diferentes como a mesma resposta.
Chaves de cache específicas por idioma
O Varnish precisa de uma forma de distinguir respostas em cache que representam diferentes versões de idioma. Quando o idioma já está incluído no URL, cada URL pode naturalmente corresponder a 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 precisa de incorporar essa informação na sua lógica de caching. Por exemplo, um site multilingue pode distinguir respostas em cache usando:
- /en/about/ → entrada de cache em inglês
- /fr/about/ → Entrada de cache em francês
- Accept-Language: en → 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 de como o site determina o idioma. O requisito principal é que as solicitações que produzem respostas traduzidas diferentes não devem ser resolvidas para o mesmo objeto em cache.
Prevenção de acessos entre idiomas
Um acerto de cache entre idiomas ocorre quando o Varnish retorna uma resposta em cache de um idioma para um visitante que solicita outro. Por exemplo, um visitante que solicita uma página em francês pode receber uma resposta em inglês se ambas as solicitações forem tratadas como o mesmo recurso armazenável em cache.
Para reduzir este risco, o Varnish só deve reutilizar uma resposta em cache quando a variação de idioma é conhecida e corresponde ao pedido. Se o idioma não puder ser determinado de forma fiável, a resposta deve ser tratada com cuidado em vez de ser armazenada como uma entrada de cache partilhada. As salvaguardas importantes incluem:
- Evite armazenar em cache respostas com informações de idioma ambíguas
- Gerir cookies e cabeçalhos de idioma de forma consistente
- Teste acertos e erros de cache para solicitações em diferentes idiomas
- Verifique a troca de idioma após a ativação do cache
Invalidação de cache do Varnish
A invalidação de cache remove ou marca o conteúdo em cache como não sendo mais válido. Isso é importante quando o conteúdo original ou sua tradução foi atualizado. Sem a invalidação, o Varnish pode continuar servindo uma versão em cache mais antiga até que seu TTL configurado expire.
Para sites multilíngues, a invalidação deve considerar todas as versões de idioma afetadas. Se uma página em inglês e sua tradução em 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:
- Limpeza de URLs específicos
- Limpeza de várias versões de idioma
- Usar TTLs de cache
- Limpeza automática após atualizações de conteúdo
- Atualizando páginas traduzidas afetadas
Como o Cloudflare armazena em cache conteúdo multilíngue na borda
O Cloudflare funciona como uma camada de cache de borda entre os visitantes e o seu servidor de origem. Quando um visitante solicita uma página, o Cloudflare verifica se uma versão em cache está disponível em um local de borda. Se existir uma resposta válida, ela pode ser servida diretamente da borda em vez de solicitar a página ao servidor de origem. Se nenhuma resposta em cache estiver disponível, o Cloudflare recupera o conteúdo da origem e pode armazenar a resposta em cache para solicitações subsequentes.
Para sites multilíngues, esse processo precisa levar 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 armazenada em cache não seja entregue a alguém que solicita a versão em francês. Isso torna a configuração de cache ciente do idioma importante quando o conteúdo traduzido é entregue por meio de diferentes URLs, cabeçalhos ou cookies.
Separando versões de idioma
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údo em inglês, francês e italiano. Como o idioma é incluído diretamente no URL, cada versão pode ter sua própria entrada de cache, facilitando o gerenciamento e a limpeza de versões individuais de idioma. Por exemplo:
- example.com/en/products/
- example.com/fr/products/
- example.com/it/products/
Chaves de cache do Cloudflare e variações de idioma
O Cloudflare precisa distinguir as solicitações sempre que entradas em idiomas diferentes puderem produzir respostas diferentes. Com o roteamento de idioma baseado em URL, essa separação acontece naturalmente porque cada idioma tem sua própria URL.
É necessária mais atenção quando o idioma é determinado pelo cabeçalho Accept-Language ou por um cookie. Se esses valores afetarem a resposta traduzida, mas não forem tratados pela configuração de cache, solicitações para idiomas diferentes podem ser tratadas como o mesmo recurso. Isso pode resultar em um idioma sendo servido a visitantes que solicitam outro.
Para a maioria dos sites multilíngues, o roteamento baseado em URL é mais fácil de gerenciar porque o idioma fica diretamente visível na URL. A detecção por cabeçalho e por cookie também pode funcionar, mas exige configuração adicional para garantir que respostas em idiomas diferentes não sejam compartilhadas incorretamente.
TTLs de cache e limpeza
Um TTL de cache (Time to Live) determina por quanto tempo a Cloudflare mantém uma resposta em cache antes que ela expire. Um TTL mais longo pode melhorar o desempenho porque o conteúdo permanece em cache por mais tempo, enquanto um TTL mais curto permite que as alterações fiquem disponíveis mais rapidamente.
Para sites multilíngues, os TTLs devem refletir a frequência com que o conteúdo e as traduções mudam. Páginas atualizadas com frequência podem precisar de TTLs mais curtos, enquanto páginas estáveis geralmente podem usar TTLs mais longos. Quando uma tradução muda, a versão do idioma afetado deve ser limpa ou atualizada em vez de esperar que o TTL expire. Isso 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 por URL
- Limpeza manual do cache
- Limpeza automática após atualizações
Melhores práticas para armazenar em cache sites multilíngues
Uma configuração de cache bem planejada pode tornar os sites multilíngues mais rápidos sem fazer com que os visitantes recebam a tradução errada ou desatualizada. A chave é fazer com que seu sistema de tradução e a camada de cache trabalhem juntos, separando claramente cada versão de idioma.
Combinar tradução e cache
A tradução e o cache devem funcionar em conjunto como parte do mesmo processo de entrega de conteúdo. A camada de tradução determina qual versão localizada deve ser retornada, enquanto a camada de cache armazena essa resposta para solicitações subsequentes. A consideração importante é o momento: o idioma deve ser determinado antes que a resposta seja armazenada em cache. Isso garante que o cache armazene a resposta traduzida que foi realmente solicitada, em vez de uma versão ambígua que poderia ser reutilizada para outro idioma.
Para sites que usam tradução automática, uma solução de tradução como Linguise pode simplificar esse processo gerando automaticamente conteúdo localizado, ao mesmo tempo que permite que as páginas traduzidas funcionem com a configuração de cache existente do site. Isso pode ser útil para sites com vários idiomas, onde gerenciar manualmente as versões traduzidas e mantê-las sincronizadas com o conteúdo em cache pode se tornar mais complexo.
Melhor prática: Certifique-se de que seu sistema de tradução e a camada de cache concordem sobre como as versões de idioma são identificadas antes de habilitar o cache de página inteira.
Quebre as Barreiras Linguísticas
Diga adeus às barreiras linguísticas e olá ao crescimento ilimitado! Experimente nosso serviço de tradução automática hoje.
Use chaves de cache específicas por idioma
Cada resposta traduzida deve corresponder à variação de cache correta. Estruturas de idioma baseadas em URL facilitam isso, pois cada idioma já possui um URL distinto, enquanto configurações baseadas em cabeçalho ou cookie exigem configuração adicional de cache.
Melhor prática: Prefira URLs específicas para cada idioma sempre que possível, como:
- /en/about/ → Inglês
- /fr/about/ → Francês
- /de/about/ → Alemão
Isso proporciona uma separação clara entre as versões de idioma e reduz o risco de acertos de cache entre idiomas.
Defina cache-control e TTLs
Os cabeçalhos Cache-Control e os TTLs determinam como os navegadores, as CDNs e os proxies reversos lidam com o conteúdo em cache. Defini-los corretamente ajuda a equilibrar o desempenho do site com a necessidade de entregar traduções atualizadas.
Páginas que raramente mudam geralmente podem permanecer em cache por mais tempo, enquanto conteúdos atualizados com frequência devem usar TTLs mais curtos. A configuração correta depende da frequência com que o conteúdo e as traduções do seu site são atualizados.
Melhor prática: Por exemplo, você pode usar um TTL mais longo para uma página de destino multilíngue estática e um TTL mais curto para páginas de produtos ou notícias que mudam com frequência. Sempre teste a configuração para garantir que o conteúdo atualizado fique disponível quando esperado.
Limpe os caches após as atualizações
Quando o conteúdo ou as traduções mudam, limpe ou atualize as respostas em cache afetadas em vez de confiar apenas na expiração do TTL. Isso ajuda a garantir que os visitantes recebam a versão mais recente em todos os idiomas afetados.
Melhor prática: Inclua a invalidação de cache no seu fluxo de trabalho de atualização de conteúdo e certifique-se de que todas as versões de idioma afetadas sejam cobertas.
Testar páginas multilíngues em cache
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 acessada diretamente, mas retornar o idioma errado quando servida a partir de uma resposta em cache.
Teste cada versão de idioma após configurar ou alterar suas regras de cache. Verifique tanto as solicitações iniciais quanto as subsequentes para confirmar que a resposta em cache correta é retornada consistentemente.
Melhor prática: Teste cenários como:
- Abrir a mesma página em idiomas diferentes
- Recarregando uma página em cache
- Alternando entre idiomas
- Atualizando uma tradução
- Verificar a página após uma limpeza de cache
- Rastreando URLs específicas de idioma
Lista de verificação de cache multilíngue
Antes de colocar sua configuração de cache multilíngue em produção, use uma lista de verificação simples para verificar se a detecção de idioma, o cache e as atualizações de conteúdo funcionam juntos corretamente.
Lista de verificação de boas práticas:
- Dê a cada versão de idioma um URL exclusivo ou uma variação de cache
- Use chaves de cache específicas por idioma
- Configure os cabeçalhos Cache-Control apropriados
- Defina TTLs com base na frequência de atualização do conteúdo
- Limpe as versões de idioma afetadas após as atualizações
- Teste as páginas em cache em todos os idiomas suportados
- Verifique respostas no idioma errado
- Verifique se há conteúdo traduzido desatualizado
- Verificar URLs específicas de idioma com rastreadores de mecanismos de busca
Pronto para explorar novos mercados? Experimente nosso serviço de tradução automática gratuitamente com nossa avaliação gratuita de 1 mês. Não é necessário cartão de crédito!
Conclusão
Fazer cache de sites multilíngues de forma eficaz exige um equilíbrio entre o desempenho do site e a entrega da versão de idioma correta e atualizada para cada visitante. Ao usar chaves de cache específicas por idioma, TTLs apropriados e invalidação de cache confiável, você pode reduzir as solicitações ao servidor enquanto evita conteúdo em idioma errado e desatualizado.
Para uma forma mais simples de gerenciar conteúdo traduzido, registre-se com Linguise e simplifique o fluxo de trabalho do seu site multilíngue com tradução automatizada, mantendo seu conteúdo localizado rápido e gerenciável.