Wordpress

Hoe u een hoog Admin-Ajax-gebruik op uw WordPress-site kunt diagnosticeren

Ajax is een op JavaScript gebaseerde webtechnologie die u helpt bij het bouwen van dynamische en interactieve websites. WordPress gebruikt Ajax om veel van de belangrijkste functies van het beheerdersgebied aan te sturen, zoals automatisch opslaan van berichten, beheer van gebruikerssessies en meldingen.

Standaard leidt WordPress alle Ajax-oproepen via de admin-ajax.php bestand in de site's /wp-admin directory.

Meerdere gelijktijdige Ajax-verzoeken kunnen leiden tot high admin-ajax.php gebruik, wat resulteert in een aanzienlijk vertraagde server en website. Het is een van de meest voorkomende problemen waarmee veel niet-geoptimaliseerde WordPress-sites worden geconfronteerd. Meestal manifesteert het zich als een trage website of een HTTP 5xx-fout (meestal 504- of 502-fouten).

In dit artikel leer je over WordPress' admin-ajax.php bestand, hoe het werkt, de voor- en nadelen, en hoe u de hoge admin-ajax.php gebruiksprobleem.

Klaar om te gaan? Laten we uitrollen!

Wat is het admin-ajx.php-bestand?

De admin-ajax.php bestand bevat alle code voor het routeren van Ajax-verzoeken op WordPress. Het primaire doel is om een ​​verbinding tot stand te brengen tussen de client en de server met behulp van Ajax. WordPress gebruikt het om de inhoud van de pagina te vernieuwen zonder deze opnieuw te laden, waardoor het dynamisch en interactief wordt voor de gebruikers.

Een basisoverzicht van hoe Admin Ajax werkt op WordPress
Een basisoverzicht van hoe Admin Ajax werkt op WordPress

Omdat de WordPress-kern Ajax al gebruikt om de verschillende backend-functies aan te drijven, kun je dezelfde functies gebruiken om Ajax op WordPress te gebruiken. Het enige dat u hoeft te doen, is een actie registreren, deze naar uw site verwijzen admin-ajax.php bestand en definieer hoe u wilt dat de waarde wordt geretourneerd. U kunt het instellen om HTML, JSON of zelfs XML te retourneren.

admin-ajax.php-bestand in WordPress
admin-ajax.php-bestand in WordPress

Volgens WordPress Trac is de admin-ajax.php bestand verscheen voor het eerst in WordPress 2.1. Het wordt ook wel aangeduid als Ajax-beheerder in de WordPress-ontwikkelingsgemeenschap.

 

Ajax-gebruik controleren in MijnBehmaster dashboards
Ajax-gebruik controleren in MijnBehmaster dashboards

De bovenstaande grafiek toont alleen de hoeveelheid admin-ajax.php verzoeken, niet waar ze vandaan komen. Het is een geweldige manier om te zien wanneer de pieken optreden. Je kunt het combineren met andere technieken die in dit bericht worden genoemd om de primaire oorzaak te achterhalen.

Het aantal admin-ajax.php-verzoeken controleren in Chrome DevTools
Het aantal admin-ajax.php-verzoeken controleren in Chrome DevTools

U kunt ook Chrome DevTools gebruiken om te zien hoeveel verzoeken worden verzonden naar admin-ajax.php. U kunt ook kijken op de Tijden tab onder de Netwerk om erachter te komen hoeveel tijd het kost om deze verzoeken te verwerken.

Wat betreft het vinden van de exacte reden achter high admin-ajax.php gebruik, zijn er hoofdzakelijk twee hoofdoorzaken: de ene vanwege de frontend en de andere vanwege de backend. We zullen beide hieronder bespreken.

Ajax maakt veel belangrijke WordPress-functies mogelijk ... maar als er te veel verzoeken binnenkomen, kan dit uw site ook aanzienlijk vertragen. 😱 Lees hier hoe u dit probleem kunt oplossen en uw Ajax-gebruik kunt optimaliseren 👇Klik om Tweet

Hoe hoog admin-ajax.php-gebruik op WordPress te debuggen

Plugins van derden zijn een van de meest voorkomende redenen voor het hoge gebruik van admin-ajax.php. Dit probleem wordt meestal gezien op de frontend van de site en wordt vaak weergegeven in snelheidstestrapporten.

Maar plug-ins zijn hier niet de enige boosdoener, aangezien thema's, de WordPress-kern, de webserver en een DDoS-aanval ook de reden kunnen zijn achter het hoge Admin Ajax-gebruik.

Laten we ze in meer detail onderzoeken.

Hoe de oorsprong van hoog admin-ajax.php-gebruik voor plug-ins en thema's te bepalen

Door Ajax aangedreven plug-ins in de WordPress.org-repository
Door Ajax aangedreven plug-ins in de WordPress.org-repository

Ajax wordt vaak gebruikt door WordPress-ontwikkelaars om dynamische en interactieve plug-ins en thema's te maken. Enkele populaire voorbeelden zijn het toevoegen van functies zoals live zoeken, productfilters, oneindig scrollen, dynamisch winkelwagentje en chatbox.

Het feit dat een plug-in Ajax gebruikt, betekent niet dat het uw site vertraagt.

admin-ajax.php-verzoek in WebPageTest-rapport
Het admin-ajax.php-verzoek bekijken in het WebPageTest-rapport

Gewoonlijk laadt Admin Ajax tegen het einde van het laden van de pagina. U kunt ook instellen dat Ajax-verzoeken asynchroon worden geladen, zodat het weinig tot geen effect kan hebben op de waargenomen prestaties van de pagina voor de gebruiker.

Zoals u kunt zien in het WebPageTest-rapport hierboven, admin-ajax.php laadt tegen het einde van de wachtrij voor verzoeken, maar het duurt nog steeds 780 ms. Dat is veel tijd voor slechts één verzoek.

GTmetrix-rapport dat een ernstige gebruikspiek van admin-ajax.php aangeeft
GTmetrix-rapport dat een ernstige gebruikspiek van admin-ajax.php aangeeft

Wanneer ontwikkelaars Ajax niet correct implementeren op WordPress, kan dit leiden tot drastische prestatieproblemen. Het bovenstaande GTmetrix-rapport is een perfect voorbeeld van dergelijk gedrag.

U kunt GTmetrix ook gebruiken om in individuele post- en responsgegevens te graven. U kunt deze functie gebruiken om vast te stellen wat het probleem veroorzaakt.

Ga hiervoor naar de GTmetrix-rapporten Waterval tabblad, en zoek en klik vervolgens op de POST admin-ajax.php item. Je ziet drie tabbladen voor dit verzoek: Headers, Post en Response.

POST admin-ajax.php verzoek Headers data
POST admin-ajax.php verzoek Headers data

De aanvraag bekijken Post en antwoord tabbladen geven u enkele hints om de redenen achter het prestatieprobleem te achterhalen. Voor deze site kunt u aanwijzingen zien op het tabblad Reactie.

POST admin-ajax.php-verzoek Responsgegevens
POST admin-ajax.php-verzoek Responsgegevens

Je kunt zien dat een deel van het antwoord iets te maken heeft met een invoertag met id ingesteld op "fusion-form-nonce-656".

Een snelle zoektocht naar deze aanwijzing leidt u naar de website van ThemeFusion, de makers van het Avada-thema. U kunt dus concluderen dat het verzoek afkomstig is van het thema of een van de plug-ins waarmee het is gebundeld.

In een dergelijk geval moet u er eerst voor zorgen dat het Avada-thema en alle bijbehorende plug-ins volledig zijn bijgewerkt. Als het probleem hiermee niet is opgelost, kunt u proberen het thema uit te schakelen en te kijken of dat het probleem oplost.

In tegenstelling tot het uitschakelen van een plug-in, is het uitschakelen van een thema in de meeste scenario's niet haalbaar. Probeer daarom het thema te optimaliseren om eventuele knelpunten te verwijderen. U kunt ook contact opnemen met het ondersteuningsteam van het thema om te zien of zij een betere oplossing kunnen voorstellen.

Het testen van een andere trage website in GTmetrix leidde tot het vinden van vergelijkbare problemen met Visual Composer-paginabuilder- en meldingsbalk-plug-ins.

Reactiegegevens van een ander POST admin-ajax.php-verzoek
Reactiegegevens van een ander POST admin-ajax.php-verzoek
POST admin-ajax.php verzoek Post data
POST admin-ajax.php verzoek Post data

Gelukkig, als je een probleem met de plug-in niet kunt oplossen, heb je het liefst veel alternatieve plug-ins beschikbaar om uit te proberen. Als het bijvoorbeeld om paginabuilders gaat, kun je Beaver Builder of Elementor eens proberen.

Hoe de oorsprong van hoge admin-ajax.php te bepalen

Soms zijn de post- en responsgegevens die in snelheidstestrapporten worden gepresenteerd, niet zo duidelijk en duidelijk. Hier, de oorsprong van high vinden admin-ajax.php gebruik is niet zo eenvoudig. In dergelijke gevallen kunt u het altijd op de ouderwetse manier doen.

Schakel alle plug-ins van uw site uit, wis het cachegeheugen van uw site (indien aanwezig) en voer vervolgens opnieuw een snelheidstest uit. Als admin-ajax.php nog aanwezig is, dan is de meest waarschijnlijke boosdoener het thema. Maar als het nergens te vinden is, moet u elke plug-in één voor één activeren en elke keer de snelheidstests uitvoeren. Door het proces van eliminatie, vergrendelt u de oorsprong van het probleem.

Tip: Een staging-omgeving gebruiken (bijv Behmaster's staging-omgeving) is een geweldige manier om tests op uw site uit te voeren zonder uw live site te beïnvloeden. Zodra je de oorzaak hebt vastgesteld en het probleem in de testomgeving hebt opgelost, kun je de wijzigingen naar je live site pushen.

Problemen met de backend-server diagnosticeren met admin-ajax.php

De op één na meest voorkomende reden voor high admin-ajax.php gebruik is de WordPress Heartbeat API die frequente Ajax-oproepen genereert, wat leidt tot een hoog CPU-gebruik op de server. Dit wordt meestal veroorzaakt doordat veel gebruikers zijn ingelogd op het backend-dashboard van WordPress. Daarom zul je dit niet zien verschijnen in snelheidstests.

Ben je het beu om problemen met je WordPress-site te ervaren? Krijg de beste en snelste hostingondersteuning met Behmaster! Bekijk onze plannen

Standaard peilt de Heartbeat API de admin-ajax.php bestand elke 15 seconden om berichten of pagina's automatisch op te slaan. Als u een gedeelde hostingserver gebruikt, heeft u niet veel serverbronnen voor uw site. Als je een bericht of pagina aan het bewerken bent en het tabblad geruime tijd open laat, dan kan dit veel Admin Ajax-verzoeken opleveren.

Wanneer u bijvoorbeeld berichten schrijft of bewerkt, kan een enkele gebruiker alleen 240 verzoeken in een uur genereren!

Frequente automatisch opslaan admin-ajax.php verzoeken
Frequente automatisch opslaan admin-ajax.php verzoeken

Dat zijn veel verzoeken op de backend met slechts één gebruiker. Stel je nu een site voor waar meerdere editors tegelijkertijd zijn ingelogd. Zo'n site kan Ajax-verzoeken snel verzamelen, wat een hoog CPU-gebruik genereert.

Behmaster kwam dit probleem eigenlijk tegen toen ze DARTDrones hielpen hun WooCommerce-site te schalen voor een verschijning op Shark Tank.

Ze ontvingen meer dan 4,100 admin-ajax.php oproepen op een dag met slechts 2,000 unieke bezoekers. Dat is een zwakke verhouding tussen verzoeken en bezoeken.

Zwaar admin-ajax.php-gebruik op dartdrones.com
Zwaar admin-ajax.php-gebruik op dartdrones.com

Behmaster's team merkte de / Wp-admin verwijzende URL en heeft de hoofdoorzaak correct bepaald. Deze verzoeken waren het gevolg van het feit dat de beheerders en redacteuren van DARTDrones de site regelmatig bijwerkten in afwachting van de show.

WordPress heeft dit Heartbeat API-probleem al lang geleden gedeeltelijk opgelost. U kunt bijvoorbeeld de frequentie verminderen van verzoeken die door de Heartbeat API worden gegenereerd op hosts met beperkte middelen. Het schort zichzelf ook op na een uur inactiviteit van toetsenbord/muis/aanraking.

Heartbeat Control-plug-in gebruiken om Ajax-verzoeken te verminderen

U kunt dit probleem eenvoudig oplossen door de Heartbeat Control-plug-in van WP Rocket te gebruiken. Hiermee kunt u de frequentie van de Heartbeat API in slechts een paar klikken uitschakelen of wijzigen.

De plug-in Heartbeat Control
De plug-in Heartbeat Control

Met de Heartbeat Control-plug-in geïnstalleerd en geactiveerd, kunt u de frequentie van de Heartbeat API beheren op het WordPress-dashboard, de site-frontend en de berichteditor.

Dashboard 'Algemene instellingen' van de plug-in Heartbeat Control
Dashboard 'Algemene instellingen' van de plug-in Heartbeat Control

Als uw server beperkte CPU-bronnen heeft, raad ik u aan om: Hartslag uitschakelen op zowel WordPress Dashboard als Frontend. Je kan ook Hartslag aanpassen frequentie voor de optie 'Post editor' en verhoog deze naar 30 seconden (of zelfs 60 seconden). Hoe hoger de frequentie, hoe groter de besparing op de gebruikte serverbronnen.

De exacte instellingen die u moet gebruiken, verschillen van site tot site. Als u niet zeker weet wat u moet gebruiken, kunt u uw webontwikkelaar raadplegen.

Veel verkeer door een DDoS-aanval of spambots

Uw site overweldigen met een DDoS-aanval of spambots kan ook leiden tot hoge admin-ajax.php gebruik. Een dergelijke aanval is echter niet noodzakelijk gericht op toenemende Admin Ajax-verzoeken. Het is gewoon nevenschade.

Als uw site onder een DDoS-aanval staat, moet uw prioriteit zijn om deze achter een robuust CDN/WAF zoals Cloudflare of Sucuri te krijgen. Elk hostingplan met Behmaster bevat ook Behmaster CDN, waarmee u de bronnen van uw website voor een groot deel kunt ontlasten.

Voor meer informatie over hoe u uw websites kunt beschermen tegen kwaadaardige aanvallen zoals deze, kunt u onze uitgebreide handleiding raadplegen over hoe u een DDoS-aanval kunt stoppen.

Als je een vertraagde server en website ziet, kan dit te wijten zijn aan te veel Ajax-verzoeken. ⏳ Maak je klaar om het te diagnosticeren en op te lossen met deze gids!Klik om Tweet

Samengevat

WordPress gebruikt Ajax in zijn Heartbeat API om veel van zijn kernfuncties te implementeren. Het kan echter leiden tot langere laadtijden als het niet correct wordt gebruikt. Dit wordt meestal veroorzaakt door een hoge frequentie van verzoeken aan de admin-ajax.php bestand.

In dit artikel heb je de verschillende oorzaken van high admin-ajax.php gebruik, hoe u kunt diagnosticeren wat verantwoordelijk is voor dit symptoom en hoe u het kunt oplossen. In de meeste gevallen zou het volgen van deze handleiding ervoor moeten zorgen dat uw site binnen de kortste keren weer soepel werkt.

In sommige gevallen is upgraden naar een server met meer resources echter de enige haalbare oplossing. Vooral voor veeleisende toepassingen zoals e-commerce en lidmaatschapssites. Als je een dergelijke site gebruikt, overweeg dan om te upgraden naar een beheerde WordPress-host die ervaring heeft met het omgaan met dit soort prestatieproblemen.

Als je nog steeds worstelt met high admin-ajax.php gebruik op uw WordPress-site, laat het ons weten in het opmerkingengedeelte.

Gerelateerde artikelen

0 Comments
Inline feedbacks
Bekijk alle reacties
Terug naar boven knop