Blog

Cómo desactivar o limitar el Heartbeat de Wordpress

La llegada de la versión 3.6 del CMS Wordpress introdujo una nueva API que se conoce como Heartbeat API. Las funcionalidades que nos ofrece esta API, las cuales describiremos a continuación de forma breve, nos proporcionan interesantes ventajas; sin embargo, tiene un problema muy importante: el elevado consumo de recursos.

¿Qué es la Heartbeat API de Wordpress?

A grandes rasgos, lo que hace esta API es enviar pulsos cada 15 segundos (de ahí su nombre) para realizar comprobaciones y/o informar al usuario de ciertos aspectos. Por ejemplo, algunas funcionalidades que se consigue gracias a esta API:

  • Se encarga de realizar guardados automáticos y revisiones cuando estás editando o creando un post
  • Es la que nos informa de si otro administrador/editor está actuando en ese momento sobre un determinado post o página
  • Realiza actualizaciones en tiempo real de las estadísticas de algunos plugins e-commerce

Entonces, ¿cuál es el problema de la Heartbeat API?

Tal y como comentábamos al principio del artículo, el problema que tiene esta API es el elevado consumo de recursos sobre el servidor, lo cual hace que nuestra web esté menos optimizada y tenga una peor velocidad de carga.

Para realizar esta vigilancia es necesario que se realicen peticiones al fichero admin-ajax.php de Wordpress, las cuáles, en general, son peticiones lentas que elevan el uso de CPU del servidor.

Desde luego la idea de la API Heartbeat es interesante y útil, pero deberíamos valorar en qué medida podemos desactivarla o, al menos, limitarla para evitar este innecesario consumo de recursos.

Lógicamente, el poder desactivarla o limitarla va a depender de nuestro caso particular y cuán necesarias sean las bondades que nos ofrece la API para el correcto funcionamiento de nuestro website.

¿Cómo desactivar o limitar Heartbeat de Wordpress?

Quizás la forma más sencilla de desactivar y/o limitar el uso de la API Heartbeat es instalando el plugin Heartbeat Control. Con este plugin vamos a poder o bien desactivar por completo Heartbeat, o limitarlo al uso en determinadas localizaciones. Otra característica muy interesantes es que nos permite aumentar el intervalo en el que se realizan los pulsos (entre 15 y 60 segundos).

Si no queremos utilizar un plugin, siempre podemos utilizar estos pequeños snippets de código añadiéndolos al archivo functions.php de nuestro theme.

En caso de querer desactivar completamente la API Heartbeat, haremos uso de este código:

add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

Si simplemente queremos modificar el intervalo de los pulsos, nos decantaremos por el siguiente:

function limit_heartbeat( $settings ) {
$settings['interval'] = 60; //Cualquier valor entre 15 y 60 segundos
return $settings;
}
add_filter( 'heartbeat_settings', 'limit_heartbeat' );

Diseño Web A Coruña