En este post vamos a hablar sobre la Heartbeat API, para que sirve y cómo desactivarla o limitarla con el plugin Heartbeat Control para ahorrar recursos del servidor e incluso mejorar aspectos de la velocidad web como el error del archivo admin-ajax.php.
¿Qué es la Heartbeat API?
Heartbeat API es una funcionalidad de WordPress que permite recopilar información sobre la administración de WordPress y enviarla desde el navegador en «tiempo real» al servidor.
Permite utilizar ciertas funcionalidades que mejoran el uso de la administración de WordPress.
Por ejemplo, permite el autoguardado de un post en el navegador, una funcionalidad muy útil para los escritores.
También permite mostrar avisos a los autores si un post está siendo editada en ese instante por otro autor.
Los plugins también pueden utilizar esta API para lanzar y recibir datos o avisos de una herramienta externa dentro del panel de WordPress.
Lo que significa que esta API es realmente útil si tenemos múltiples usuarios, editores y administradores del sistema.
¿Qué hace la Heartbeat API?
La Heartbeat API lanza información en cortos periodos de tiempo, como si se tratara de un latido del corazón que envía la sangre (información) por el sistema.
El periodo de tiempo de latido de información es un poco diferente dependiendo de qué zona esté activa.
Suele ser de 15 segundos en la edición de texto cuando trabajamos en una página o entrada y de 1 minuto en la zona de administración.
Cuando se ejecuta el latido, se recopila información haciendo una llamada a la Heartbeat API que genera muchas peticiones de información y que son administradas por el archivo admin-ajax.php
En definitiva, la Heartbeat API realiza un sondeo de información de WordPress, en cortos periodos de tiempo, mediante el archivo admin-ajax.php
Problemas de la Heartbeat API
La Heartbeat API es una funcionalidad fundamental, sobre todo para la administración y gestión de los editores.
Pero debido a la cantidad de peticiones de información que realiza puede generar problemas de velocidad de carga de nuestra web debido a un consumo excesivo de recursos del servidor.
También, se puede detectar una ralentización de la zona de administración, que te puedo prometer que es muy frustrante trabajar si se produce este problema.
En concreto es muy común encontrar el Error del archivo admin-ajax.php que podemos ver en Gtmetrix.
Para mejorar la optimización y la carga del archivo admin-ajax.php primero hay que tener en cuenta:
- Que los usuarios consumen recursos del sistema simplemente con estar logueados en la zona de administración
- Es recomendable cerrar la sesión de WordPress y no irse a casa dejando la sesión abierta.
- Los plugin pueden recargar con más peticiones el uso de la Heartbeat API si envían o reciben información dentro de la administración de WordPress.
- Es recomendable reducir el uso de plugins que muestran información externa como estadísticas de Google Analytics dentro de WordPress.
Si después de tomar medidas respecto de lo que acabamos de ver, seguimos teniendo problemas con el archivo admin-ajax.php o detectamos una ralentización de la zona de administración, podemos limitar el tiempo del latido o desactivarla API.
¿Desactivar o limitar Heartbeat API?
Puedes desactivar Heartbeat API de WordPress si eres un el único autor de tu página web, si no necesitas el autoguardado, ni el control de revisiones del navegador y ningún plugin o desarrollo utiliza esta funcionalidad.
Muchas veces no sabemos si estamos utilizando esta API con alguna herramienta o simplemente no queremos perder las funcionalidades, en esta situación la mejor opción y lo más recomendable es limitar el latido de Heartbeat API.
Heartbeat Control WordPress
Podemos limitar o desactivar la Heartbeat API con el plugin Heartbeat control
La configuración del plugin heartbeat control es muy sencilla pero tendrás que hacer pruebas ya que para cada instalación es diferente dependiendo de los recursos que utilice.
Desde Ajustes > Heartbeat Control podemos crear reglas para activar o desactivar esta función y también podemos ajustar la frecuencia del latido con la opción Modify Heartbeat.
También hay que configurar en qué zona se aplica la regla, si en la zona de administración, en la edición de los post o en el frontend.
Se pueden crear varias reglas para personalizar cada zona, pero si creas varias reglas de la misma zona tendrá la regla que esté por encima en el panel.
Como ya he dicho antes tendrás que hacer pruebas para averiguar qué configuración es la adecuada para ti.
Dependiendo de si tu zona de administración se ha vuelto lenta o si de tienes problemas con la carga del archivo admin-ajax.php etc…
Comienza por aumentar la frecuencia del latido en 30 segundos y sigue aumentándola y haciendo varias mediciones hasta dar con la configuración que te sirva.
Conclusión
La desactivación o limitación de la API es una medida de optimización, y mejora un poco la velocidad de carga de la web.
Pero al menos que no tengamos un problema grave en la carga del archivo admin-ajax.php o una zona de administración lenta no recomiendo implementar esta medida a lo loco.
Personalmente suelo preferir tener esta API activada, y no romper sus funcionalidades que son útiles para el escritor, solo por ganar centésimas de segundo en la carga de una web.
Para mejorar la velocidad de la web puede ver el tutorial Cómo mejorar la velocidad de WordPress
Utilizando constructores visuales de forma muy exagerada la zona de administración también se ralentiza, pero no he tenido la oportunidad de ver si mejora considerablemente limitando o desactivando la API Heartbeat, si tienes la oportunidad de hacer pruebas cuéntanos tus sensaciones en los comentarios.