Abbiamo appena rilasciato WPML 4.3, che include un modo completamente nuovo di tradurre le stringhe. L'area di amministrazione di Traduzione stringhe ha lo stesso aspetto ma funziona in modo diverso. Invece di leggere le traduzioni dal database, genera e carica i file .mo. Questo si traduce in un uso molto più leggero del database per la traduzione delle stringhe.
Perché abbiamo riscritto Traduzione stringhe?
La versione precedente della traduzione delle stringhe caricava le stringhe dal database e cercava di evitare il caricamento dei file .mo. Alcuni dei grandi plugin di WordPress sono dotati di file .mo enormi, che traducono ogni singolo testo nel plugin. Ad esempio, i file .mo di WooCommerce hanno poco più di 8.000 stringhe. Altri plugin di grandi dimensioni hanno conteggi di stringhe simili.
Quando esegui un sito in inglese, WordPress non carica questi file .mo. Tuttavia, quando esegui un sito in qualsiasi altra lingua (anche solo in una lingua, non in siti multilingue), WordPress caricherà tutti questi file .mo. Il caricamento di questi file richiede da 100 ms a oltre un secondo, a seconda del server che stai utilizzando. Questi file .mo verranno caricati su qualsiasi pagina in cui viene eseguito il plugin (in genere, su tutte le pagine del sito).
Fino a WPML 4.3, abbiamo cercato di ottimizzare questo meccanismo. WPML aveva un'opzione, abilitata per impostazione predefinita, per impedire al tema e ai plugin di caricare i file .mo. Invece, controllavamo quali stringhe fossero necessarie per ogni pagina e caricavamo queste stringhe specifiche dal database.
Il meccanismo funzionava bene in generale, ma a volte si ritorceva contro. Quando un plugin utilizza molte stringhe a ogni caricamento della pagina, WPML caricava un enorme elenco di stringhe dal database invece di lasciare che il plugin caricasse il proprio file .mo.
Poiché alcuni plugin sono cresciuti nel tempo, il nostro meccanismo di ottimizzazione è diventato sempre meno efficiente.
In WPML 4.3 abbiamo deciso che è giunto il momento di cambiare approccio. Abbiamo smesso di bloccare i file .mo e abbiamo smesso di caricare le stringhe dal database. Ora WPML non cerca di ottimizzare i tempi di traduzione di altri plugin o temi e ottimizza solo le proprie stringhe.
Come influirà questo sul tempo di caricamento del mio sito?
Dipende. Se il tuo sito era veloce fino ad ora (come lo è la maggior parte dei siti che usano WPML), non noterai un cambiamento significativo nella velocità. Ad esempio, su wpml.org, la maggior parte delle pagine è un po' più veloce e alcune pagine richiedono un po' più di tempo per caricarsi.
Il motivo per cui alcune pagine impiegano un po' più di tempo per caricarsi ora è perché ci sono altri plugin che caricano file .mo enormi. L'aumento di velocità derivante dall'ottimizzazione delle traduzioni delle stringhe viene annullato dai tempi di caricamento dei file .mo di altri plugin.
Tuttavia, queste fluttuazioni sono molto piccole e possiamo misurarle solo con strumenti di profilazione avanzati. Un sito web che fino ad ora era veloce, in genere continuerà a essere veloce con WPML 4.3.
Alcuni siti web che soffrivano di tempi di caricamento lenti ora si caricheranno molto più velocemente. Prima di WPML 4.3, alcuni siti web avevano decine di migliaia di stringhe da caricare dal database. Ciò causava un carico significativo sul database, consumava molta RAM e causava lunghi tempi di caricamento delle pagine. Questi siti vedranno un miglioramento molto significativo delle prestazioni.
Sono in arrivo altre ottimizzazioni delle prestazioni?
Sì. Ora che abbiamo rimosso i principali problemi di prestazioni derivanti dalla traduzione delle stringhe, avremo maggiori opportunità di ottimizzazione.
Ci aspettiamo di trovare problemi che richiederanno di collaborare con gli autori di altri plugin e temi. Le prestazioni migliorano maggiormente quando i plugin e i temi caricano meno stringhe. La maggior parte degli autori di altri plugin e temi è felice di collaborare con noi e siamo fiduciosi di poter risolvere quasi tutti i problemi di prestazioni futuri. Il processo di ottimizzazione è quasi sempre lo stesso:
- Dividere i file .mo enormi in file più piccoli
- Caricare i file giusti sulle pagine giuste
La segmentazione più banale è tra le stringhe utilizzate nell'area di amministrazione e le stringhe visualizzate sul front-end. Ottimizzazioni più profonde suddividono ulteriormente le stringhe del front-end in base al tipo di pagina. Ad esempio, sui siti di e-commerce, non è necessario caricare le stringhe utilizzate nel processo di checkout su ogni pagina.
Naturalmente, quando c'è un'opportunità di ottimizzazione all'interno di WPML stesso, ce ne occupiamo immediatamente.
Aggiorna, misura e segnala
WPML 4.3 è in fase di implementazione proprio ora. Lo stiamo rilasciando gradualmente nel corso di una o due settimane. Se i tuoi siti non hanno ancora ricevuto questo aggiornamento, aspetta un po' di tempo e vedrai l'aggiornamento tra qualche giorno. Puoi saltare la coda e ottenere questo aggiornamento immediatamente andando alla pagina Plugin –> Aggiungi nuovo, facendo clic sulla scheda Commerciale e quindi utilizzando il pulsante Controlla aggiornamenti.
Se ritieni che una qualsiasi pagina del tuo sito impieghi più tempo a caricarsi, ti suggeriamo di installare il plugin Query Monitor (segui il nostro tutorial su come analizzare i problemi di prestazioni con Query Monitor). Nota che in WPML 4.3 abbiamo corretto problemi significativi di compatibilità con Query Monitor, quindi i report che vedi non sono utili per le versioni precedenti a WPML 4.3.
Verifica se le chiamate di WPML sono protagoniste nei report di caricamento. In tal caso, segnalacelo nel supporto tecnico di WPML. Anche se vedi discussioni che sembrano simili, aprine una tua. Avremo bisogno di accedere al tuo sito, quindi è meglio lavorare su ogni sito separatamente.
Naturalmente, saremo molto felici di ricevere i tuoi aggiornamenti generali sulle prestazioni (è altrettanto utile segnalare i miglioramenti 🙂). Lascia i tuoi commenti qui e ti risponderemo.

