Logo de Kodflux - Plataforma de Herramientas SEO y Auditoría Web

PHP / Intermedio / 4 min

Controlar la Heartbeat API de WordPress

Reduce la carga de admin-ajax.php ralentizando o desactivando la Heartbeat API, causa comun de picos de CPU.

La Heartbeat API de WordPress envía peticiones a admin-ajax.php cada 15 segundos mientras tienes el panel abierto. Es útil para el autoguardado y avisos de sesión, pero en hostings compartidos dispara el uso de CPU y llena los logs. Este snippet la desactiva en el frontend, la ralentiza en el panel y la mantiene solo donde de verdad importa: el editor de entradas.

Guía de Implementación Paso a Paso

  1. Abre el functions.php de tu tema hijo o un plugin de snippets.
  2. Pega el código de abajo al final.
  3. Guarda los cambios.
  4. Abre el panel y comprueba en la pestaña Network del navegador que las peticiones a admin-ajax.php con action=heartbeat ahora son más espaciadas o desaparecen fuera del editor.
PHP
// 1. Desactivar Heartbeat donde no hace falta (frontend y dashboard general)
add_action( 'init', function () {
    global $pagenow;
    // Solo lo permitimos en el editor de entradas y páginas
    if ( 'post.php' !== $pagenow && 'post-new.php' !== $pagenow ) {
        wp_deregister_script( 'heartbeat' );
    }
}, 1 );

// 2. Donde sí se usa, espaciar el intervalo de 15s a 60s (máximo permitido)
add_filter( 'heartbeat_settings', function ( $settings ) {
    $settings['interval'] = 60;
    return $settings;
} );

Si usas plugins que dependen del Heartbeat (algunos de e-commerce o edición colaborativa), no lo desactives del todo: quédate solo con el punto 2 para espaciar el intervalo. Bajar de 15 a 60 segundos ya recorta las peticiones en un 75 %.

Buscar en Kodflux