Wordpress

Comment diagnostiquer une utilisation élevée d'Admin-Ajax sur votre site WordPress

Ajax est une technologie Web basée sur JavaScript qui vous aide à créer des sites Web dynamiques et interactifs. WordPress utilise Ajax pour alimenter bon nombre de ses fonctionnalités de base de la zone d'administration, telles que l'enregistrement automatique des publications, la gestion des sessions utilisateur et les notifications.

Par défaut, WordPress dirige tous les appels Ajax via le admin-ajax.php fichier situé dans le site /wp-admin répertoire.

De nombreuses requêtes Ajax simultanées peuvent entraîner des admin-ajax.php l'utilisation, résultant en un serveur et un site Web considérablement ralentis. C'est l'un des problèmes les plus courants rencontrés par de nombreux sites WordPress non optimisés. En règle générale, il se manifeste sous la forme d'un site Web lent ou d'une erreur HTTP 5xx (principalement des erreurs 504 ou 502).

Dans cet article, vous découvrirez WordPress' admin-ajax.php fichier, comment cela fonctionne, ses avantages et ses inconvénients, et comment vous pouvez diagnostiquer et réparer le haut admin-ajax.php problème d'utilisation.

Prêt à partir? Déployons-nous !

Qu'est-ce que le fichier admin-ajx.php ?

La admin-ajax.php contient tout le code pour le routage des requêtes Ajax sur WordPress. Son objectif principal est d'établir une connexion entre le client et le serveur en utilisant Ajax. WordPress l'utilise pour actualiser le contenu de la page sans la recharger, la rendant ainsi dynamique et interactive pour les utilisateurs.

Un aperçu de base du fonctionnement d'Admin Ajax sur WordPress
Un aperçu de base du fonctionnement d'Admin Ajax sur WordPress

Étant donné que le noyau WordPress utilise déjà Ajax pour alimenter ses diverses fonctionnalités de backend, vous pouvez utiliser les mêmes fonctions pour utiliser Ajax sur WordPress. Tout ce que vous avez à faire est d'enregistrer une action, pointez-la vers votre site admin-ajax.php et définissez comment vous voulez qu'il renvoie la valeur. Vous pouvez le configurer pour qu'il renvoie du HTML, du JSON ou même du XML.

fichier admin-ajax.php dans WordPress
fichier admin-ajax.php dans WordPress

Selon WordPress Trac, le admin-ajax.php fichier est apparu pour la première fois dans WordPress 2.1. On l'appelle aussi Administrateur Ajax dans la communauté de développement WordPress.

 

Vérification de l'utilisation d'Ajax dans MyBehmaster tableau de bord
Vérification de l'utilisation d'Ajax dans MyBehmaster tableau de bord

Le graphique ci-dessus ne montre que le montant de admin-ajax.php demandes, pas d'où elles pourraient provenir. C'est un excellent moyen de voir quand les pics se produisent. Vous pouvez le combiner avec d'autres techniques mentionnées dans cet article pour affiner la cause principale.

Vérification du nombre de requêtes admin-ajax.php dans Chrome DevTools
Vérification du nombre de requêtes admin-ajax.php dans Chrome DevTools

Vous pouvez également utiliser Chrome DevTools pour voir combien de demandes sont envoyées à admin-ajax.php. Vous pouvez également consulter la Horaires onglet sous Réseau pour savoir combien de temps il faut pour traiter ces demandes.

Quant à trouver la raison exacte de la haute admin-ajax.php l'utilisation, il y a principalement deux causes principales : l'une due au frontend et l'autre due au backend. Nous discuterons des deux ci-dessous.

Ajax alimente de nombreuses fonctionnalités WordPress clés… mais lorsque trop de demandes arrivent, cela peut également ralentir considérablement votre site. 😱 Découvrez comment résoudre ce problème et optimiser votre utilisation d'Ajax ici 👇Click to Tweet

Comment déboguer une utilisation élevée de admin-ajax.php sur WordPress

Les plugins tiers sont l'une des raisons les plus courantes de l'utilisation élevée de admin-ajax.php. En règle générale, ce problème apparaît sur le frontend du site et apparaît fréquemment dans les rapports de test de vitesse.

Mais les plugins ne sont pas les seuls coupables ici, car les thèmes, le noyau WordPress, le serveur Web et une attaque DDoS peuvent également être à l'origine d'une utilisation élevée d'Admin Ajax.

Explorons-les plus en détail.

Comment déterminer l'origine de l'utilisation élevée de admin-ajax.php pour les plugins et les thèmes

Plugins basés sur Ajax dans le référentiel WordPress.org
Plugins basés sur Ajax dans le référentiel WordPress.org

Ajax est souvent utilisé par les développeurs WordPress pour créer des plugins et des thèmes dynamiques et interactifs. Certains exemples populaires incluent l'ajout de fonctionnalités telles que la recherche en direct, les filtres de produits, le défilement infini, le panier d'achat dynamique et la boîte de discussion.

Ce n'est pas parce qu'un plugin utilise Ajax qu'il ralentira votre site.

demande admin-ajax.php dans le rapport WebPageTest
Affichage de la requête admin-ajax.php dans le rapport WebPageTest

Habituellement, Admin Ajax se charge vers la fin du chargement de la page. En outre, vous pouvez configurer les requêtes Ajax pour qu'elles se chargent de manière asynchrone, de sorte que cela puisse avoir peu ou pas d'effet sur les performances perçues de la page pour l'utilisateur.

Comme vous pouvez le voir dans le rapport WebPageTest ci-dessus, admin-ajax.php se charge vers la fin de la file d'attente des requêtes, mais cela prend encore 780 ms. C'est beaucoup de temps pour une seule demande.

Rapport GTmetrix indiquant un sérieux pic d'utilisation de admin-ajax.php
Rapport GTmetrix indiquant un sérieux pic d'utilisation de admin-ajax.php

Lorsque les développeurs n'implémentent pas correctement Ajax sur WordPress, cela peut entraîner des problèmes de performances drastiques. Le rapport GTmetrix ci-dessus est un parfait exemple d'un tel comportement.

Vous pouvez également utiliser GTmetrix pour creuser dans les données de publication et de réponse individuelles. Vous pouvez utiliser cette fonctionnalité pour identifier la cause du problème.

Pour ce faire, rendez-vous sur le rapport GTmetrix Cascade onglet, puis recherchez et cliquez sur l'onglet POST admin-ajax.php Objet. Vous verrez trois onglets pour cette demande : En-têtes, Publication et Réponse.

Données d'en-tête de la requête POST admin-ajax.php
Données d'en-tête de la requête POST admin-ajax.php

Consulter la demande Poster et Réponse Les onglets vous donneront quelques conseils pour découvrir les raisons du problème de performances. Pour ce site, vous pouvez voir des indices dans l'onglet Réponse.

Données de réponse de la requête POST admin-ajax.php
Données de réponse de la requête POST admin-ajax.php

Vous pouvez voir qu'une partie de la réponse a quelque chose à voir avec une balise d'entrée avec un identifiant défini sur "fusion-form-nonce-656".

Une recherche rapide de cet indice vous mènera au site Web de ThemeFusion, les créateurs du thème Avada. Par conséquent, vous pouvez conclure que la demande provient du thème ou de l'un des plugins avec lesquels il est fourni.

Dans un tel cas, vous devez d'abord vous assurer que le thème Avada et tous ses plugins associés sont entièrement mis à jour. Si cela ne résout pas le problème, vous pouvez essayer de désactiver le thème et voir si cela résout le problème.

Contrairement à la désactivation d'un plugin, la désactivation d'un thème n'est pas faisable dans la plupart des scénarios. Par conséquent, essayez d'optimiser le thème pour éliminer les goulots d'étranglement. Vous pouvez également contacter l'équipe d'assistance du thème pour voir s'ils peuvent suggérer une meilleure solution.

Le test d'un autre site Web lent dans GTmetrix a conduit à la découverte de problèmes similaires avec le constructeur de pages Visual Composer et les plug-ins de barre de notification.

Données de réponse d'une autre requête POST admin-ajax.php
Données de réponse d'une autre requête POST admin-ajax.php
Données de publication de la requête POST admin-ajax.php
Données de publication de la requête POST admin-ajax.php

Heureusement, si vous ne parvenez pas à résoudre un problème avec le plug-in, vous préférez disposer de nombreux plug-ins alternatifs à essayer. Par exemple, en ce qui concerne les constructeurs de pages, vous pouvez également essayer Beaver Builder ou Elementor.

Comment déterminer l'origine de la haute admin-ajax.php

Parfois, les données de publication et de réponse présentées dans les rapports de test de vitesse peuvent ne pas être aussi claires et simples. Ici, trouver l'origine de la haute admin-ajax.php l'utilisation n'est pas aussi simple. Dans de tels cas, vous pouvez toujours le faire à l'ancienne.

Désactivez tous les plugins de votre site, effacez le cache de votre site (le cas échéant), puis relancez un test de vitesse. Si admin-ajax.php est toujours présent, le coupable le plus probable est le thème. Mais s'il est introuvable, vous devez activer chaque plugin un par un et exécuter les tests de vitesse à chaque fois. Par processus d'élimination, vous vous verrouillerez sur l'origine du problème.

Pointe: Utilisation d'un environnement de mise en scène (par exemple Behmaster's staging environment) est un excellent moyen d'exécuter des tests sur votre site sans affecter votre site en ligne. Une fois que vous avez déterminé la cause et résolu le problème dans l'environnement de staging, vous pouvez appliquer les modifications à votre site en ligne.

Diagnostiquer les problèmes de serveur principal avec admin-ajax.php

La deuxième raison la plus courante pour le haut admin-ajax.php utilisation est l'API WordPress Heartbeat générant des appels Ajax fréquents, entraînant une utilisation élevée du processeur sur le serveur. En règle générale, cela est dû au fait que de nombreux utilisateurs se sont connectés au tableau de bord principal de WordPress. Par conséquent, vous ne verrez pas cela dans les tests de vitesse.

Fatigué de rencontrer des problèmes avec votre site WordPress ? Obtenez le support d'hébergement le meilleur et le plus rapide avec Behmaster! Découvrez nos forfaits

Par défaut, l'API Heartbeat interroge le admin-ajax.php fichier toutes les 15 secondes pour enregistrer automatiquement les articles ou les pages. Si vous utilisez un serveur d'hébergement partagé, vous n'avez 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, cela peut accumuler de nombreuses demandes d'administration Ajax.

Par exemple, lorsque vous écrivez ou éditez des articles, un seul utilisateur peut générer à lui seul 240 demandes en une heure !

Demandes fréquentes d'enregistrement automatique admin-ajax.php
Demandes fréquentes d'enregistrement automatique admin-ajax.php

Cela fait beaucoup de demandes sur le backend avec un seul utilisateur. Imaginez maintenant un site où plusieurs éditeurs sont connectés simultanément. Un tel site peut accumuler rapidement des requêtes Ajax, générant une utilisation élevée du processeur.

Behmaster En fait, j'ai rencontré ce problème en aidant DARTDrones à faire évoluer son site WooCommerce pour une apparition sur Shark Tank.

Ils ont reçu plus de 4,100 XNUMX admin-ajax.php appels en une journée avec seulement 2,000 XNUMX visiteurs uniques. C'est un faible ratio demandes-visites.

Utilisation intensive de admin-ajax.php sur dartdrones.com
Utilisation intensive de admin-ajax.php sur dartdrones.com

BehmasterL'équipe de a remarqué le / wp-admin URL de référence et correctement déterminé la cause première. Ces demandes étaient dues aux administrateurs et éditeurs de DARTDrones mettant fréquemment le site à jour en prévision du salon.

WordPress a partiellement résolu ce problème d'API Heartbeat il y a longtemps. Par exemple, vous pouvez réduire la fréquence des requêtes générées par l'API Heartbeat sur les hôtes aux ressources limitées. Il se suspend également après une heure d'inactivité clavier/souris/touche.

Utilisation du plugin Heartbeat Control pour réduire les requêtes Ajax

Vous pouvez résoudre ce problème facilement en utilisant le plugin Heartbeat Control de WP Rocket. Il permet de désactiver ou de modifier la fréquence de l'API Heartbeat en quelques clics.

Le plugin Heartbeat Control
Le plugin Heartbeat Control

Avec le plugin Heartbeat Control installé et activé, vous pouvez gérer la fréquence de l'API Heartbeat sur le tableau de bord WordPress, le frontend du site et l'éditeur de publication.

Tableau de bord « Paramètres généraux » du plug-in Heartbeat Control
Tableau de bord « Paramètres généraux » du plug-in Heartbeat Control

Si votre serveur a des ressources CPU limitées, je vous recommande de Désactiver le rythme cardiaque sur le tableau de bord WordPress et le frontend. Vous pouvez également Modifier le rythme cardiaque fréquence pour l'option 'Post editor' et augmentez-la à 30 secondes (voire 60 secondes). Plus la fréquence est élevée, plus les économies sur les ressources du serveur utilisées sont importantes.

Les paramètres exacts que vous devrez utiliser varieront d'un site à l'autre. Si vous ne savez pas quoi utiliser, vous pouvez consulter votre développeur Web.

Trafic élevé dû à une attaque DDoS ou à des robots de spam

Submerger votre site avec une attaque DDoS ou des robots de spam peut également conduire à des admin-ajax.php usage. Cependant, une telle attaque ne cible pas nécessairement l'augmentation des requêtes Admin Ajax. Ce ne sont que des dommages collatéraux.

Si votre site subit une attaque DDoS, votre priorité devrait être de le placer derrière un CDN/WAF robuste comme Cloudflare ou Sucuri. Chaque plan d'hébergement avec Behmaster comprend également Behmaster CDN, qui peut vous aider à décharger dans une large mesure les ressources de votre site Web.

Pour en savoir plus sur la façon dont vous pouvez protéger vos sites Web contre des attaques malveillantes comme celles-ci, vous pouvez vous référer à notre guide détaillé sur la façon d'arrêter une attaque DDoS.

Si vous voyez un serveur et un site Web ralentis, cela peut être dû à un trop grand nombre de requêtes Ajax. Préparez-vous à diagnostiquer et à résoudre le problème avec ce guide !Click to Tweet

Résumé

WordPress utilise Ajax dans son API Heartbeat pour implémenter bon nombre de ses fonctionnalités principales. Cependant, il peut entraîner des temps de chargement accrus s'il n'est pas utilisé correctement. Cela est généralement dû à une fréquence élevée de demandes au admin-ajax.php fichier.

Dans cet article, vous avez appris les différentes causes de l'hypertrophie admin-ajax.php l'utilisation, comment diagnostiquer ce qui est responsable de ce symptôme et comment y remédier. Dans la plupart des cas, suivre ce guide devrait permettre à votre site de redevenir opérationnel en un rien de temps.

Cependant, dans certains cas, la mise à niveau vers un serveur avec des ressources plus élevées est la seule solution viable. Surtout pour les cas d'utilisation exigeants tels que les sites de commerce électronique et d'adhésion. Si vous utilisez un tel site, envisagez de passer à un hébergeur WordPress géré expérimenté dans la gestion de ces types de problèmes de performances.

Si vous êtes toujours aux prises avec une haute admin-ajax.php utilisation sur votre site WordPress, faites-le nous savoir dans la section commentaires.

Articles Relatifs

0 Commentaires
Commentaires en ligne
Voir tous les commentaires
Retour à bouton en haut