Guides en français pour créer un site Wordpress, Prestashop – Tutoriels LWS

Comment optimiser admin-ajax.php dans WordPress ?

réduire charge serveur admin-ajax.php

Les performances d’un site Web sont un sujet crucial pour tout propriétaire de site. Les problèmes de performance peuvent affecter l’expérience des utilisateurs et potentiellement réduire le classement sur les moteurs de recherche. En effet, Google utilise le temps de chargement des pages dans ses critères de classement.

Lorsqu’il s’agit de performances d’un site web, on parle souvent du temps de chargement des pages. Un scénario courant lorsqu’on a affaire à un problème de temps de chargement est qu’il pourrait être causé par un pic dans le fichier admin-ajax.php dans WordPress.

Objectif

Dans cet article, vous apprendrez à gérer les conflits de plugins causés par des pics dans le fichier admin-ajax.php et à réduire la demande de callbacks pour optimiser le temps de chargement de votre site WordPress.

Qu’est-ce que le fichier admin-ajax.php dans WordPress ?

En 2013, la version 3.6 de WordPress a été introduite avec l’API Heartbeat au cœur de l’application. L’API WordPress Heartbeat est construit comme un protocole de communication entre le navigateur et le serveur. Elle utilise admin-ajax.php pour envoyer une requête au serveur et déclencher des événements (ou callbacks) lors de la réception de données. Les principales fonctionnalités de l’API Heartbeat sont les suivantes :

Lorsque vous écrivez un article sur WordPress, que vous l’enregistrez en tant que brouillon et que vous continuez à travailler dessus, WordPress enregistre automatiquement tout ajout que vous faites.

Dans un site WordPress collaboratif, vous recevrez une pop-up lorsque vous essayez d’écrire/modifier un article sur lequel un autre utilisateur est en train de travailler. Vous recevrez également une fenêtre de notification lorsque votre session est expirée et qu’une nouvelle connexion est nécessaire pour continuer à travailler sur votre article.

Les problèmes que peut causer admin-ajax.php dans WordPress

Le débordement du fichier admin-ajax.php peut entraîner un problème de temps de chargement des pages, ce qui est un problème grave. La règle d’or d’Internet est que votre site doit se charger entièrement en 3 secondes ou moins. S’il prend plus de temps que cela, il y a de fortes chances que vous offriez aux visiteurs une mauvaise expérience et les fassiez fuir.

Une vitesse de page lente peut également avoir un impact négatif sur votre classement dans les moteurs de recherche. Vous devez savoir que Google utilise la vitesse de chargement comme l’un des indicateurs de son algorithme pour classer les sites. En outre, une vitesse de page lente signifie que le moteur de recherche peut explorer moins de pages en utilisant le budget d’exploration qui lui est alloué, ce qui affectera encore plus l’indexation de vos pages.

Pour certains, la seule fois où ils sont confrontés à cette API est lorsqu’ils utilisent des outils de test de vitesse, tels que GTmetrix, pour comprendre pourquoi admin-ajax.php ralentit les sites Web.

Comment identifier la cause d’une utilisation élevée de admin-ajax.php ?

Parfois, les données relatives aux Posts et aux réponses présentées dans les rapports de tests de vitesse ne sont pas aussi claires et simples. Ici, il n’est pas si facile de trouver la cause de l’utilisation élevée de admin-ajax.php. Dans ce cas, vous pouvez toujours le faire à l’ancienne.

Désactivez toutes les extensions de votre site, videz le cache de votre site (s’il y en a un) et refaites le test de vitesse. Si admin-ajax.php est toujours présent, il s’agit probablement du thème. Toutefois, si elle n’est pas trouvée, vous devez activer chaque extension une par une et exécuter le test de vitesse à chaque fois. Par processus d’élimination, déterminez la cause du problème.

Diagnostiquer les problèmes avec le serveur qui sera géré par admin-ajax.php

La deuxième cause de l’utilisation élevée de admin-ajax.php est que l’API WordPress Heartbeat génère de fréquents appels Ajax, ce qui entraîne une utilisation élevée du CPU sur le serveur. Ce problème est généralement dû au fait que de nombreux utilisateurs se connectent au tableau de bord d’administration de WordPress. Par conséquent, il n’apparaîtra pas dans les tests de vitesse.

L’API Heartbeat interroge le fichier admin-ajax.php toutes les 15 secondes par défaut pour sauvegarder automatiquement les articles et les pages. Si vous utilisez un serveur d’hébergement partagé, il n’y a pas beaucoup de ressources serveur dédiées à votre site. Si vous modifiez un article ou une page et que vous laissez l’onglet ouvert pendant un certain temps, vous risquez de recevoir un grand nombre de requêtes Ajax administratives.

Comment les plugins peuvent faire déborder le fichier admin-ajax.php ?

Les plugins tiers sont la cause du problème le plus courant lorsque les utilisateurs voient un pic sur admin-ajax.php. S’il est fait correctement, AJAX est définitivement une bonne chose, car les développeurs l’utilisent généralement pour ajouter des fonctionnalités à leurs plugins. Par exemple, les développeurs peuvent utiliser les requêtes AJAX et créer une wp_query personnalisée pour afficher un contenu dynamique sur une page en cache.

Mais parfois, lorsque de nombreux plugins utilisent ces requêtes, elles peuvent provoquer un débordement. Ainsi, cela peut créer un pic et ralentir l’ensemble du site web. Donc, si vous êtes un développeur, voici une ressource pour implémenter correctement AJAX dans les plugins.

En tant que propriétaire de site Web, vous devrez peut-être diagnostiquer en premier lieu les plugins avant de les désactiver. Ceci est important pour déterminer si un plugin particulier est à l’origine du problème de temps de chargement.

Diagnostiquer les plugins

Des plugins en conflit peuvent causer un problème de temps de chargement. La vieille méthode consiste à désactiver tous les plugins pour résoudre le problème, puis à les réactiver un par un en utilisant un processus d’élimination. Mais ce n’est certainement pas une bonne solution.

Il convient d’utiliser une méthode plus appropriée pour trouver la cause profonde du problème avec le scénario suivant.

Après avoir activé plusieurs plugins, votre site Web a besoin de plus de temps pour se charger complètement. Vous diagnostiquez alors le site à l’aide de GTmetrix. Il s’agit d’un puissant outil gratuit de test de vitesse qui permet de voir les données de réponse de chaque poste.

Premère méthode : Utiliser GTmetrix

Allez sur la page d’accueil de GTmetrix, indiquez l’URL de votre site, puis cliquez sur « Test your site ». L’analyse complète de votre site prend un certain temps.

Une fois l’analyse terminée, vous obtiendrez un rapport sur l’état de votre site Web, comme le score de performance et les détails des pages. Passez à l’onglet « Waterfall » pour inspecter les éléments du site Web de manière plus détaillée.

La fenêtre « Waterfall » présente tous les éléments de votre site Web. Alors que le reste des fichiers semble correct, vous remarquez que le POST admin-ajax.php prend plus de temps à se charger.

Cliquez sur POST admin-ajax.php, et vous verrez quatre onglets différents disponibles : Headers, Parameters, Post, et Response. Lorsque vous diagnostiquez ce type de problème, les onglets Post et Response sont les endroits que vous devez regarder.

Pour ce site, l’analyse affiche un indice dans l’onglet Post car cette requête a quelque chose à voir avec le script « count_hit ».

Cet indice amène à soupçonner un certain plugin de compteur de visites qui a été installé précédemment. Donc, pour prouver cette théorie, il convient de désactiver ce plugin et effectuer un second test avec GTmetrix sur le site.

Il s’avère que l’analyse est correcte. En désactivant ce plugin, le chargement des pages  est réduit de 2 secondes.

Deuxième méthode : utiliser la console de développement de Chrome

Vous pouvez également utiliser la console de développement de Chrome pour trouver le plugin suspect.

Ouvrez votre site web. Faites un clic droit dans la page , puis cliquez sur « Inspecter ». Sinon, dans l’onglet Chrome, allez dans « Affichage -> Développeur -> Outils du développeur ».

Cliquez sur l’onglet « Network » et rechargez votre site Web.

Dans la boîte de filtre (juste en dessous du point rouge), entrez admin-ajax.php. Vous verrez la cause de ce problème. Après cela, vous pouvez désactiver le plugin et tester si le problème existe toujours.

En tant que propriétaire de site Web, si vous avez vraiment besoin d’utiliser ce plugin, assurez-vous d’utiliser la version la plus récente. Si vous avez fait cela et que le problème persiste, contactez le développeur du plugin en mentionnant ce cas.

Si le développeur ne peut pas encore résoudre le problème, vous pouvez toujours le remplacer par un nouveau. La beauté de WordPress est qu’il existe de nombreux plugins similaires parmi lesquels vous pouvez choisir. Il suffit d’aller dans la liste des plugins WordPress et de sélectionner le plugin le plus utilisé et le plus mis à jour qui offre la même fonctionnalité.

Accélérer le backend de votre site WordPress

Parfois, le déclenchement de l’API WordPress Heartbeat dans le backend de votre site peut également causer des problèmes de performance. Comme indiqué précédemment, cette fonction permet de sauvegarder automatiquement votre travail, pour éviter de perdre des projets en cas d’imprévu, et pour gérer correctement la rédaction/édition simultanée.

Par exemple, la fonction sera déclenchée chaque fois que vous écrirez un message et que vous garderez l’onglet ouvert. Cela peut entraîner une utilisation élevée du CPU, comme le montre le nombre de rappels dans la console de développement ci-dessous.

L’utilisation du CPU est un problème important pour ceux qui utilisent un plan d’hébergement mutualisé. Certains fournisseurs d’hébergement ne toléreront probablement pas une utilisation élevée du CPU et cela peut éventuellement conduire à des suspensions.

Pour résoudre ce problème, vous pouvez faire deux choses : désactiver l’API Heartbeat ou allonger les intervalles entre les vérifications. Comme la première option n’est pas pratique, il faudra utiliser la seconde à la place. Pour modifier l’intervalle, vous avez besoin d’un plugin appelé Heartbeat Control.

Vous devez commencer par installer le plugin WordPress : Allez dans votre tableau de bord, puis le menu « Plugins -> Ajouter ». Recherchez le plugin par son nom, cliquez sur installer et activez-le.

Après l’activation, allez au menu « Réglages -> Heartbeat Control Settings ». Ici, vous pouvez définir différentes règles pour différents emplacements.

Puisque le but est de minimiser la fréquence des rappels dans l’éditeur de post, vous pouvez vérifier cela et définir un nombre de requêtes supérieur à 15. Dans ce cas, il faudra le fixer à 200.

Une fois que vous avez terminé, cliquez sur le bouton « Enregistrer les modifications ».

Conclusion

Félicitations ! Vous savez maintenant comment optimiser admin-ajax.php dans WordPress ! 😀 Vous avez appris à connaître l’API Heartbeat et son produit dérivé, admin-ajax.php. Vous avez également pris connaissance des problèmes qui se posent lorsque les plugins débordent de la fonction et provoquent des ralentissements. Vous savez également que l’API Heartbeat elle-même peut créer un problème avec votre hôte si vous ne la gérez pas correctement.

Besoin d’un hébergement WordPress rapide et de qualité ?

LWS vous conseille sa formule d’hébergement WordPress en promotion à -20% (offre à partir de 3,99€ par mois au lieu de 4,99 €). Non seulement les performances sont au rendez-vous mais vous profitez en plus d’un support exceptionnel.

Découvrir l’offre

Laissez un commentaire dans la section ci-dessous pour que d’autres puissent aussi apprendre de votre expérience !

Quitter la version mobile