Cómo mejorar el rendimiento de PHP

PHP es una excelente opción de programación y las aplicaciones de código abierto como WordPress y Joomla! (por centrarnos en los CMS más utilizados) han conseguido que se popularizara todavía más, ya que sus bases de datos corren sobre este lenguaje. Pero todo lo que nos ofrecen de bueno sitios basados en CMS o aplicaciones como foros o tiendas electrónicas lo pueden tener de conflictivo en algunas ocasiones. En este artículo, profundizamos en cómo solucionar los problemas de rendimiento de PHP, prestando especial atención a los aspectos vinculados a WordPress y Joomla!, y sin olvidar que ya hemos hablado de cinco recomendaciones muy sencillas para optimizar la base de datos de nuestra página web.

Configurar correctamente la caché

El mayor problema que tienen las páginas web basadas en CMS viene resuelto por lo que se conoce como “caché”. Resulta que todas las páginas de un sitio basado en WordPress o Joomla! incluyen el procesamiento de código en el lado del servidor (escrito con el lenguaje PHP) y el acceso a la base de datos (generalmente con el sistema gestor MySQL). Ésto significa que, con cada página que un visitante accede a nuestra web, se tiene que poner en marcha una serie de procesos para componer la respuesta que se enviará al cliente. Ejecutar PHP y MySQL no tiene un coste que se pueda considerar insignificante. Al contrario, significa un intenso trabajo para el servidor, sobre todo cuando tiene que atender muchas visitas concurrentes al sitio web.

Si el servidor tuviera que enviar páginas estáticas (código HTML que no necesita procesamiento por parte de PHP para poder generarse). sería mucho más rápido que generar las páginas desde PHP y MySQL. La solución pasa por usar el mencionado sistema de caché. La caché permite que, cada vez que se construye una página mediante PHP y MySQL, el CMS se guarde en el sistema la versión ya producida de esa página, en HTML estático. Los siguientes accesos al mismo contenido se enviarán con la versión cacheada de esa página y por tanto, no requerirá volverse a producir la página en el servidor, con el consiguiente ahorro de tiempo de procesamiento.

Sin embargo, en muchos casos la caché tampoco es la solución a todos los problemas, puesto que mucho del tráfico que nos va a llegar incluye parámetros en la URL, que burlan y desactivan el sistema de caché. Por ejemplo, si nos llega un visitante a través de una red social, un agregador de noticias RSS o sistemas similares, muchas veces la URL tendrá esta forma: http://www.example.com/articulos/cache-inservible.html?utm_content=buffer4755351&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Todos esos datos de la URL que vienen detrás del símbolo “?” hacen que WordPress entienda que es un contenido nuevo no cacheado. No obstante, a pesar de este problema, el uso de la caché siempre traerá un rendimiento muy significativo que ningún desarrollador debería dejar pasar.

Eliminar peticiones al servidor

Otro de los factores que agregan mucha velocidad al sitio es eliminar peticiones al servidor. Cuando se consulta una página el servidor no solo envía el código HTML, sino también el CSS, archivos Javascript, imágenes, etc. Cada uno de esos archivos es una solicitud al servidor y la velocidad de la página cae bruscamente cuando se solicitan muchos archivos por separado.

El uso de plantillas compradas o gratuitas para WordPress, así como infinidad de plugins adolecen de este serio problema y provocan muchas solicitudes innecesarias al servidor, o al menos muchas que se podrían evitar con un poco de optimización y haciendo las cosas por nosotros mismos.

Bajar las solicitudes al servidor es una tarea que implica “hilar fino” y tener un conocimiento importante, no solo de WordPress o Joomla! sino del desarrollo en general. Uso de tecnologías como SVG, Sprites CSS y optimizaciones como la contatenación de archivos CSS y Javascript —junto con la configuración correcta de Apache— son amigos fundamentales acerca de la disminución de solicitudes al servidor y que merecen la pena estudiar en artículos por separado. Algunos de ellos ya tratados en nuestro blog con anterioridad.

¡Ojo con los Bots!

Por último, queremos mencionar que no siempre nuestras páginas PHP son visitadas por personas reales. Muchas veces son “bots” o “robots” los que están recorriendo el sitio de manera muy intensiva y hacen que el alojamiento se resienta puntualmente y a ciertas horas. Algunos bots son deseables, como el de Google, que recorre las páginas para indexar su contenido. Otros pueden ser menos deseables e incluso dañinos y para los que se aconseja tener instalado alguno de los plugins de seguridad más populares de sistemas de WordPress, captchas avanzadas en el envío de formularios, etc.