Evidentemente, cualquier aplicación PHP como por ejemplo WordPress consume recursos de memoria RAM y procesamiento cada vez que se ejecutan los scripts que generan la página que es enviada al usuario, eso hace que por norma general, cuanto más tráfico tenga una web, mas aumente el consumo de recursos.

En este artículo quiero explicar más o menos como y porque WordPress consume recursos del servidor de hosting donde se encuentra instalado y cómo podemos “solucionar” esto de la forma más acertada posible dependiendo de la situación en la que nos encontremos.

 

Funcionamiento interno básico de WordPress

WordPress es una aplicación web desarrollada en PHP que guarda sus datos en una base de datos MySQL (normalmente) y por lo tanto funciona a nivel servidor como cualquier otra aplicación desarrollada en PHP.
Todo lo que voy a exponer a partir de aquí es partiendo de la base de que estamos entrando a un sitio web creado con WordPress pero sin ningún tipo de cache instalado y configurado.

Cuando un usuario accede a una página de un blog creado con WordPress se realizan los siguientes pasos algo resumidos y sin entrar a detalles técnicos:

  1. El usuario accede a la web a través del navegador y se envía al servidor web una petición para obtener la página requerida (Impacto leve/medio de CPU y memoria RAM).
  2. El servidor web usa PHP para procesar el script PHP que genera la página estática que necesita el cliente e insertando también algunos datos de la base de datos MySQL (Impacto alto de CPU y memoria RAM).
  3. La página generada es enviada al visitante mediante el protocolo HTTP o HTTPS (Impacto bajo de CPU y memoria RAM).

Como puedes ver, el consumo que se hace al generar las paginas HTML estáticas procesando el código PHP y usando el compilador interno de PHP, puede ser muy alto, de hecho, puede ser lo que cause un alto consumo de CPU en cualquier instalación de WordPress.

 

Pico de tráfico o consumo continuo

Debemos diferenciar dos cosas antes de comenzar a “diagnosticar” que elemento de nuestro sitio web es el que realiza un alto consumo de CPU, ya que dependiendo de las circunstancias debemos aplicar unas soluciones u otras:

  • Pico de trafico: El impacto es durante tiempo reducido y durante ese tiempo una avalancha de visitantes visita nuestro sitio:

  • Carga continua: La web siempre tiene bastantes visitantes online y se producen muchos hits que hacen  que el consumo de CPU sea continuo, en este caso se deben aplicar técnicas completamente diferentes para conseguir balancear el impacto sin afectar a la usabilidad.

 

Diagnosticar que plugin o elemento consume muchos recursos

El diagnóstico es solo la primera parte que se necesita hacer para solventar el problema, ya que si no se realiza un correcto diagnóstico del problema no podremos solucionarlo.

Lo primero que debemos tener claro, es que tenemos un problema y que el alto consumo de recursos no corresponde exactamente con el tráfico que tenemos, por ejemplo: si tenemos un alojamiento Sencillo con 128MB de RAM, es imposible o casi imposible que soporte 500 usuarios concurrentes y a la vez mantener una buena usabilidad de usuario, aunque optimices todo al máximo, la web no será estable.

Para diagnosticar el problema podemos recurrir a múltiples opciones entre las que se encuentran diferentes herramientas externas o plugins para WordPress. Estas son las herramientas que utilizo yo para diagnosticar este tipo de problemas de consumo de recursos de CPU en WordPress:

  • PingDom Tools: Además de comprobar la velocidad de carga de cualquier sitio web, también permite comprobar que elementos de la página web tardan más en descargarse desde el servidor y de esta forma saber que elemento es el que ralentiza toda la carga. Por ejemplo, en la siguiente imagen vemos como el javascript de Piwik ralentiza la carga de la web:
  • GTMetrix: Al igual que la anterior aplicación (PingDom Tools) nos permite saber que elementos tardan más en descargarse desde el servidor. Al igual que Pingdom Tools, GTMetrix carga los elementos Javascript, por lo que tendremos una visión más clara, GTMetrix muestra más información técnica que Pingdom Tools.
  • Deshabilitar plugins uno por uno: La mayoría de los problemas que puedes encontratarte en un sitio WordPress es por culpa de los plugins, por esa razón una de las primeras cosas que debes hacer para detectar cual es el problema es desactivar los plugins uno por uno añadiéndole una letra a las carpetas de los plugins desde un cliente FTP 
  • Comprobar los Widgets: Los widgets pueden ralentizar la carga en algunos casos, sobretodo sin incluimos código PHP en los widgets de texto. Con plugins como Widget Cache podemos conseguir cachear los plugins en disco.

Existen más formas de diagnosticar que nuestro WordPress tiene un problema que dificulta la carga del sitio web, pero en este artículo me sería imposible documentarlos todos, ya que algún método requiere conocimientos avanzados.
 

 Test de carga de WordPress

Existen varias herramientas para probar la velocidad de carga de WordPress e incluso comprobar como maneja el servidor situaciones críticas donde la carga de usuarios puede llegar a causar problemas de estabilidad y caídas del servicio.

Para probar la velocidad de carga podemos utilizar:

Para probar la estabilidad podemos usar:

 

¿Encontró su respuesta?