I plugin di caching e le CDN funzionano con Universally e dovresti usarli: una pagina tradotta in cache è quella veloce. Ogni lingua è un URL proprio, quindi una cache che utilizza l'URL come chiave le separa senza alcuna configurazione. C'è una pagina che necessita di un'eccezione, ed è quella in lingua sorgente.
Ogni lingua è già una pagina in cache separata
/fr/pricing/ e /es/pricing/ sono URL diversi, quindi una cache di pagina o una CDN li memorizza separatamente per impostazione predefinita. Nessuno legge un parametro ?lang= e la lingua non viaggia mai in un header: è nel percorso, o nell'hostname se il tuo progetto serve lingue su sottodomini.
Ciò significa che non ci sono regole vary da aggiungere né chiavi di cache da personalizzare per le pagine tradotte.
L'eccezione: URL senza prefisso
Un visitatore che ha visualizzato una pagina tradotta conserva un cookie universally_lang per 30 giorni e una richiesta a un URL senza prefisso di lingua viene reindirizzata alla sua lingua. Questa decisione viene presa dal tuo sito ad ogni richiesta. Vedi URL esistenti e reindirizzamenti.
Una cache a pagina intera serve HTML memorizzato senza eseguire quel codice, il che lo interrompe in uno dei due modi:
- Il reindirizzamento smette di funzionare. Un visitatore di ritorno atterra sulla pagina in lingua sorgente invece che sulla propria. Innocuo, ma la funzionalità è persa.
- Il reindirizzamento stesso viene memorizzato nella cache. Ora ogni visitatore su quell'URL viene inviato a una lingua, inclusi i visitatori alla prima visita e i crawler. Questo è il problema.
Configura uno di questi nel tuo plugin di caching o CDN:
- Escludi le richieste che trasportano il cookie
universally_langdalla cache di pagina, che è l'impostazione usuale e la meno invasiva, oppure - Escludi i tuoi URL in lingua sorgente senza prefisso dalla cache di pagina, oppure
- Come minimo, non permettere mai alla cache di memorizzare un 301 o 302 per un URL condiviso
Gli URL tradotti non necessitano di nulla di tutto ciò. Sono statici per lingua e sicuri da memorizzare aggressivamente nella cache.
Dopo una modifica
Svuota le cache verso l'esterno: prima Universally, poi la tua cache di pagina, poi la tua CDN. Una modifica di traduzione che non viene visualizzata è quasi sempre trattenuta da una delle due esterne. Vedi Svuota la cache e aggiorna le traduzioni.
L'aggiunta di una lingua non richiede alcuna pulizia. Le sue pagine non sono mai state memorizzate nella cache.