Plugins de cache e CDNs funcionam com o Universally, e você deve usá-los: uma página traduzida em cache é a mais rápida. Cada idioma é uma URL própria, então um cache que usa a URL como chave os separa sem nenhuma configuração. Há uma página que precisa de uma exceção, e é a de idioma de origem.
Cada idioma já é uma página em cache separada
/fr/pricing/ e /es/pricing/ são URLs diferentes, então um cache de página ou CDN os armazena separadamente por padrão. Nada lê um parâmetro ?lang=, e o idioma nunca viaja em um cabeçalho: ele está no caminho, ou no nome do host se seu projeto serve idiomas em subdomínios.
Isso significa que não há regra vary para adicionar e nenhuma chave de cache para personalizar para páginas traduzidas.
A exceção: URLs sem prefixo
Um visitante que visualizou uma página traduzida carrega um cookie universally_lang por 30 dias, e uma solicitação para uma URL sem prefixo de idioma é redirecionada para o idioma dele. Essa decisão é tomada pelo seu site a cada solicitação. Veja URLs existentes e redirecionamentos.
Um cache de página inteira serve HTML armazenado sem executar esse código, o que o quebra de uma das duas maneiras:
- O redirecionamento para de acontecer. Um visitante recorrente acessa a página no idioma de origem em vez da sua. Inofensivo, mas o recurso desaparece.
- O próprio redirecionamento é em cache. Agora todo visitante naquela URL é enviado para um idioma, incluindo visitantes de primeira viagem e rastreadores. Esse é o problema.
Configure um destes em seu plugin de cache ou CDN:
- Exclua solicitações que carregam o cookie
universally_langdo cache de página, que é a configuração usual e a menos disruptiva, ou - Exclua suas URLs sem prefixo no idioma de origem do cache de página, ou
- No mínimo, nunca deixe o cache armazenar um 301 ou 302 para uma URL compartilhada
URLs traduzidas não precisam de nada disso. Elas são estáticas por idioma e seguras para cache agressivo.
Após uma alteração
Limpe os caches de fora para dentro: primeiro o Universally, depois seu cache de página, depois sua CDN. Uma edição de tradução que não está aparecendo quase sempre está retida por um dos dois externos. Veja Limpar cache e atualizar traduções.
Adicionar um idioma não precisa de purga. Suas páginas nunca foram cacheadas.