Comment gérer l'API WordPress Heartbeat

Publié: 2023-01-31

L'API WordPress Heartbeat existe depuis près d'une décennie. Il a fourni une communication transparente en temps réel entre le tableau de bord WordPress et le serveur hôte. Intégrée au cœur de WordPress, l'API Heartbeat offre des fonctionnalités puissantes qui peuvent considérablement améliorer l'expérience d'administration du site Web.

Ce pouvoir a cependant un prix. C'est le nombre de ressources serveur nécessaires pour assurer le bon fonctionnement de la communication. L'exécution de sites Web gourmands en ressources ou le fait que votre fournisseur d'hébergement impose des limites strictes sur la mémoire et le temps CPU peut entraîner une dégradation notable des performances où l'API Heartbeat peut jouer un rôle.

Dans ce guide, nous allons découvrir le potentiel de l'API WordPress Heartbeat et son rôle dans l'écosystème WordPress. Vous apprendrez comment fonctionne l'API Heartbeat. Vous apprendrez également pourquoi vous devrez peut-être envisager de limiter son activité sur votre site WordPress. Cela vous aidera à obtenir de meilleures performances sans avoir à mettre à niveau votre plan d'hébergement.

Qu'est-ce que l'API WordPress Heartbeat ?

L'API WordPress Heartbeat est une interface intégrée au cœur de WordPress qui permet une communication en temps réel entre le serveur et le tableau de bord WordPress. L'API Heartbeat a été introduite pour la première fois en 2013 avec la sortie de WordPress 3.6. Il a apporté des améliorations majeures à la gestion du contenu et à d'autres domaines clés de l'administration du site Web.

API de rythme cardiaque WordPress

Pourquoi l'API Heartbeat est-elle si importante ?

Le tableau de bord WordPress est en grande partie une application côté client. Cela signifie que la majorité de l'action se déroule dans le navigateur de l'utilisateur. En tant qu'application frontale, la zone d'administration WordPress n'a pas d'accès direct à la base de données WordPress, où le contenu du site Web et d'autres informations clés sont stockés.

Pour fonctionner correctement, le tableau de bord WordPress doit pouvoir communiquer avec le serveur pour envoyer et recevoir des données. Les interfaces de programmation d'applications (API) telles que l'API WordPress Heartbeat permettent de recevoir des mises à jour en temps réel sans avoir à recharger toute la page pour afficher de nouvelles informations.

Pour offrir une expérience utilisateur transparente, le tableau de bord WordPress envoie des demandes au serveur dans les coulisses assez fréquemment pour éliminer tout retard de mise à jour pour les utilisateurs de WordPress qui sont connectés et travaillent sur le site Web. L'API Heartbeat enverra des requêtes au serveur et des appels d'API toutes les 15 à 120 secondes.

Trois fonctionnalités clés de l'API WordPress Heartbeat

L'API WordPress Heartbeat alimente trois fonctionnalités clés qui rendent l'administration du site Web plus facile et plus pratique. Ces fonctionnalités sont les sauvegardes automatiques, le verrouillage de contenu et les notifications de tableau de bord en temps réel. Ils sont particulièrement importants pour les sites Web communautaires ou édités en collaboration qui ont plusieurs utilisateurs connectés et actifs en même temps.

1. Sauvegardes automatiques et révisions

Les sauvegardes automatiques et les révisions sont l'une des principales fonctionnalités fournies par l'API WordPress Heartbeat. Chaque fois qu'un utilisateur travaille dans l'éditeur de blocs, WordPress effectue des sauvegardes automatiques du contenu toutes les 60 secondes. Cela garantit qu'aucune modification n'est laissée sans être enregistrée. En envoyant des requêtes au serveur toutes les minutes, l'API WordPress Heartbeat enregistre une copie de travail d'un article ou d'une page dans sa base de données qui y sera stockée jusqu'à ce qu'une nouvelle sauvegarde automatique s'exécute.

Les sauvegardes automatiques de WordPress alimentées par l'API Heartbeat sont extrêmement utiles. Ils peuvent empêcher la perte de données en cas de plantage du navigateur ou de problèmes de connexion. Les sauvegardes automatiques ne remplacent pas les révisions créées par l'utilisateur et ne s'accumulent pas dans la base de données.

2. Verrouillage du contenu

Le verrouillage de contenu est une autre fonctionnalité de l'API WordPress Heartbeat qui permet d'offrir une meilleure expérience d'édition aux propriétaires de sites Web WordPress. Si un article ou une page est en cours de modification, WordPress le verrouillera pour empêcher les autres utilisateurs d'y apporter des modifications. L'API WordPress Heartbeat enverra des requêtes au serveur toutes les 15 secondes. Il affichera une notification si un autre utilisateur ouvre le contenu verrouillé pour le modifier.

3. Notifications de tableau de bord en temps réel

L'API WordPress Heartbeat alimente les notifications de tableau de bord en temps réel, y compris celles envoyées par les plugins. La fiabilité de la communication client-serveur fournie par l'API Heartbeat a conduit des milliers de développeurs de plugins WordPress à l'intégrer dans leurs applications.

L'intervalle par défaut pour les appels de l'API WordPress Heartbeat dans la zone d'administration du site Web est de 15 secondes. Les développeurs de plugins souhaitant utiliser la fonctionnalité API peuvent configurer des intervalles personnalisés pour échanger des données entre l'application cliente et le serveur.

Comment fonctionne l'API WordPress Heartbeat ?

L'API WordPress Heartbeat utilise AJAX - JavaScript et XML asynchrones - pour communiquer avec le serveur à partir du tableau de bord d'administration. L'interface de programmation d'application rassemble des données et les envoie via ce qu'on appelle un événement jQuery. Un gestionnaire admin-ajax reçoit les données et les traite côté serveur, préparant et renvoyant ensuite une réponse au format JSON.

Lorsque le tableau de bord WordPress se charge, le code côté client définit un intervalle, également appelé tick, à exécuter toutes les 15 à 120 secondes, selon la tâche. Le code de l'API Heartbeat est chargé de collecter des données côté client et de les communiquer au serveur pour recevoir les mises à jour.

Le nombre total d'appels de l'API Heartbeat dépend du nombre d'utilisateurs actifs travaillant sur le site Web en même temps. C'est le même que le nombre d'instances de tableau de bord WordPress chargées. L'ouverture de la zone d'administration WordPress dans plusieurs fenêtres de navigateur crée le même nombre d'appels d'API Heartbeat que si plusieurs utilisateurs étaient connectés au backend du site Web et exécutaient des tâches en même temps.

Pourquoi limiter les appels d'API WordPress Heartbeat ?

Limiter les appels de l'API WordPress Heartbeat peut aider à accélérer les sites WordPress qui ont un pool très limité de ressources serveur allouées, en particulier en ce qui concerne le temps CPU. Bien que l'API Heartbeat ne soit probablement pas le principal problème derrière les mauvaises performances du site Web, c'est certainement quelque chose à prendre en considération.

Chaque fois que l'API Heartbeat communique avec le serveur, une requête HTTP POST est envoyée au fichier admin-ajax.php dans wp-admin. Comme les appels de l'API Heartbeat sont envoyés au serveur toutes les 15 à 120 secondes et que le nombre augmente s'il y a plus d'un utilisateur administrateur actif, l'API peut surcharger le serveur, ce qui entraîne une utilisation élevée du processeur et de la mémoire système.

Certains propriétaires de sites Web WordPress peuvent même confondre l'activité de l'API Heartbeat avec une attaque DDOS en cours. Les requêtes de l'API WordPress Heartbeat ne peuvent pas être mises en cache, de sorte que chaque appel utilisera une certaine quantité de ressources du serveur. Si le serveur utilise activement ses ressources pour gérer les appels d'API, vos clients peuvent subir des retards dans le rendu du contenu lorsqu'ils naviguent sur votre site Web.

Trois choses à considérer avant de désactiver l'API Heartbeat

Désactiver entièrement l'API Heartbeat est rarement une bonne idée. Le tableau de bord WordPress perdra sa capacité à communiquer avec le serveur en temps réel pour la plupart. Avec l'API Heartbeat désactivée, vous ne pourrez plus recevoir de notifications. De plus, vous ne pourrez pas profiter du verrouillage de contenu, des sauvegardes automatiques et des révisions.

Les trois éléments clés à prendre en compte avant de désactiver l'API Heartbeat ou de limiter son activité sont :

  • Hébergement. Examinez le temps CPU et la mémoire système alloués à votre site Web. Y a-t-il une limite au nombre de processus que votre site Web peut créer ?
  • Temps consacré à l'administration du site. Combien de temps consacrez-vous à l'administration et à la publication de contenu ? Combien d'utilisateurs actifs travaillent souvent dans le tableau de bord WordPress et les interfaces back-end en même temps ?
  • Trafic quotidien reçu. Combien de visiteurs quotidiens votre site Web WordPress reçoit-il ? Avez-vous mis en place des solutions de mise en cache pour alléger la charge sur le serveur ?

Selon le type de site Web et votre configuration d'hébergement actuelle, limiter le nombre d'appels à l'API WordPress Heartbeat aura un impact différent sur les performances globales. Si vous utilisez un site WordPress gourmand en ressources avec plusieurs utilisateurs effectuant une maintenance régulière et publiant du contenu, la réduction du nombre d'appels d'API Heartbeat peut être très bénéfique. Cela peut également vous aider à éviter d'augmenter vos coûts d'hébergement dans le but de gérer des quantités croissantes de trafic.

Comment gérer l'API WordPress Heartbeat avec un plugin

Le moyen le plus simple de gérer les requêtes de l'API WordPress Heartbeat consiste à utiliser un plugin WordPress conçu à cet effet. Il existe plusieurs solutions différentes dont vous pouvez profiter. Heartbeat Control, développé par WP Rocket, est l'un des meilleurs et des plus populaires.

Contrôle du rythme cardiaque

Installez et activez le plugin Heartbeat Control depuis le tableau de bord WordPress. Accédez à Paramètres> Heartbeat Control pour ouvrir la configuration du plugin. Heartbeat Control vous permet de gérer l'activité de l'API Heartbeat sur le frontend du site, le tableau de bord WordPress et dans l'éditeur de blocs à l'aide des options suivantes :

  • Autoriser les battements de cœur. Si cette option est activée, le plugin ne limitera en aucune façon les appels de l'API Heartbeat.
  • Désactivez le rythme cardiaque. La désactivation de Heartbeat bloquera tous les appels d'API dans les zones choisies de votre site Web WordPress.
  • Modifier le rythme cardiaque. Vous pouvez définir un intervalle personnalisé pour les appels de l'API WordPress Heartbeat, allant de 15 à 300 secondes.
Contrôle du rythme cardiaque

La plupart du temps, configurer un intervalle plus grand pour les appels de l'API WordPress Heartbeat est la meilleure solution. Par exemple, limiter le nombre d'appels d'API à un toutes les cinq minutes dans les trois zones de votre site Web aura le même effet sur les performances globales que de désactiver complètement l'API Heartbeat.

Veuillez noter que la limitation de l'activité de l'API Heartbeat dans l'éditeur de blocs peut vous obliger à enregistrer les révisions plus souvent pour éviter de perdre les modifications apportées au contenu que vous modifiez. Si vous ne comptez pas sur les sauvegardes automatiques et que vous n'avez pas besoin de verrouiller le contenu, vous pouvez désactiver complètement l'API WordPress Heartbeat dans Gutenberg.

Comment restreindre les appels d'API WordPress Heartbeat sans plugin

Vous pouvez restreindre les appels de l'API WordPress Heartbeat sans plugin en utilisant des crochets WordPress. L'ajout de quelques lignes de code au fichier functions.php du thème actif de votre site Web peut vous aider à désactiver l'API Heartbeat ou à spécifier un intervalle personnalisé pour les appels d'API.

WordPress est livré avec l'éditeur de thème intégré qui vous permet de modifier functions.php à partir du tableau de bord d'administration. Cependant, la plupart des plugins de sécurité WordPress, tels que iThemes Security Pro, désactivent cette fonctionnalité pour protéger votre site Web au cas où il serait compromis.

Vous pouvez modifier le fichier à l'aide de l'interface du gestionnaire de fichiers fourni par votre panneau de contrôle d'hébergement ou en vous connectant aux fichiers de votre site Web via FTP ou SSH. Si Kadence WP est votre thème de bloc WordPress de choix, vous pouvez trouver le fichier functions.php dans le dossier Kadence dans votre répertoire de contenu WordPress.

Veuillez noter que tout code ajouté au fichier functions.php sera très probablement écrasé par la prochaine mise à jour du thème. Par conséquent, il peut être préférable de gérer l'API WordPress Heartbeat à l'aide d'un plugin. Si vous utilisez un thème enfant, vous pouvez modifier son fichier functions.php sans risquer qu'il soit écrasé lors de la mise à jour du thème parent.

N'oubliez pas de sauvegarder d'abord une sauvegarde de votre site WordPress

L'enregistrement des sauvegardes est une partie importante de l'administration du site Web. Cela vous permettra de récupérer de toute erreur et de restaurer rapidement votre site Web en cas d'urgence. Assurez-vous de sauvegarder votre site Web avant de modifier les fichiers de base ou de thème WordPress.

L'utilisation d'un plugin de sauvegarde WordPress vous aide à créer une stratégie de sauvegarde solide. Vous aurez une copie de travail de votre site Web chaque fois que vous en aurez besoin. Stockez les sauvegardes de votre site Web dans un emplacement distant et tirez parti des calendriers de sauvegarde personnalisés et des restaurations en un clic avec BackupBuddy.

Désactiver l'API Heartbeat

L'ajout de l'action ci-dessous vous permet d'arrêter l'API Heartbeat, désactivant ainsi tous les appels d'API. Pour ce faire, ajoutez l'extrait de code ci-dessous au bas de functions.php.

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

Vous pouvez désactiver une fonctionnalité spécifique dans l'API WordPress Heartbeat de la même manière.

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

Configurer un intervalle personnalisé pour les appels d'API Heartbeat

Pour limiter les appels à l'API WordPress Heartbeat, vous pouvez spécifier un filtre qui configurera un intervalle personnalisé pour les requêtes API. L'extrait de code suivant limite les appels de l'API Heartbeat à une requête par minute.

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

Configurer un intervalle personnalisé pour les sauvegardes automatiques WordPress

WordPress vous permet de configurer un intervalle personnalisé pour les sauvegardes automatiques en redéfinissant la constante AUTOSAVE_INTERVAL. Comme pour les autres constantes, vous pouvez lui attribuer une nouvelle valeur en ajoutant la ligne suivante à votre fichier de configuration WordPress principal :

define('AUTOSAVE_INTERVAL', 300);

Vous pouvez attribuer à l'intervalle une valeur plus grande, telle que 3600, qui correspond à une heure, pour désactiver complètement les sauvegardes automatiques de WordPress. Les constantes WordPress configurées dans wp-config.php ne sont pas modifiées lors des mises à jour de WordPress. Vous n'aurez pas à les redéfinir plus tard.

Emballer

L'API Heartbeat de WordPress est l'une des fonctionnalités clés intégrées au cœur de WordPress qui permet une communication client-serveur en temps réel à l'aide d'appels AJAX. L'interface de programmation d'application permet à WordPress d'échanger des données entre le serveur et le tableau de bord WordPress pour offrir une meilleure expérience d'administration.

L'API Heartbeat envoie des requêtes au serveur plusieurs fois par minute. Cela peut entraîner une augmentation de la charge sur le serveur et une dégradation des performances. Vous pouvez limiter les appels d'API Heartbeat en utilisant un plugin, en ajoutant des crochets WordPress ou en définissant des constantes WordPress.

Des performances de site Web solides sont essentielles, mais la sécurité l'est tout autant. iThemes aidera à protéger toutes les zones de votre site Web WordPress, afin que votre entreprise reste en ligne quoi qu'il arrive. Découvrez comment vous pouvez sécuriser votre présence en ligne, y compris l'authentification multifacteur, la surveillance des modifications de fichiers et l'analyse des vulnérabilités, avec iThemes Security Pro.