Cómo administrar la API Heartbeat de WordPress

Publicado: 2023-01-31

La API Heartbeat de WordPress existe desde hace casi una década. Proporcionó una comunicación fluida en tiempo real entre el panel de control de WordPress y el servidor host. Integrada en el núcleo de WordPress, la API Heartbeat ofrece una potente funcionalidad que puede mejorar significativamente la experiencia de administración del sitio web.

Este poder, sin embargo, tiene un precio. Es la cantidad de recursos del servidor necesarios para que la comunicación funcione sin problemas. Ejecutar sitios web que consumen muchos recursos o hacer que su proveedor de alojamiento imponga límites estrictos en la memoria y el tiempo de CPU puede provocar una degradación notable del rendimiento en la que Heartbeat API puede desempeñar un papel.

En esta guía, descubriremos el potencial de la API Heartbeat de WordPress y su papel en el ecosistema de WordPress. Aprenderá cómo funciona Heartbeat API. También aprenderá por qué es posible que deba considerar limitar su actividad en su sitio de WordPress. Esto lo ayudará a lograr un mejor rendimiento sin tener que actualizar su plan de alojamiento.

¿Qué es la API Heartbeat de WordPress?

La API de WordPress Heartbeat es una interfaz integrada en el núcleo de WordPress que permite la comunicación en tiempo real entre el servidor y el panel de control de WordPress. La API Heartbeat se introdujo por primera vez en 2013 con el lanzamiento de WordPress 3.6. Proporcionó importantes mejoras en la gestión de contenido y otras áreas clave de la administración del sitio web.

API de latidos del corazón de WordPress

¿Por qué es tan importante la API Heartbeat?

El tablero de WordPress es en gran medida una aplicación del lado del cliente. Esto significa que la mayor parte de la acción tiene lugar en el navegador del usuario. Como aplicación frontal, el área de administración de WordPress no tiene acceso directo a la base de datos de WordPress, donde se almacena el contenido del sitio web y otra información clave.

Para funcionar correctamente, el panel de control de WordPress debe poder comunicarse con el servidor para enviar y recibir datos. Las interfaces de programación de aplicaciones (API), como WordPress Heartbeat API, permiten recibir actualizaciones en tiempo real sin tener que volver a cargar toda la página para mostrar información nueva.

Para proporcionar una experiencia de usuario perfecta, el panel de control de WordPress envía solicitudes al servidor detrás de escena con la frecuencia suficiente para eliminar cualquier retraso en la actualización para los usuarios de WordPress que están conectados y trabajando en el sitio web. Heartbeat API enviará solicitudes al servidor y llamadas API cada 15 a 120 segundos.

Tres funciones clave Potencias de la API de WordPress Heartbeat

La API de WordPress Heartbeat impulsa tres características clave que hacen que la administración del sitio web sea más fácil y conveniente. Estas características son guardados automáticos, bloqueo de contenido y notificaciones del tablero en tiempo real. Son especialmente importantes para la comunidad o los sitios web editados en colaboración que tienen varios usuarios conectados y activos al mismo tiempo.

1. Guardados automáticos y revisiones

Los guardados automáticos y las revisiones son una de las características clave proporcionadas por WordPress Heartbeat API. Cada vez que un usuario está trabajando en el editor de bloques, WordPress realiza guardados automáticos de contenido cada 60 segundos. Esto asegura que no se dejen cambios sin guardar. Al enviar solicitudes al servidor cada minuto, WordPress Heartbeat API guarda una copia funcional de una publicación o página en su base de datos que se almacenará allí hasta que se ejecute un nuevo autoguardado.

Los guardados automáticos de WordPress con tecnología Heartbeat API son extremadamente útiles. Pueden evitar la pérdida de datos en caso de un bloqueo del navegador o problemas de conexión. Los guardados automáticos no reemplazan ninguna revisión creada por el usuario y no se acumulan en la base de datos.

2. Bloqueo de contenido

El bloqueo de contenido es otra característica que la API Heartbeat de WordPress permite brindar una mejor experiencia de edición para los propietarios de sitios web de WordPress. Si se está editando una publicación o una página, WordPress la bloqueará para evitar que otros usuarios realicen cambios en ella. WordPress Heartbeat API enviará solicitudes al servidor cada 15 segundos. Mostrará una notificación si otro usuario abre el contenido bloqueado para editarlo.

3. Panel de notificaciones en tiempo real

La API de WordPress Heartbeat impulsa las notificaciones del tablero en tiempo real, incluidas las enviadas por los complementos. La confiabilidad de la comunicación cliente-servidor que brinda Heartbeat API ha llevado a miles de desarrolladores de complementos de WordPress a integrarla en sus aplicaciones.

El intervalo predeterminado para las llamadas a la API de WordPress Heartbeat en el área de administración del sitio web es de 15 segundos. Los desarrolladores de complementos que deseen utilizar la funcionalidad API pueden configurar intervalos personalizados para intercambiar datos entre la aplicación cliente y el servidor.

¿Cómo funciona la API Heartbeat de WordPress?

WordPress Heartbeat API utiliza AJAX (JavaScript asíncrono y XML) para comunicarse con el servidor desde el panel de administración. La interfaz de programación de aplicaciones recopila datos y los envía a través de lo que se conoce como un evento jQuery. Un controlador admin-ajax recibe los datos y los procesa en el lado del servidor, luego prepara y devuelve una respuesta en formato JSON.

Cuando se carga el panel de WordPress, el código del lado del cliente establece un intervalo, también conocido como tic, para ejecutarse cada 15 a 120 segundos, según la tarea. El código API Heartbeat tiene la tarea de recopilar datos en el lado del cliente y comunicarlos al servidor para recibir actualizaciones.

La cantidad total de llamadas a la API Heartbeat depende de la cantidad de usuarios activos que trabajan en el sitio web al mismo tiempo. Esto es lo mismo que el número de instancias del tablero de WordPress cargadas. Tener el área de administración de WordPress abierta en varias ventanas del navegador crea la misma cantidad de llamadas a la API de Heartbeat como si varios usuarios hubieran iniciado sesión en el backend del sitio web y estuvieran realizando tareas al mismo tiempo.

¿Por qué limitar las llamadas a la API de Heartbeat de WordPress?

Limitar las llamadas a la API de WordPress Heartbeat puede ayudar a acelerar los sitios de WordPress que tienen un grupo muy limitado de recursos de servidor asignados, especialmente cuando se trata de tiempo de CPU. Aunque no es probable que la API Heartbeat sea el problema clave detrás del bajo rendimiento del sitio web, definitivamente es algo a tener en cuenta.

Cada vez que Heartbeat API se comunica con el servidor, se realiza una solicitud POST HTTP al archivo admin-ajax.php en wp-admin. Dado que las llamadas a la API Heartbeat se envían al servidor cada 15-120 segundos, y el número aumenta si hay más de un usuario administrador activo, la API puede sobrecargar el servidor, lo que genera un uso elevado de la CPU y la memoria del sistema.

Algunos propietarios de sitios web de WordPress pueden incluso confundir la actividad de la API Heartbeat con un ataque DDOS en curso. Las solicitudes de API de WordPress Heartbeat no se pueden almacenar en caché, por lo que cada llamada utilizará una cierta cantidad de recursos del servidor. Si el servidor está utilizando activamente sus recursos para manejar las llamadas a la API, sus clientes pueden experimentar retrasos en la representación del contenido cuando navegan por su sitio web.

Tres cosas a considerar antes de deshabilitar Heartbeat API

Deshabilitar la API Heartbeat por completo rara vez es una buena idea. El tablero de WordPress perderá su capacidad de comunicarse con el servidor en tiempo real en su mayor parte. Con la API Heartbeat deshabilitada, ya no podrá recibir notificaciones. Además, no podrá aprovechar el bloqueo de contenido, los guardados automáticos y las revisiones.

Las tres cosas clave a considerar antes de deshabilitar la API Heartbeat o limitar su actividad son:

  • Alojamiento. Revise cuánto tiempo de CPU y memoria del sistema se asignan a su sitio web. ¿Existe un límite en la cantidad de procesos que puede crear su sitio web?
  • Tiempo dedicado a la administración del sitio web. ¿Cuánto tiempo dedica a la administración y publicación de contenido? ¿Cuántos usuarios activos suelen trabajar en el panel de control de WordPress y en las interfaces de back-end al mismo tiempo?
  • Tráfico diario recibido. ¿Cuántos visitantes diarios recibe su sitio web de WordPress? ¿Tiene alguna solución de almacenamiento en caché para aliviar la carga en el servidor?

Según el tipo de sitio web y su configuración de alojamiento actual, limitar la cantidad de llamadas a la API de WordPress Heartbeat tendrá un impacto diferente en el rendimiento general. Si está ejecutando un sitio de WordPress que consume muchos recursos con varios usuarios que realizan un mantenimiento regular y publican contenido, reducir la cantidad de llamadas a la API de Heartbeat puede ser muy beneficioso. También puede ayudarlo a evitar aumentar sus costos de hospedaje en un intento por acomodar cantidades crecientes de tráfico.

Cómo administrar la API Heartbeat de WordPress con un complemento

La forma más fácil de administrar las solicitudes de API de Heartbeat de WordPress es mediante el uso de un complemento de WordPress diseñado para esto. Hay varias soluciones diferentes que puede aprovechar. Heartbeat Control, desarrollado por WP Rocket, es uno de los mejores y más populares.

Control de latidos del corazón

Instale y active el complemento Heartbeat Control desde el panel de control de WordPress. Vaya a Configuración > Control de latidos para abrir la configuración del complemento. Heartbeat Control le permite administrar la actividad de Heartbeat API en la interfaz del sitio web, el panel de control de WordPress y en el editor de bloques usando las siguientes opciones:

  • Permitir latido. Si esta opción está habilitada, el complemento no limitará las llamadas a la API Heartbeat de ninguna manera.
  • Desactivar latido del corazón. Deshabilitar Heartbeat bloqueará todas las llamadas a la API en las áreas elegidas de su sitio web de WordPress.
  • Modificar latido del corazón. Puede establecer un intervalo personalizado para las llamadas a la API de WordPress Heartbeat, que oscila entre 15 y 300 segundos.
Control de latidos del corazón

La mayoría de las veces, configurar un intervalo mayor para las llamadas a la API de Heartbeat de WordPress es el mejor curso de acción. Por ejemplo, limitar la cantidad de llamadas a la API a una cada cinco minutos en las tres áreas de su sitio web tendrá el mismo efecto en el rendimiento general que deshabilitar la API Heartbeat por completo.

Tenga en cuenta que limitar la actividad de la API Heartbeat en el editor de bloques puede requerir que guarde las revisiones con más frecuencia para evitar perder cualquier cambio en el contenido que está editando. Si no confía en los guardados automáticos y no necesita el bloqueo de contenido, puede deshabilitar la API Heartbeat de WordPress en Gutenberg por completo.

Cómo restringir las llamadas a la API Heartbeat de WordPress sin un complemento

Puede restringir las llamadas a la API de WordPress Heartbeat sin un complemento mediante el uso de ganchos de WordPress. Agregar algunas líneas de código al archivo functions.php del tema activo de su sitio web puede ayudarlo a deshabilitar la API Heartbeat o especificar un intervalo personalizado para las llamadas a la API.

WordPress viene con el Editor de temas incorporado que le permite modificar functions.php desde el panel de administración. Sin embargo, la mayoría de los complementos de seguridad de WordPress, como iThemes Security Pro, deshabilitan esta funcionalidad para proteger su sitio web en caso de que se vea comprometido.

Puede editar el archivo utilizando la interfaz del administrador de archivos proporcionada por su panel de control de alojamiento o conectándose a los archivos de su sitio web a través de FTP o SSH. Si Kadence WP es su tema de bloque de WordPress elegido, puede encontrar el archivo functions.php en la carpeta Kadence dentro de su directorio de contenido de WordPress.

Tenga en cuenta que cualquier código agregado al archivo functions.php probablemente será sobrescrito por la próxima actualización del tema. Por lo tanto, puede ser mejor administrar la API de WordPress Heartbeat usando un complemento. Si usa un tema secundario, puede cambiar su archivo functions.php sin correr el riesgo de que se sobrescriba cuando se actualice el tema principal.

No olvide guardar primero una copia de seguridad de su sitio de WordPress

Guardar copias de seguridad es una parte importante de la administración del sitio web. Esto le permitirá recuperarse de cualquier error y restaurar rápidamente su sitio web en caso de emergencia. Asegúrese de hacer una copia de seguridad de su sitio web antes de editar cualquier archivo principal o de tema de WordPress.

El uso de un complemento de copia de seguridad de WordPress lo ayuda a crear una estrategia de copia de seguridad sólida. Tendrás una copia funcional de tu sitio web siempre que la necesites. Tenga las copias de seguridad de su sitio web almacenadas en una ubicación remota y aproveche los programas de copia de seguridad personalizados y las restauraciones con un solo clic con BackupBuddy.

Deshabilitar la API Heartbeat

Agregar la acción a continuación le permite detener la API Heartbeat, deshabilitando efectivamente todas las llamadas a la API. Para lograrlo, agregue el fragmento de código a continuación al final de functions.php.

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

Puede deshabilitar una función específica en la API de WordPress Heartbeat de la misma manera.

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

Configurar un intervalo personalizado para las llamadas a la API Heartbeat

Para limitar las llamadas a la API de WordPress Heartbeat, puede especificar un filtro que configurará un intervalo personalizado para las solicitudes de la API. El siguiente fragmento de código limita las llamadas a la API Heartbeat a una solicitud por minuto.

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

Configure un intervalo personalizado para los guardados automáticos de WordPress

WordPress le permite configurar un intervalo personalizado para guardados automáticos al redefinir la constante AUTOSAVE_INTERVAL. Al igual que otras constantes, puede asignarle un nuevo valor agregando la siguiente línea a su archivo de configuración principal de WordPress:

define('AUTOSAVE_INTERVAL', 300);

Puede asignar al intervalo un valor mayor, como 3600, que es una hora, para deshabilitar los guardados automáticos de WordPress por completo. Las constantes de WordPress configuradas en wp-config.php no se modifican durante ninguna actualización de WordPress. No tendrá que redefinirlos más adelante.

Terminando

La API Heartbeat de WordPress es una de las características clave integradas en el núcleo de WordPress que permite la comunicación cliente-servidor en tiempo real mediante llamadas AJAX. La interfaz de programación de aplicaciones permite que WordPress intercambie datos entre el servidor y el tablero de WordPress para brindar una mejor experiencia de administración.

La API Heartbeat envía solicitudes al servidor varias veces por minuto. Esto puede resultar en una mayor carga en el servidor y un rendimiento degradado. Puede limitar las llamadas a la API de Heartbeat mediante el uso de un complemento, agregando ganchos de WordPress o definiendo constantes de WordPress.

El rendimiento sólido del sitio web es vital, pero también lo es la seguridad. iThemes ayudará a proteger todas las áreas de su sitio web de WordPress, para que su negocio permanezca en línea pase lo que pase. Descubra cómo puede proteger su presencia en línea, incluida la autenticación multifactor, el control de cambios de archivos y el análisis de vulnerabilidades, con iThemes Security Pro.