Si te interesa los temas de optimización posiblemente en algún momento tengas que configurar la funcionalidad de Heartbeat de WordPress, ya que debido a su comportamiento repetitivo puede en algunos casos llegar a demandar recursos extra del servidor.
¿Qué es la API de Heartbeat?
La API de Heartbeat es una funcionalidad introducida en la versión 3.6 de WordPress, Heartbeat o traducido como “latido de corazón”, se ejecuta repetitivamente en un lapso de tiempo, similar a un latido, enviando peticiones y esperando una respuesta del servidor.
¿Para qué usa WordPress esta API?
WordPress la usa para tareas repetitivas de monitoreo, en donde se tiene que estar pendientes de cambios en el servidor para informar al navegador del usuario.
A continuación se muestran algunas de estas tareas:
- Auto guardado de entradas y páginas u otro tipo de contenido.
- Notificaciones en la administración de WordPress
- Bloqueo de contenido que esta siendo trabajado por otro usuario
- Mantener datos estadísticos actualizados en paneles de control de algunos plugins.
¿Cómo funciona Heartbeat?
Técnicamente son llamadas al servidor usando Ajax, cada cierto periodo de tiempo, es decir en algún lugar de la API se hace uso de la función setinterval() de Javascript.
Puesto que son llamadas Ajax puedes monitorear el archivo admin-ajax.php para ver las peticiones que se hacen a este archivo.
En la siguiente imagen vemos la cantidad de llamadas que se han generado al hacer uso de esta API de Heartbeat.

Limitando la funcionalidad de Heartbeat
No recomiendo deshabilitar totalmente esta funcionalidad ya que es útil en muchos casos, sin embargo puedes extender el intervalo de las peticiones o incluso limitarlas a ciertas áreas de tu sitio web.
– Extender el período de ejecución de heartbeat
La primera opción es cambiar el tiempo de ejecución, puedes cambiar la cantidad a partir de 15 segundos, por ejemplo con el siguiente código:
add_filter( 'heartbeat_settings', 'dcms_modificar_heartbeat' );
function dcms_modificar_heartbeat( $settings ) {
$settings['interval'] = 60;
return $settings;
}
En el código anterior hemos usado un Hook de filtro heartbeat_settings, hemos cambiado el intervalo para todas las ejecuciones de Heartbeat a 60 segundos, sin embargo es posible también hacer este cambio agregando condicionales.
Cargando Heartbeat sólo en determinadas secciones del sitio
El Heartbeat inicia a través de la ejecución de javascript, por lo tanto bastaría con sólo desregistrar la carga del archivo Javascript Heartbeat
add_action("admin_enqueue_scripts", “dcms_carga_heartbeat");
function dcms_carga_heartbeat(){
$screen = get_current_screen();
if ( $screen->post_type != 'post' ) {
wp_deregister_script( 'heartbeat' );
}
}
En el código anterior sólo mantendremos el registro del archivo javascript de Heartbeat en las páginas que carguen las entradas, en cualquier otro caso desregistramos la carga del script.
Conclusión
Como has podido comprobar, existe la funcionalidad de Heartbeat en WordPress que esta continuamente realizando solicitudes al servidor, si en algún momento llegas a tener una sobrecarga, tal como hemos visto, puedes limitar el uso de esta funcionalidad a través de código.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.