Guías Prácticas

Cómo limitar el WordPress Heartbeat API para reducir el consumo de CPU

  • Lectura de 13 minutos
  • Equipo de Hostragons
Cómo limitar el WordPress Heartbeat API para reducir el consumo de CPU

Limitar el WordPress Heartbeat API consiste en reducir la frecuencia de las solicitudes al archivo admin-ajax.php que se ejecutan en segundo plano en el panel de administración de WordPress, con el fin de disminuir el consumo de CPU. Esto es especialmente importante en alojamientos compartidos, tiendas WooCommerce con alta carga y blogs con múltiples autores, donde el Heartbeat API puede enviar peticiones al servidor cada 15-60 segundos; lo que provoca uso innecesario de CPU, ralentización del panel y alertas por límite de recursos. La solución ideal no es desactivar el API por completo, sino extender los intervalos a 60-120 segundos según la página, dejarlo activo solo donde sea necesario y medir los resultados con el panel de hosting.

En esta guía explicaremos qué es el Heartbeat API, cuándo puede causar problemas, qué configuraciones son seguras y cómo reducir el consumo de CPU en tu sitio WordPress de forma práctica y paso a paso. El objetivo es limitar el tráfico en segundo plano sin afectar funcionalidades útiles como el guardado automático o el control de sesión. Si experimentas errores frecuentes como 508 Resource Limit, 503 Service Unavailable o un panel de administración lento, estos ajustes deberían ser uno de tus primeros puntos de optimización.

¿Qué es el WordPress Heartbeat API?

El WordPress Heartbeat API es un mecanismo que mantiene una comunicación periódica entre el navegador y el servidor. Esta comunicación ocurre habitualmente a través del archivo /wp-admin/admin-ajax.php. Gracias a este sistema, WordPress puede guardar borradores automáticamente en el editor, notificar si otro usuario está editando el mismo contenido, controlar la duración de la sesión y activar notificaciones en tiempo real de ciertos plugins.

Un ejemplo sencillo: cuando un editor trabaja en una entrada, WordPress envía pequeñas peticiones al servidor para asegurar que el borrador no se pierda. Estas solicitudes por sí solas no son pesadas, pero si hay 8 editores, 2 administradores y un equipo con el panel de WooCommerce abierto, la cantidad de peticiones se multiplica rápidamente. Diez sesiones abiertas en el panel, con intervalos de 30 segundos, generan cerca de 1.200 solicitudes Heartbeat por hora. Si los plugins añaden datos a estas peticiones, el consumo de CPU puede dispararse más de lo esperado.

Por ello, el Heartbeat API no es un problema en sí mismo; se vuelve un problema cuando funciona con intervalos muy cortos, en páginas que no lo necesitan o junto a plugins pesados. En un sitio bien configurado, el API permanece activo pero con la frecuencia controlada.

¿Por qué el Heartbeat API aumenta el consumo de CPU?

El consumo de CPU refleja la potencia de procesamiento que el servidor dedica a ejecutar procesos PHP. WordPress, al ser un sistema de gestión de contenido dinámico, ejecuta su núcleo, temas, plugins y consultas a la base de datos en cada solicitud PHP. Aunque las solicitudes de Heartbeat aparentan ser pequeñas, igualmente activan procesos PHP que consumen recursos.

Las causas más comunes del aumento de CPU son:

  • Intervalos demasiado frecuentes: En algunas pantallas, el Heartbeat puede activar peticiones cada 15 segundos, lo que equivaldría a 240 solicitudes por hora con un solo usuario.
  • Múltiples pestañas abiertas: Si un usuario tiene 4 pestañas abiertas del panel de administración, cada una genera su propio tráfico Heartbeat.
  • Plugins pesados: Plugins de seguridad, estadísticas, backup, constructores de páginas o WooCommerce pueden añadir carga extra a las solicitudes Heartbeat.
  • Hosting con recursos limitados: En planes con límites bajos de CPU, incluso estas pequeñas peticiones pueden saturar el servidor en horas pico.
  • Interferencia con tráfico de bots o usuarios reales: El tráfico frontal y el del panel usan los mismos recursos del servidor, generando competencia en recursos.

Si notas un acceso frecuente al admin-ajax.php en los logs de acceso, es recomendable revisar el tráfico Heartbeat. En la infraestructura de Hostragons puedes monitorear las fluctuaciones de CPU con gráficos y valorar un plan más adecuado para tu WordPress en Alojamiento WordPress.

¿Es recomendable desactivar completamente el Heartbeat API?

En general: no. Desactivarlo por completo puede reducir temporalmente el consumo de CPU, pero también puede romper funcionalidades importantes como el guardado automático, el bloqueo de contenido compartido, la renovación de sesiones y las notificaciones de plugins. En blogs con varios autores, desactivar el API puede provocar que dos personas editen simultáneamente el mismo contenido, generando pérdida de datos.

Lo más seguro es mantener el API activo solo en las áreas necesarias y aumentar el intervalo. Por ejemplo, 60 segundos en el editor de entradas, 120 segundos en el panel administrativo general y desactivarlo completamente en el frontend suele ser un buen equilibrio para la mayoría de sitios corporativos. En tiendas WooCommerce, especialmente en pantallas de pedidos y gestión de stock, es importante hacer pruebas más cuidadosas.

Tabla con ajustes recomendados para Heartbeat API

Tabla con ajustes recomendados para Heartbeat API
EscenarioAjuste recomendadoImpacto esperadoPrecaución
Blog de un solo autorAdmin 120 s, editor 60 s, frontend desactivadoReducción notable de solicitudes admin-ajaxTestear el intervalo de guardado automático
Sitio con múltiples autoresEditor 60 s, admin 90-120 sDisminución de CPU, contenido bloqueado correctamenteMonitorear número de pestañas abiertas por autores
Tienda WooCommerceAdmin 60-90 s, frontend con desactivación selectivaMenor carga en el panelProbar carrito, pago y plugins de stock
Sitio corporativoAdmin 120 s, frontend desactivadoMitigación segura y efectivaVerificar plugins de formularios y seguridad
Sitio con alertas de límite de recursosProbar 60 s primero, luego 120 sReducción de picos de CPUMedir con logs y gráficos de hosting

Esta tabla es un punto de partida. La mejor configuración depende del número de usuarios, plugins instalados, peso del tema y recursos de hosting. Cambios sin medición pueden ocultar el problema real sin solucionarlo.

¿Cómo limitar el WordPress Heartbeat API?

Existen tres métodos prácticos para limitar el Heartbeat API: usar un plugin, añadir código en el archivo functions.php del tema o aprovechar las opciones integradas en plugins de rendimiento. Si tienes pocos conocimientos técnicos, el método del plugin es el más seguro. Si eres desarrollador, puedes implementar un código personalizado para un control más preciso.

1. Método: Limitar con el plugin Heartbeat Control

La forma más sencilla es utilizar un plugin dedicado para gestionar el tráfico Heartbeat. Plugins confiables como Heartbeat Control de WP Rocket permiten establecer reglas específicas para diferentes áreas del sitio.

Pasos:

  • En el panel de WordPress, ve a Plugins > Añadir nuevo.
  • Busca “Heartbeat Control” y elige un plugin confiable y actualizado.
  • Instala y activa el plugin.
  • Accede a la configuración y ajusta la frecuencia en el dashboard o panel administrativo a 60 o 120 segundos.
  • En el editor de entradas, selecciona 60 segundos en lugar de desactivar completamente.
  • Desactiva o extiende al máximo el intervalo para el frontend.
  • Guarda los cambios y monitorea el gráfico de CPU durante 24 horas.

La ventaja de este método es que puedes revertirlo fácilmente si surge algún problema, simplemente desactivando el plugin. El inconveniente es añadir otro plugin más a tu sitio, por lo que si prefieres evitarlo, el método de código es preferible.

2. Método: Cambiar el intervalo del Heartbeat con código en functions.php

Si decides implementar código, evita modificar directamente el archivo functions.php del tema principal. Lo ideal es hacerlo en un child theme o en un plugin personalizado para que no se pierdan los cambios tras actualizaciones.

Ejemplo para aumentar el intervalo a 60 segundos:

add_filter('heartbeat_settings', 'limitar_heartbeat_intervalo'); function limitar_heartbeat_intervalo($settings) { $settings['interval'] = 60; return $settings; }

Este fragmento reduce la frecuencia predeterminada a 60 segundos, disminuyendo el número de solicitudes Heartbeat en un 75% teóricamente. Por ejemplo, cinco administradores generarían unas 300 solicitudes por hora en lugar de 1.200. El beneficio real depende de cuánta carga adicional añadan los plugins.

Si quieres un control más estricto, puedes desactivar Heartbeat en el frontend pero mantenerlo activo en el panel:

add_action('init', 'desactivar_heartbeat_frontend', 1); function desactivar_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }

Esta función deshabilita el script Heartbeat en la parte frontal. Es imprescindible probar bien esta configuración si usas membresías, notificaciones en vivo, carritos o editores frontend. En WooCommerce, si la funcionalidad de pago o carrito se ve afectada, es mejor usar un plugin con ajustes por página.

3. Método: Gestionar Heartbeat con WP Rocket u otros plugins de rendimiento

Algunos plugins de caché y rendimiento incluyen ajustes para controlar Heartbeat en su panel. Por ejemplo, WP Rocket tiene una pestaña específica donde puedes configurar intervalos distintos para el panel, editor y frontend. Esta opción evita la instalación de plugins adicionales si ya usas uno de estos complementos.

Evita activar dos controles de Heartbeat simultáneamente (por ejemplo, WP Rocket y Heartbeat Control) para prevenir conflictos y comportamientos inesperados. La regla de oro en optimización WordPress es usar una sola herramienta para cada tarea, medir resultados y luego aplicar nuevos ajustes.

Medir para encontrar el ajuste óptimo de CPU

Medir antes y después de cambiar el Heartbeat es fundamental para una optimización profesional. No basta con que el panel se sienta más rápido; debes analizar el gráfico de uso de CPU, número de procesos PHP, logs de acceso y errores.

Plan de pruebas recomendado:

  • Medición inicial: Registra gráficos de CPU y RAM durante 24 horas sin cambios.
  • Revisa logs: Controla la frecuencia de solicitudes a admin-ajax.php.
  • Aplica el primer ajuste: Amplía el intervalo a 60 segundos y desactiva en frontend.
  • Espera 24-48 horas: Observa los cambios bajo condiciones similares de tráfico.
  • Prueba 120 segundos si es necesario: En sitios corporativos intervalos más largos suelen ser seguros.
  • Verifica funciones clave: Controla que el guardado automático, carrito WooCommerce, pedidos y flujos de usuarios funcionen correctamente.

Ejemplo: en un sitio corporativo con alta carga, cambiar el intervalo de 15 a 60 segundos puede reducir picos de CPU un 20-40%. Pero si hay plugins que hacen escaneos intensivos (como backups) horarios, la optimización Heartbeat no será suficiente. En ese caso, conviene abordar también Optimización de velocidad de WordPress y Uso de recursos de hosting.

¿Siempre que admin-ajax.php consume CPU es por Heartbeat?

¿Siempre que admin-ajax.php consume CPU es por Heartbeat?

No. El archivo admin-ajax.php es usado por muchas funciones y plugins para diferentes procesos. Heartbeat API es solo una de ellas. Otros ejemplos incluyen formularios, filtros, búsquedas en vivo, escaneos de seguridad, actualizaciones de carrito de WooCommerce y funciones del tema.

Por eso, no basta con ver tráfico en admin-ajax.php para culpar al Heartbeat. Puedes usar las herramientas de desarrollo del navegador en la pestaña Network para verificar si la solicitud incluye action=heartbeat. Si el valor es distinto, el origen podría ser otro plugin o función.

También puedes analizar los logs de acceso en el servidor para identificar IPs, horas y páginas referidas de las solicitudes. Si el tráfico es generado por bots, soluciones como firewall, limitación de tasa o protección anti-bots pueden ser más efectivas. Mantener tu certificado SSL actualizado es clave para seguridad y rendimiento.

Errores comunes al limitar Heartbeat

Buscar soluciones rápidas puede causar problemas si no se tiene cuidado. Estos errores frecuentes pueden afectar la estabilidad del sitio:

  • Desactivar el API en todas partes: Deshabilita guardados automáticos y bloqueo de contenido.
  • Agregar código sin probar en producción: Un error de sintaxis puede provocar pantalla blanca.
  • No verificar el flujo de pago en WooCommerce: Puede romper procesos de carrito y pedidos.
  • Usar varios plugins de rendimiento simultáneamente: Genera conflictos y dificulta mediciones.
  • Atribuir todo a Heartbeat: Consultas pesadas, tráfico bot o tareas cron pueden ser la causa real.
  • No hacer respaldo antes de cambios: Dificulta revertir problemas en caso de fallo.

Antes de modificar archivos o base de datos, haz copias de seguridad completas. Si quieres gestionar dominios, hosting y sitio desde un solo panel, considera los servicios de Consulta de dominio y Alojamiento Web para mantener todo organizado.

Otras medidas para reducir el consumo de CPU más allá del Heartbeat

Limitar el Heartbeat es un paso importante, pero la optimización completa de CPU en WordPress abarca más áreas. Para un rendimiento sólido, también aplica estas acciones:

Uso de caché

El almacenamiento en caché de páginas reduce drásticamente la carga de PHP y consultas a la base de datos para los visitantes. Cuando el caché está activo, WordPress no necesita procesar cada petición desde cero, lo que disminuye significativamente el consumo de CPU.

Eliminar plugins innecesarios

Incluso los plugins inactivos pueden dejar datos residuales en la base de datos. Evalúa no solo la cantidad de plugins activos, sino su impacto en el rendimiento. Revisa periódicamente plugins de estadísticas, seguridad, constructores y backups.

Control de WP-Cron

El sistema cron de WordPress puede activarse con cada visita, lo que aumenta el consumo de CPU en sitios con mucho tráfico. Programar las tareas cron mediante el sistema del servidor es una forma más eficiente de reducir esta carga.

Optimización de base de datos

Revisiones de entradas, datos temporales, comentarios spam y registros antiguos pueden inflar la base de datos y ralentizar consultas. Limpiar regularmente estas tablas mejora los tiempos de respuesta, especialmente en tiendas WooCommerce con grandes volúmenes de pedidos y sesiones.

Versión de PHP y recursos de hosting

Las versiones más recientes de PHP suelen ofrecer mejor rendimiento. Usar temas y plugins compatibles con PHP 8.x puede reducir el consumo de CPU bajo la misma carga. Además, la optimización debe apoyarse en un hosting adecuado; si necesitas más potencia, evalúa servidor VPS o planes escalables especializados en WordPress.

Ruta segura para aplicar cambios en Heartbeat

Si vas a limitar el Heartbeat API en un sitio en producción, sigue este plan para asegurar resultados controlados:

  • Haz un respaldo completo del sitio y base de datos.
  • Registra el uso actual de CPU, RAM y tráfico a admin-ajax.php.
  • Confirma que Heartbeat genera un tráfico elevado.
  • Desactiva Heartbeat en el frontend o extiende su intervalo.
  • No bajes de 60 segundos en el editor de entradas.
  • Prueba intervalos de 90-120 segundos en el panel administrativo.
  • Verifica manualmente funciones de WooCommerce, membresías y formularios.
  • Compara el uso de recursos durante 24-48 horas.
  • Si el resultado no es suficiente, analiza también carga de plugins y tareas cron.

Este enfoque basado en datos permite optimizar sin comprometer la estabilidad ni la experiencia de usuario. El objetivo es no solo bajar el consumo de CPU, sino mantener un sitio estable y rápido.

Conclusión: No desactives Heartbeat, limita con inteligencia

Limitar el WordPress Heartbeat API adecuadamente es una optimización práctica que puede reducir el consumo de CPU, aliviar el panel de administración y hacer un uso más eficiente de los recursos de hosting. La mejor estrategia es no desactivarlo totalmente, sino restringirlo en el frontend, dejar un intervalo seguro en el editor y probar entre 60 y 120 segundos en el panel administrativo.

Si el problema de CPU persiste, considera que el Heartbeat es solo un punto de partida. Cache, carga de plugins, WP-Cron, base de datos y plan de hosting deben analizarse conjuntamente. En Hostragons puedes encontrar infraestructuras más estables para WordPress en Alojamiento WordPress, y planificar una mejora gradual adaptada a las necesidades de tu sitio.

Preguntas frecuentes

¿Se debe desactivar completamente el WordPress Heartbeat API?

No es recomendable para la mayoría de sitios. Funciones como guardado automático, bloqueo de contenido y control de sesión pueden romperse. La opción segura es desactivarlo en el frontend y aumentar el intervalo a 60-120 segundos en el panel y editor.

¿Cuánto puede reducir el Heartbeat API el consumo de CPU?

Depende de la estructura del sitio. Aumentar el intervalo de 15 a 60 segundos reduce teóricamente las solicitudes Heartbeat en un 75%. El ahorro real varía según carga de plugins, usuarios y recursos del hosting.

¿Siempre que hay alto consumo en admin-ajax.php es por Heartbeat?

No. Formularios, WooCommerce, búsquedas en vivo, plugins de seguridad y funciones del tema también usan admin-ajax.php. Para identificar si es Heartbeat, revisa en las herramientas de red del navegador si la acción es heartbeat.

¿El Heartbeat API es seguro para tiendas WooCommerce?

Sí, pero requiere pruebas cuidadosas. Debes revisar que el carrito, pago, gestión de pedidos, stock y páginas de usuario funcionen correctamente. En general, es mejor ampliar el intervalo que desactivarlo totalmente.

¿Cuánto tiempo se recomienda probar tras cambiar Heartbeat?

Al menos 24-48 horas para evaluar bien. Durante ese tiempo monitorea gráficos de CPU, procesos PHP, solicitudes admin-ajax.php y funcionalidades críticas. Si el tráfico varía entre días laborables y fines de semana, considera períodos de prueba más largos.

Comparte este artículo:

Equipo de Hostragons

Guías actualizadas de nuestro equipo de expertos sobre alojamiento web, servidores y nombres de dominio. Juntos encontraremos la solución ideal para tu proyecto.

Contáctenos