Aunque es algo que se sospechaba, se ha comprobado recientemente que WordPress, si no lo usas en el idioma nativo, inglés de EEUU, es más lento, se ve perjudicado su rendimiento debido al sistema interno de traducción.

De hecho, en pruebas realizadas por el equipo de rendimiento, una instalación de WordPress traducida a cualquier idioma de los disponibles es hasta un 50% más lento que sin traducir, en el idioma por defecto.
Los sitios internacionalizados de WordPress actualmente descargan archivo .po y .mo que contienen las traducciones, y el sistema por defecto es lento, requiere consultas adicionales, y encima no se puede almacenar en caché.
Pruebas de rendimiento
El equipo de rendimiento ha realizado pruebas con distintos métodos de optimización de este problema…
Pruebas en la zona de administración
| Idioma | Escenario | Caché de objetos | Uso de memoria | Tiempo total de carga |
|---|---|---|---|---|
| en_US | Default | 15.42 MB | 139.83 ms | |
| de_DE | Default | 31.92 MB | 187.76 ms | |
| de_DE | Ginger MO (MO) | 20.07 MB | 164.94 ms | |
| de_DE | Ginger MO (PHP) | 17.09 MB | 139.66 ms | |
| de_DE | Ginger MO (JSON) | 20.06 MB | 160.87 ms | |
| de_DE | Native Gettext | 15.95 MB | 143.43 ms | |
| de_DE | DynaMo | 20.58 MB | 166.79 ms | |
| de_DE | Cache in APCu | 58.13 MB | 190.38 ms | |
| en_US | Default | ✅ | 15.66 MB | 112.69 ms |
| de_DE | Default | ✅ | 31.84 MB | 164.26 ms |
| de_DE | Ginger MO (MO) | ✅ | 19.99 MB | 140.70 ms |
| de_DE | Ginger MO (PHP) | ✅ | 17.01 MB | 118.52 ms |
| de_DE | Ginger MO (JSON) | ✅ | 19.98 MB | 138.49 ms |
| de_DE | Native Gettext | ✅ | 15.87 MB | 120.01 ms |
| de_DE | DynaMo | ✅ | 19.73 MB | 120.26 ms |
| de_DE | Cache in APCu | ✅ | 58.07 MB | 162.41 ms |
| de_DE | Cache in object cache | ✅ | 31.86 MB | 164.28 ms |
Pruebas con el tema clásico Twenty Twenty-One
| Idioma | Escenario | Caché de objetos | Uso de memoria | Tiempo total de carga |
|---|---|---|---|---|
| en_US | Default | 15.35 MB | 120.79 ms | |
| de_DE | Default | 28.79 MB | 172.10 ms | |
| de_DE | Ginger MO (MO) | 18.85 MB | 145.68 ms | |
| de_DE | Ginger MO (PHP) | 16.56 MB | 124.73 ms | |
| de_DE | Ginger MO (JSON) | 18.84 MB | 140.78 ms | |
| de_DE | Native Gettext | 15.58 MB | 128.26 ms | |
| de_DE | DynaMo | 19.24 MB | 146.09 ms | |
| de_DE | Cache in APCu | 50.13 MB | 167.28 ms | |
| en_US | Default | ✅ | 15.19 MB | 107.26 ms |
| de_DE | Default | ✅ | 28.59 MB | 154.30 ms |
| de_DE | Ginger MO (MO) | ✅ | 18.64 MB | 133.21 ms |
| de_DE | Ginger MO (PHP) | ✅ | 16.37 MB | 112.94 ms |
| de_DE | Ginger MO (JSON) | ✅ | 18.64 MB | 128.94 ms |
| de_DE | Native Gettext | ✅ | 15.38 MB | 115.11 ms |
| de_DE | DynaMo | ✅ | 18.10 MB | 120.72 ms |
| de_DE | Cache in APCu | ✅ | 49.99 MB | 151.82 ms |
| de_DE | Cache in object cache | ✅ | 28.65 MB | 156.36 ms |
Pruebas usando el tema de bloques Twenty Twenty-Three
| Idioma | Escenario | Caché de objetos | Uso de memoria | Tiempo total de carga |
|---|---|---|---|---|
| en_US | Default | 15.60 MB | 133.58 ms | |
| de_DE | Default | 29.14 MB | 181.95 ms | |
| de_DE | Ginger MO (MO) | 19.24 MB | 159.18 ms | |
| de_DE | Ginger MO (PHP) | 16.98 MB | 138.14 ms | |
| de_DE | Ginger MO (JSON) | 19.24 MB | 153.39 ms | |
| de_DE | Native Gettext | 15.99 MB | 142.12 ms | |
| de_DE | DynaMo | 19.62 MB | 157.93 ms | |
| de_DE | Cache in APCu | 50.37 MB | 181.51 ms | |
| en_US | Default | ✅ | 15.67 MB | 121.53 ms |
| de_DE | Default | ✅ | 29.01 MB | 167.67 ms |
| de_DE | Ginger MO (MO) | ✅ | 19.11 MB | 147.19 ms |
| de_DE | Ginger MO (PHP) | ✅ | 16.85 MB | 127.97 ms |
| de_DE | Ginger MO (JSON) | ✅ | 19.11 MB | 144.43 ms |
| de_DE | Native Gettext | ✅ | 15.86 MB | 129.19 ms |
| de_DE | DynaMo | ✅ | 18.57 MB | 133.46 ms |
| de_DE | Cache in APCu | ✅ | 50.30 MB | 170.19 ms |
| de_DE | Cache in object cache | ✅ | 29.07 MB | 173.19 ms |
Soluciones
La primera solución propuesta es realizar las traducciones mediante archivos PHP de traducción, de carga mucho más rápida, y con la posibilidad de realizar consultas dinámicas e incluso almacenamiento en caché.
Con este objetivo, aunque la propuesta es incorporar esta mejora en el núcleo de WordPress, mientras tanto se ha creado un plugin de pruebas, o concepto, llamado Performant Translations, que hace exactamente lo propuesto:
En las primeras pruebas realizadas frente al método anterior, el plugin ofrece mejoras de rendimiento apreciables frente a WordPress traducido, aunque aún no mejora a un WordPress sin traducir.

Otra solución es la propuesta por el plugin DynaMo, mediante archivos .mo dinámicos, que también mejora hasta un 20% los tiempos de carga.
¿Puedo usar estos plugins en mi sitio WordPress activo?
Los plugins, aunque su propósito son las pruebas, y que posteriormente se incorpore la mejor solución posible al núcleo de WordPress, puedes instalarlo sin riesgos en tu web WordPress. Si por lo que sea no obtienes resultados o ves algún fallo, puedes informar del problema, y desinstalarlo, pues la desinstalación es limpia, borra todo los archivos que instala, y deja tu WordPress como antes de instalar el plugin.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







Fernando ¡GRACIAS! como siempre por tu contenido.
Me queda la duda si una mejora podría ser poner en los sitios multilenguage la opción que se reconozca el idioma del navegador para que cargue el que corresponda, poner el WordPress por defecto en inglés y el idioma del perfil en español para poder gestionarlo.
En los sitios web que son en español, sería usar el plugin que recomiendas.
¿Que opinas?
De nuevo gracias
Bien visto, totalmente de acuerdo 😉
siempre y cuando el script de detección del idioma no ralentice más que tener WordPress en otro idioma
Excelente Aporte Fernando, lo he probado y va de maravilla, gracias, gracias, gracias!
¿Cuál de los 2 plugins probaste?
tambien me interesa saber