Wordpress

Jak diagnostikovat vysoké využití Admin-Ajax na vašem webu WordPress

Ajax je webová technologie založená na JavaScriptu, která vám pomáhá vytvářet dynamické a interaktivní webové stránky. WordPress používá Ajax k napájení mnoha svých základních funkcí správy, jako je automatické ukládání příspěvků, správa uživatelských relací a upozornění.

Ve výchozím nastavení WordPress směruje všechna volání Ajax prostřednictvím admin-ajax.php soubor umístěný na webu /wp-admin adresáře.

Četné současné požadavky Ajaxu mohou vést k vysokým admin-ajax.php používání, což má za následek značně zpomalený server a web. Je to jeden z nejčastějších problémů, kterým čelí mnoho neoptimalizovaných webů WordPress. Obvykle se projevuje jako pomalý web nebo chyba HTTP 5xx (většinou chyby 504 nebo 502).

V tomto článku se dozvíte o WordPressu admin-ajax.php soubor, jak to funguje, jeho výhody a nevýhody a jak můžete diagnostikovat a opravit vysoké admin-ajax.php problém s používáním.

Připraven jít? Pojďme se rozjet!

Co je soubor admin-ajx.php?

Projekt admin-ajax.php obsahuje veškerý kód pro směrování požadavků Ajax na WordPress. Jeho primárním účelem je vytvořit spojení mezi klientem a serverem pomocí Ajaxu. WordPress jej používá k obnovení obsahu stránky, aniž by ji znovu načítal, čímž je pro uživatele dynamická a interaktivní.

Základní přehled toho, jak funguje Admin Ajax na WordPressu
Základní přehled toho, jak funguje Admin Ajax na WordPressu

Protože jádro WordPress již používá Ajax k napájení svých různých backendových funkcí, můžete stejné funkce použít k použití Ajaxu na WordPress. Vše, co musíte udělat, je zaregistrovat akci a nasměrovat ji na vaše stránky admin-ajax.php soubor a definujte, jak má vracet hodnotu. Můžete jej nastavit tak, aby vrátil HTML, JSON nebo dokonce XML.

admin-ajax.php ve WordPressu
admin-ajax.php ve WordPressu

Podle WordPress Trac, admin-ajax.php soubor se poprvé objevil ve WordPressu 2.1. Označuje se také jako Správce Ajaxu ve vývojářské komunitě WordPressu.

 

Kontrola využití Ajaxu v MyBehmaster přístrojová deska
Kontrola využití Ajaxu v MyBehmaster přístrojová deska

Výše uvedený graf ukazuje pouze množství admin-ajax.php žádosti, nikoli odkud mohou pocházet. Je to skvělý způsob, jak zjistit, kdy dochází ke špičkám. Můžete jej zkombinovat s dalšími technikami uvedenými v tomto příspěvku, abyste zúžili primární příčinu.

Kontrola počtu požadavků admin-ajax.php v Chrome DevTools
Kontrola počtu požadavků admin-ajax.php v Chrome DevTools

Můžete také použít Chrome DevTools, abyste viděli, kolika žádostí je odesíláno admin-ajax.php, Můžete se také podívat na Časování pod záložkou Síť část, kde zjistíte, jak dlouho trvá zpracování těchto požadavků.

Pokud jde o nalezení přesné příčiny vysoké admin-ajax.php použití, existují primárně dvě hlavní příčiny: jedna kvůli frontendu a druhá kvůli backendu. Obojí probereme níže.

Ajax pohání mnoho klíčových funkcí WordPress... ale když přijde příliš mnoho požadavků, může to také výrazně zpomalit váš web. 😱 Zde se dozvíte, jak tento problém vyřešit a optimalizovat využití Ajaxu 👇Kliknutím Tweet

Jak ladit vysoké použití admin-ajax.php na WordPress

Pluginy třetích stran jsou jedním z nejčastějších důvodů vysokého využití admin-ajax.php. Tento problém se obvykle vyskytuje na frontendu webu a často se objevuje ve zprávách o testech rychlosti.

Ale pluginy zde nejsou jediným viníkem, protože motivy, jádro WordPressu, webový server a útok DDoS mohou být také důvodem vysokého využití Admin Ajaxu.

Pojďme je prozkoumat podrobněji.

Jak určit původ vysokého využití admin-ajax.php pro pluginy a motivy

Pluginy poháněné Ajaxem v úložišti WordPress.org
Pluginy poháněné Ajaxem v úložišti WordPress.org

Ajax často používají vývojáři WordPress k vytváření dynamických a interaktivních pluginů a témat. Mezi oblíbené příklady patří přidávání funkcí, jako je živé vyhledávání, filtry produktů, nekonečné posouvání, dynamický nákupní košík a chatovací pole.

To, že plugin používá Ajax, neznamená, že zpomalí váš web.

požadavek admin-ajax.php v sestavě WebPageTest
Zobrazení požadavku admin-ajax.php v sestavě WebPageTest

Obvykle se Admin Ajax načte ke konci načítání stránky. Také můžete nastavit požadavky Ajax tak, aby se načítaly asynchronně, takže to může mít malý nebo žádný vliv na vnímaný výkon stránky pro uživatele.

Jak můžete vidět v přehledu WebPageTest výše, admin-ajax.php načte se ke konci fronty požadavků, ale stále to trvá 780 ms. To je spousta času na jednu žádost.

Zpráva GTmetrix indikující vážný nárůst využití admin-ajax.php
Zpráva GTmetrix indikující vážný nárůst využití admin-ajax.php

Když vývojáři správně neimplementují Ajax na WordPress, může to vést k drastickým problémům s výkonem. Výše uvedená zpráva GTmetrix je dokonalým příkladem takového chování.

Můžete také použít GTmetrix k prozkoumání dat jednotlivých příspěvků a odpovědí. Pomocí této funkce můžete určit, co problém způsobuje.

Chcete-li to provést, přejděte na přehled GTmetrix Vodopád a poté najděte a klikněte na POST admin-ajax.php položka. U tohoto požadavku uvidíte tři karty: Záhlaví, Příspěvek a Odpověď.

Data záhlaví požadavku POST admin-ajax.php
Data záhlaví požadavku POST admin-ajax.php

Kontrola žádosti Post a Odpověď karty vám poskytnou několik rad, jak zjistit důvody problému s výkonem. Pro tento web můžete vidět vodítka na kartě Odpověď.

Data odezvy požadavku POST admin-ajax.php
Data odezvy požadavku POST admin-ajax.php

Můžete vidět, že část odpovědi má něco společného se vstupní značkou s id nastaveným na „fusion-form-nonce-656“.

Rychlé vyhledání této stopy vás zavede na webovou stránku ThemeFusion, tvůrce tématu Avada. Můžete tedy dojít k závěru, že požadavek pochází z tématu nebo některého z pluginů, se kterými je dodáván.

V takovém případě se musíte nejprve ujistit, že téma Avada a všechny související pluginy jsou plně aktualizovány. Pokud to problém nevyřeší, můžete zkusit deaktivovat motiv a zjistit, zda se tím problém nevyřeší.

Na rozdíl od deaktivace pluginu není deaktivace motivu ve většině scénářů proveditelná. Zkuste tedy motiv optimalizovat, abyste odstranili všechna úzká místa. Můžete se také obrátit na tým podpory tématu a zjistit, zda vám může navrhnout lepší řešení.

Testování dalšího pomalého webu v GTmetrix vedlo k nalezení podobných problémů s tvůrcem stránek Visual Composer a pluginy Notification Bar.

Údaje o odpovědi jiného požadavku POST admin-ajax.php
Údaje o odpovědi jiného požadavku POST admin-ajax.php
Data příspěvku požadavku POST admin-ajax.php
Data příspěvku požadavku POST admin-ajax.php

Naštěstí, pokud nemůžete vyřešit problém s pluginem, nejraději máte k dispozici mnoho alternativních pluginů, které můžete vyzkoušet. Například, pokud jde o tvůrce stránek, můžete také vyzkoušet Beaver Builder nebo Elementor.

Jak určit původ vysoké admin-ajax.php

Někdy nemusí být data Post and Response prezentovaná ve zprávách o testu rychlosti tak jasná a přímočará. Zde, hledání původu vysoké admin-ajax.php použití není tak snadné. V takových případech to vždy můžete udělat způsobem staré školy.

Deaktivujte všechny pluginy vašeho webu, vymažte mezipaměť vašeho webu (pokud existuje) a poté znovu spusťte test rychlosti. Li admin-ajax.php je stále přítomen, pak je nejpravděpodobnějším viníkem téma. Ale pokud to není nikde k nalezení, musíte aktivovat každý plugin jeden po druhém a pokaždé spustit testy rychlosti. Procesem eliminace uzamknete původ problému.

Tip: Použití scénického prostředí (např Behmasterprostředí) je skvělý způsob, jak spustit testy na vašem webu, aniž by to ovlivnilo váš aktivní web. Jakmile určíte příčinu a opravíte problém ve zkušebním prostředí, můžete změny vložit na svůj živý web.

Diagnostika problémů se serverem backend pomocí admin-ajax.php

Druhý nejčastější důvod vysoké admin-ajax.php použití je WordPress Heartbeat API generující častá volání Ajax, což vede k vysokému využití procesoru na serveru. Obvykle je to způsobeno tím, že mnoho uživatelů přihlášených do backendového řídicího panelu WordPress. Proto se to v testech rychlosti neukáže.

Už vás nebaví problémy s webem WordPress? Získejte nejlepší a nejrychlejší podporu hostingu s Behmaster! Podívejte se na naše plány

Ve výchozím nastavení Heartbeat API dotazuje admin-ajax.php soubor každých 15 sekund pro automatické ukládání příspěvků nebo stránek. Pokud používáte sdílený hostingový server, nemáte pro svůj web vyhrazeno mnoho serverových zdrojů. Pokud upravujete příspěvek nebo stránku a necháte kartu otevřenou po delší dobu, může to nahromadit spoustu požadavků správce Ajax.

Například, když píšete nebo upravujete příspěvky, jediný uživatel může vygenerovat 240 požadavků za hodinu!

Časté požadavky na automatické ukládání admin-ajax.php
Časté požadavky na automatické ukládání admin-ajax.php

To je mnoho požadavků na backendu s jedním uživatelem. Nyní si představte web, na kterém je přihlášeno více editorů současně. Takový web může rychle načítat požadavky Ajaxu a generovat vysoké využití CPU.

Behmaster ve skutečnosti narazil na tento problém, když pomáhal DARTDrones škálovat jejich web WooCommerce, aby se objevil na Shark Tank.

Dostali přes 4,100 admin-ajax.php volání za den s pouhými 2,000 XNUMX unikátními návštěvníky. To je slabý poměr požadavků a návštěv.

Velké využití admin-ajax.php na dartdrones.com
Velké využití admin-ajax.php na dartdrones.com

Behmastertým si všiml / Wp-admin odkazující adresu URL a správně určil hlavní příčinu. Tyto požadavky byly způsobeny tím, že administrátoři a redaktoři DARTDrones často aktualizovali web v očekávání show.

WordPress tento problém Heartbeat API částečně již dávno vyřešil. Můžete například snížit frekvenci požadavků generovaných rozhraním Heartbeat API na hostitelích s omezenými prostředky. Také se sám vypne po jedné hodině nečinnosti klávesnice/myši/dotyku.

Použití modulu Heartbeat Control ke snížení požadavků Ajaxu

Tento problém můžete snadno vyřešit pomocí pluginu Heartbeat Control od WP Rocket. Umožňuje vám deaktivovat nebo upravit frekvenci rozhraní Heartbeat API několika kliknutími.

Plugin Heartbeat Control
Plugin Heartbeat Control

S nainstalovaným a aktivovaným pluginem Heartbeat Control můžete spravovat frekvenci Heartbeat API na řídicím panelu WordPress, frontendu webu a editoru příspěvků.

Panel „Obecná nastavení“ pluginu Heartbeat Control
Panel „Obecná nastavení“ pluginu Heartbeat Control

Pokud má váš server omezené zdroje CPU, doporučuji vám to Zakázat Heartbeat na WordPress Dashboard i Frontend. Můžete také Upravit tep frekvenci pro volbu 'Post editor' a zvyšte ji na 30 sekund (nebo dokonce 60 sekund). Čím vyšší frekvence, tím větší úspory na použitých zdrojích serveru.

Přesná nastavení, která budete muset použít, se budou lišit web od webu. Pokud si nejste jisti, co použít, můžete se poradit se svým webovým vývojářem.

Vysoký provoz kvůli útoku DDoS nebo spamovým robotům

Zahlcení vašeho webu útokem DDoS nebo spamovacími roboty může také vést k vysokým admin-ajax.php používání. Takový útok však nemusí nutně cílit na zvyšující se požadavky správce Ajax. Jsou to jen vedlejší škody.

Pokud je váš web napaden DDoS útokem, vaší prioritou by mělo být dostat ho za robustní CDN/WAF, jako je Cloudflare nebo Sucuri. Každý hostingový plán s Behmaster také zahrnuje Behmaster CDN, což vám může do značné míry pomoci zbavit se zdrojů vašeho webu.

Chcete-li se dozvědět více o tom, jak můžete chránit své webové stránky před škodlivými útoky, jako jsou tyto, můžete se podívat na našeho podrobného průvodce, jak zastavit útok DDoS.

Pokud vidíte zpomalený server a web, může to být způsobeno příliš velkým počtem požadavků Ajax. ⏳ Připravte se na diagnostiku a opravu pomocí této příručky!Kliknutím Tweet

Shrnutí

WordPress používá Ajax ve svém Heartbeat API k implementaci mnoha svých základních funkcí. Pokud se však nepoužívá správně, může to vést k prodloužení doby načítání. To je obvykle způsobeno vysokou frekvencí požadavků na server admin-ajax.php soubor.

V tomto článku jste se dozvěděli různé příčiny vysoké hladiny admin-ajax.php použití, jak diagnostikovat, co je zodpovědné za tento příznak, a jak jej můžete opravit. Ve většině případů by se podle tohoto průvodce měl váš web rychle zprovoznit a fungovat bez problémů.

V některých případech je však upgrade na server s vyššími prostředky jediným schůdným řešením. Zejména pro náročné případy použití, jako je elektronický obchod a členské stránky. Pokud takový web provozujete, zvažte upgrade na spravovaného hostitele WordPress, který má zkušenosti s řešením těchto typů problémů s výkonem.

Pokud stále bojujete s vysokou admin-ajax.php použití na vašem webu WordPress, dejte nám vědět v sekci komentářů.

Související články

0 Komentáře
Vložené zpětné vazby
Zobrazit všechny komentáře
Tlačítko Nahoru