
WordPress se parece a Firefox: ambos son productos emblemáticos de software libre que sin embargo devoran recursos. Resultado: nuestro blog se cae de forma intermitente por un exceso de consumo de los recursos (memoria RAM) contratados.
Con frecuencia el mensaje de error nos remite al archivo wp-includes/pomo/mo.php, pero de forma aparentemente arbitraria puede también afectar a otros muchos archivos: wp-blog-header.php, wp-settings.php, wp-content/db.php, index.php… así como a archivos php contenidos en directorios de plugins o temas.
O pueden aparecer otros errores parecidos. Por ejemplo: Allowed memory size of xxxxxxxx bytes exhausted (tried to allocate xx bytes), o Fatal error: Out of memory (allocated xxxxxxxxx) (tried to allocate xx bytes) in …
El problema tiene que ver con la gestión de memoria, el mensaje es clarísimo en todos los casos.
¿Solución? Básicamente hay dos: Contratar un plan superior (o más RAM) en nuestro hosting o reducir nuestro consumo.
WordPress tiende a ser bulímico, y muchos usuarios reforzamos esta tendencia al instalar de forma descontrolada todo tipo de plugins. La oferta es tan grande y tentadora…
Si optas por adelgazar tu WordPress (una decisión recomendable en cualquier caso) en vez de pagar más a tu hosting, puedes revisar:
1. Plugins. Desinstala todos los que no uses de forma habitual, y aún así prescinde de todos aquellos que no te resultan indispensables. No deberías tener más de 6 o 7 activos. La desinstalación de los plugins no basta, hay que borrar todos los archivos relacionados o dependientes: esto puedes hacerlo desde el administrador de archivos de tu sitio o desde el propio WordPress cuando los desinstalas. Por si no bastase, más del 90% de ellos dejan basura (efecto de una programación poco rigurosa) que hay que eliminar por otras vías. Las comentaré más adelante.
2. Base de datos. Debes acceder a ella vía PHPMyAdmin y optimizarla de forma periódica. Fíjate en los megas que suma cada tabla, algunas crecen de forma desorbitada: un buen ejemplo, el aportado en Pisito en Madrid hace un tiempo. Esto da, como en el caso, anterior, para todo un post (o varios) en el que incluiré datos más técnicos. También puede accederse a la base de datos mediante algún plugin (que instalaríamos solo de forma provisional para ejecutar esta limpieza)
3. Tamaño o peso de las imágenes. Es normal usar fotos de nuestra cámara digital o descargadas de la red, que ocupan 100, 200 o más kbs. Usa un editor cualquiera para reducir la resolución hasta conseguir archivos que no superen los 30 kbs.
4. Reduce el número de posts en portada (no más de 10) y usa un resumen o fragmento inicial (varias líneas) que enlace al post completo, para no cargar la portada.
5. Usa un cacheador, que aligera la carga del sitio. En esta ocasión se justifica la instalación de un plugin. Para mí, el mejor es W3 Total Cache aunque un primer contacto puede desanimar por la cantidad de variables que podemos configurar.
Con esto ya deberías ponerte en marcha.
Para comprobar la velocidad de carga de tu sitio (y otros muchos parámetros) cuentas con tests en línea como
WebPageTest (el más completo),
Pingdom Tools,
Load Impact,
Byte Check,
Stella o
Page Speed Online.
También puedes usar extensiones para navegador como Firebug para Firefox (que contiene los analizadores de rendimiento YSlow y PageSpeed)