A WordPress Heartbeat API korlátozása azt jelenti, hogy a WordPress adminisztrációs felületén háttérben futó admin-ajax.php kérések gyakoriságát csökkentjük, ezzel mérsékelve a CPU terhelését. Ez különösen fontos megosztott tárhelyeken, nagy forgalmú WooCommerce webáruházakban és több szerző által kezelt blogokban, ahol a Heartbeat API akár 15-60 másodpercenként is képes kéréseket küldeni a szerver felé; ez fölösleges CPU-terhelést, lassú adminisztrációs felületet és erőforrás-korlátozási figyelmeztetéseket eredményezhet. A megoldás nem az API teljes kikapcsolása, hanem az egyes oldalakra szabott 60-120 másodperces időközök alkalmazása, valamint a használatának csak a legszükségesebb helyeken történő engedélyezése, majd a hatás mérésével a tárhely kezelőfelületén.
Ebben az útmutatóban részletesen bemutatjuk, hogy mi is az a Heartbeat API, mikor okozhat problémát, milyen biztonságos beállítások léteznek, és hogyan tudja lépésről lépésre optimalizálni WordPress oldalának CPU-használatát. Célunk, hogy az automatikus mentés és az ülésszinkronizáció hasznos funkcióit megőrizzük, miközben csökkentjük a felesleges háttérforgalmat. Ha az Ön weboldalán gyakran előfordul 508 Resource Limit, 503 Service Unavailable hiba, vagy lassú a WordPress adminisztrációs felület, akkor ezek a beállítások az első, amit érdemes átnézni és optimalizálni.
Mi az a WordPress Heartbeat API?
A WordPress Heartbeat API egy olyan mechanizmus, amely a böngésző és a szerver között rendszeres időközönként kommunikál. Ez a kommunikáció általában a /wp-admin/admin-ajax.php fájlon keresztül történik. Ennek révén a WordPress például automatikusan menti a szerkesztett tartalmat, értesíti, ha egy másik felhasználó is szerkeszti ugyanazt a bejegyzést, ellenőrzi az aktív munkamenetek érvényességét, illetve bizonyos bővítmények valós idejű értesítéseit kezeli.
Vegyünk egy egyszerű példát: miközben egy szerkesztő dolgozik egy bejegyzés szerkesztőfelületén, a WordPress rendszeresen küld kisebb kéréseket a szervernek, hogy megakadályozza a tartalom elvesztését. Egy ilyen kérés önmagában nem túl megterhelő, azonban ha egy időben például 8 szerkesztő, 2 adminisztrátor és egy WooCommerce kezelőpanelt használó csapat van jelen, akkor a kérésmennyiség gyorsan megsokszorozódik. 10 aktív adminisztrációs munkamenet óránként akár 1200 Heartbeat API kéréshez is vezethet 30 másodperces időközönként. Ha ehhez még bővítmények is további feldolgozást adnak hozzá, a CPU-használat várhatóan jelentősen megugrik.
Ezért a Heartbeat API önmagában nem probléma, csak ha túl gyakran, szükségtelenül, vagy erőforrásigényes bővítményekkel együtt használják. Egy jól karbantartott weboldalon az API aktív marad, de a kérésgyakoriság szabályozott.
Miért növeli a CPU terhelést a Heartbeat API?
A CPU terhelés azt mutatja meg, mennyi számítási erőforrást használ fel a szerver a PHP folyamatok futtatásához. Mivel a WordPress dinamikus tartalomkezelő rendszer, minden PHP kérésnél a téma, bővítmények, adatbázis és a WordPress magja is dolgozik valamennyit. A Heartbeat API kérései bár kicsik, de minden alkalommal elindítanak egy PHP folyamatot.
Leggyakoribb okai a megnövekedett CPU használatnak:
- Túl sűrű kérésgyakoriság: Egyes felületeken a Heartbeat akár 15 másodpercenként is kérdezhet, ami egyetlen felhasználónál óránként 240 kérést jelent.
- Több megnyitott böngészőfül: Ha valaki négy különböző fülön használja a WordPress admin felületet, mindegyik külön Heartbeat forgalmat generál.
- Erőforrás-igényes bővítmények: Biztonsági, statisztikai, mentési, oldalépítő és WooCommerce bővítmények extra feldolgozást adhatnak a Heartbeat kéréshez.
- Alacsony erőforrású tárhelyek: Szűk CPU limitű csomagoknál a háttérben futó apró kérések is könnyen elérhetik a korlátokat.
- Bot- és valódi felhasználói forgalom egyidejű jelenléte: Az előtérben érkező látogatói forgalom és a háttérben futó admin kérés ugyanazokat az erőforrásokat használja.
Ha például az admin-ajax.php elérések gyakran ismétlődnek az access log fájlban, akkor érdemes részletesen megvizsgálni a Heartbeat forgalmat. A Hostragons infrastruktúráján elérhető erőforrás-használati grafikonok segítenek nyomon követni a CPU ingadozásokat, és ha szükséges, az Ön oldalának megfelelőbb tárhelycsomagot választhat a WordPress hosting kínálatból.
Jó ötlet-e teljesen letiltani a Heartbeat API-t?
Általánosságban: nem, a legtöbb weboldal esetében nem ajánlott teljesen kikapcsolni. A Heartbeat API letiltása rövid távon csökkentheti a CPU terhelést, de megszűnhet az automatikus mentés, a tartalomzár, az ülések frissítése és bizonyos bővítmény értesítések működése. Különösen több szerzős blogoknál az egyidejű szerkesztés megakadályozásának hiánya adatvesztéshez vezethet.
Egy biztonságosabb megoldás, ha az API-t csak a legszükségesebb helyeken engedélyezzük, és ott is meghosszabbítjuk a kérésközöket. Például a bejegyzés szerkesztőfelületen 60 másodperc, az adminisztrációs panelen 120 másodperc, az előtérben pedig teljes kikapcsolás ideális lehet egy átlagos cég számára. WooCommerce áruházaknál viszont a rendeléskezelő és készletmenedzsment felületeken különösen alapos tesztelés ajánlott.
Javasolt Heartbeat API beállítások táblázatban
| Felhasználási eset | Ajánlott beállítás | Várható hatás | Figyelmeztetés |
|---|---|---|---|
| Egy szerzős blog | Admin 120 mp, szerkesztő 60 mp, előtér kikapcsolva | Admin-ajax kérések jelentős csökkenése | Automatikus mentés működésének ellenőrzése |
| Több szerzős tartalomoldal | Szerkesztő 60 mp, admin 90-120 mp | CPU terhelés csökken, tartalomzár megmarad | Szerzők nyitott füleinek figyelése |
| WooCommerce webáruház | Admin 60-90 mp, előtér óvatos kikapcsolás | Admin panel terhelése csökken | Kosár, fizetés és készlet bővítmények tesztelése |
| Vállalati bemutatkozó oldal | Admin 120 mp, előtér kikapcsolva | Legbiztonságosabb terheléscsökkentés | Űrlapok és biztonsági bővítmények ellenőrzése |
| Erőforrás-korlát figyelmeztetéseket kapó oldal | Először 60 mp, majd 120 mp teszt | CPU csúcsok mérséklődhetnek | Logok és tárhely grafikonok monitorozása |
Ez a táblázat kiindulópontként szolgál. A legjobb beállítás a látogatók száma, bővítmények összetétele, téma komplexitása és a tárhely erőforrásaitól függ. Mérés nélkül végzett változtatások olykor elfedhetik, de nem oldják meg a CPU problémákat.
Hogyan lehet korlátozni a WordPress Heartbeat API-t?
A Heartbeat API korlátozására három praktikus módszer létezik: bővítmény használata, kódrészlet beillesztése a témába, vagy teljesítménybővítmények beépített beállításainak alkalmazása. Ha kevés a technikai tapasztalata, akkor a bővítményes megoldás a legegyszerűbb és legbiztonságosabb. Haladó fejlesztők pedig egy kis kóddal finomhangolhatják a beállításokat.
1. módszer: Heartbeat Control bővítmény használata
A legegyszerűbb megoldás, ha egy erre készült bővítményt telepít, amely lehetővé teszi a Heartbeat forgalom szabályozását. A WP Rocket által kínált Heartbeat Control vagy más megbízható alternatívák segítségével külön szabályokat állíthat be az admin panel, a szerkesztő és az előtér oldalaira.
Lépések:
- Nyissa meg a WordPress adminisztrációs felületén az Bővítmények > Új hozzáadása menüt.
- Keressen rá a Heartbeat Control névre, és telepítse egy megbízható, frissített bővítményt.
- Aktiválás után lépjen be a bővítmény beállítási oldalára.
- Állítsa az admin felület vagy dashboard kérésgyakoriságát 60 vagy 120 másodpercre.
- A bejegyzés szerkesztőben válassza inkább a 60 másodperces időközt, ne kapcsolja ki teljesen.
- Az előtéri Heartbeat-et kapcsolja ki, vagy állítsa a leghosszabb időközre.
- Mentse el a beállításokat, majd 24 órán keresztül figyelje a CPU terhelési grafikont.
Ennek a módszernek az előnye, hogy gyorsan visszavonható. Ha gond adódik, egyszerűen deaktiválhatja a bővítményt, és visszaáll az alapértelmezett WordPress működés. Hátránya, hogy újabb bővítményt telepít a weboldalra, ami növelheti a bővítménylistát. Ha ez problémát jelent, érdemes inkább kóddal módosítani.
2. módszer: Heartbeat frekvencia módosítása a functions.php fájlban
Ha szeretné kézzel szabályozni a Heartbeat API működését, akkor a módosítást ne közvetlenül az aktuális témája functions.php fájljában végezze, hanem inkább egy gyermek témában (child theme) vagy egy egyedi kis bővítményben, így megmaradnak a beállítások a téma frissítésekor is.
Az alábbi példa 60 másodpercre állítja a Heartbeat kérésközt:
add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }
Ez a kód az alapértelmezett, általában rövidebb időközt 60 másodpercre növeli, így elméletileg akár 75%-kal is csökkentheti a Heartbeat kérések számát. Például öt admin felhasználó esetén óránként kb. 1200 kérés helyett csak 300 keletkezik. A tényleges megtakarítás attól függ, hogy a bővítmények mennyi extra feladatot rendelnek a Heartbeat eseményekhez.
Ha még szigorúbb beállítást szeretne, kikapcsolhatja a Heartbeat-et teljesen az előtérben, miközben az admin felületen aktív marad:
add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }
Ez a kód letiltja a Heartbeat scriptet az előtéri oldalakon. Fontos azonban, hogy ez az opció gondos tesztelést igényel, különösen ha az oldal használ élő értesítéseket, kosárfrissítést vagy frontend szerkesztőt. WooCommerce fizetés, kosár és fiókoldalak esetén, ha problémát tapasztal, inkább oldalankénti szabályozást alkalmazzon bővítménnyel.
3. módszer: WP Rocket vagy más teljesítménybővítmények beállításai
Sok népszerű cache és teljesítménybővítmény kínál beépített Heartbeat vezérlést. Például a WP Rocket-ben külön fülön állíthatja be az admin panel, a bejegyzésszerkesztő és az előtér különböző Heartbeat szintjeit. Ez a megoldás praktikus azoknak, akik már használják ezeket a bővítményeket, így nem kell plusz komponenst telepíteni.
Figyeljen arra, hogy ne kapcsoljon be egyszerre két külön Heartbeat szabályozó modult, mert ez ütközésekhez és váratlan működéshez vezethet. A WordPress optimalizálás alapszabálya: használjon egy megbízható eszközt egy feladatra, mérje az eredményt, majd ha szükséges, módosítson tovább.
Hogyan mérhető a CPU terhelés és hogyan találjuk meg a megfelelő beállítást?
Mielőtt és miután módosítja a Heartbeat beállításokat, érdemes adatokat gyűjteni a változások hatásáról, ez az optimalizálás egyik legfontosabb lépése. Nem elég, ha csak azt érzi, gyorsabb lett az admin felület; a CPU használati grafikonok, PHP folyamatok száma, access logok és hibajelentések együtt adnak teljes képet.
Ajánlott tesztmenet:
- Kezdjen alapméréssel: Rögzítse a 24 órás CPU és memóriahasználati adatokat a módosítás előtt.
- Vizsgálja meg az access logot: Ellenőrizze az
admin-ajax.phpkérések óránkénti mennyiségét. - Alkalmazza az első beállítást: Növelje a Heartbeat időközt 60 másodpercre, az előtért kapcsolja ki.
- Várjon 24-48 órát: Hasonló látogatói forgalomnál figyelje a CPU ingadozásokat.
- Próbálja ki a 120 másodperces beállítást is: Különösen nagyobb vállalati oldalakon a hosszabb időköz nem okoz problémát.
- Tesztelje a kritikus funkciókat: Ellenőrizze az automatikus mentéseket, WooCommerce kosarat, rendeléskezelést és felhasználói folyamatokat.
Például egy vállalati WordPress admin panel nyitva tartásakor a CPU terhelése akár 80-90%-ra is felmehet. Ha a Heartbeat időközt 15 másodpercről 60 másodpercre növeli, a CPU csúcsok akár 20-40%-kal is csökkenhetnek. Ha viszont az oldal egy időben egy erőforrás-igényes mentési bővítményt is futtat, akkor önmagában a Heartbeat korlátozás nem lesz elegendő. Ilyenkor WordPress sebesség optimalizálás és Hosting erőforrás használat témákat is érdemes párhuzamosan kezelni.
Mindig a Heartbeat API okozza az admin-ajax.php terhelést?

Nem feltétlenül. A admin-ajax.php számos WordPress funkció és bővítmény által használt központi végpont. A Heartbeat API csak egy ezek közül. Más példák: űrlapok, szűrők, élő keresés, biztonsági vizsgálatok, e-kereskedelmi kosárfrissítések és témák egyedi funkciói is használhatják ezt a fájlt.
Ezért nem szabad kizárólag az admin-ajax.php kérések alapján azonnal Heartbeat-et tiltani. A böngésző fejlesztői eszközeinek Hálózat (Network) fülén ellenőrizheti, hogy a kérés payload részében az action=heartbeat szerepel-e. Ha nem, akkor a terhelést más bővítmény vagy funkció okozhatja.
A szerver oldali access log elemzéssel is meghatározható, mely IP-címről, milyen időpontban és milyen hivatkozó oldalról érkeznek a kérések. Ha például botforgalom okozza a magas terhelést, akkor inkább tűzfal, rate limit vagy botvédelem beállítása a helyes megoldás. Az SSL tanúsítvány megfelelő konfigurálása és rendszeres frissítése is fontos a biztonság és a teljesítmény szempontjából, ezt megtalálhatja a SSL tanúsítvány cikkünkben.
Gyakori hibák Heartbeat korlátozás során
Teljesítményproblémák megoldásakor gyors eredményt keresve sokan elkövetnek olyan hibákat, amelyek hosszú távon ronthatják az oldal működését. Különösen élő weboldalakon ezekre figyeljen:
- Az API mindenhol teljes kikapcsolása: Ez megszüntetheti az automatikus mentést és a tartalomzárat.
- Kódok éles oldalon történő tesztelés nélküli beillesztése: Szintaktikai hibák fehér képernyőt okozhatnak.
- WooCommerce fizetési folyamat ellenőrzésének elmulasztása: A kosár és rendelés működése sérülhet.
- Több teljesítménybővítmény egyidejű használata ugyanarra a feladatra: Ütközések nehezítik a hibakeresést.
- CPU problémák kizárólag Heartbeat-re való fogása: Más háttérfolyamatok vagy botforgalom is okozhatja a terhelést.
- Biztonsági mentés hiánya módosítás előtt: Egy apró hiba hosszú helyreállítási időt eredményezhet.
Módosítások előtt mindig készítsen biztonsági mentést fájlokról és adatbázisról. Ha szeretné egy helyen kezelni domainjeit, tárhelyeit és weboldalait, akkor a Domain ellenőrzés és Webtárhely szolgáltatásaink segítségével könnyen átláthatóvá teheti infrastruktúráját.
További lépések a CPU terhelés csökkentésére a Heartbeat API-n túl
Bár a Heartbeat API korlátozása fontos lépés, a WordPress CPU-optimalizációja összetettebb folyamat. További ajánlott intézkedések:
Cache használata
A lapcache-elés jelentősen csökkenti a PHP és adatbázis terhelést a látogatók kiszolgálásakor. Ha a webhelyen statikus cache aktív, a WordPress magjának nem kell minden alkalommal újra lefutnia, ami az egyik leghatékonyabb módja a CPU terhelés csökkentésének.
Felesleges bővítmények eltávolítása
Még a használaton kívüli bővítmények is hagyhatnak terhelést az adatbázisban vagy a háttérben. Ne csak a bővítmények számát, hanem azok futási költségét is vegye figyelembe. Rendszeresen ellenőrizze különösen a statisztikai, biztonsági, oldalépítő és mentési bővítményeket.
WP-Cron optimalizálása
A WordPress beépített cron rendszere minden látogatáskor lefut, ami nagy forgalmú oldalakon megnövelheti a CPU használatot. Jobb megoldás, ha a rendszer cron-t használ az ütemezett feladatok futtatására, így a háttérmunka szabályozottabbá válik. Ez a Heartbeat API-tól független, de hasonlóan fontos lépés a terhelés csökkentésében.
Adatbázis karbantartás
A bejegyzés verziók, ideiglenes adatok, spam kommentek és elavult átmeneti bejegyzések feleslegesen növelhetik az adatbázis méretét. Rendszeres tisztítással gyorsíthatóak a lekérdezések. WooCommerce oldalakon különösen fontos az egyre növekvő rendelés- és munkamenet-táblák optimalizálása.
PHP verzió és tárhely erőforrások
A legfrissebb PHP verziók (8.x) általában jobb teljesítményt nyújtanak. Egy megfelelően optimalizált téma és bővítmény kompatibilis PHP 8.x alatt alacsonyabb CPU használatot eredményezhet. Mindemellett a szoftveres optimalizációt mindig támogassa megbízható, gyors tárhelyszolgáltató infrastruktúra. Ha növekszik a forgalom, érdemes lehet megfontolni VPS szerver vagy skálázható WordPress tárhely használatát.
Biztonságos lépések Heartbeat API korlátozásához
Élő WordPress oldalon a következő sorrend betartása biztonságos és mérhető eredményt hoz:
- Készítsen teljes biztonsági mentést.
- Rögzítse a jelenlegi CPU, memória és admin-ajax.php forgalmi adatokat.
- Győződjön meg róla, hogy a Heartbeat valóban magas terhelést okoz.
- Kapcsolja ki vagy maximalizálja az előtér Heartbeat-et.
- A szerkesztőfelületen ne állítson 60 másodpercnél rövidebb időköznél.
- Az admin felületen próbálja ki a 90-120 másodperces intervallumokat.
- Manuálisan tesztelje a WooCommerce, felhasználói és űrlap funkciókat.
- Használjon 24-48 órás monitorozást a változások után.
- Ha nem elégséges az eredmény, vizsgálja át a bővítményeket, témát és cron folyamatokat.
Ez az adatvezérelt megközelítés biztosítja, hogy ne csak egyetlen beállításra hagyatkozzon, hanem a teljes rendszer optimalizálását végezze el. Egy profi WordPress karbantartás nem csupán a CPU csökkentését célozza, hanem a stabilitás és a felhasználói élmény fenntartását is.
Összegzés: Ne tiltsa le, hanem okosan szabályozza a Heartbeat API-t
A WordPress Heartbeat API korlátozása hatékony módja a CPU terhelés mérséklésének, az admin panel gördülékenyebbé tételének és a tárhely-erőforrások jobb kihasználásának. A legjobb gyakorlat az, ha az API-t nem teljesen kapcsolja ki, hanem az előtérben korlátozza, a szerkesztői felületen biztonságos időközt hagy, és az admin panelen 60-120 másodperc között tesztel.
Ha a CPU problémák továbbra is fennállnak, akkor a Heartbeat csak egy kiindulópont. Fontos figyelembe venni a cache, bővítményterhelés, WP-Cron, adatbázis és tárhelycsomag együttes hatását. Ha stabilabb környezetet keres WordPress oldalának, tekintse meg a Hostragons kínálatában elérhető WordPress hosting megoldásokat, és válassza a forrásigényeihez legmegfelelőbb csomagot.
GYIK – Gyakran Ismételt Kérdések
Teljesen ki kell kapcsolni a WordPress Heartbeat API-t?
Általában nem javasolt. Az automatikus mentés, tartalomzár és munkamenet-ellenőrzés funkciók károsodhatnak. Biztonságosabb, ha az előtérben letiltja, a szerkesztőben és admin felületen pedig 60-120 másodperces időközöket állít be.
Mennyivel csökkenti a CPU terhelést a Heartbeat API korlátozása?
Ez az oldal felépítésétől függ. Egy 15 másodperces időközről 60 másodpercre való váltás elméletileg akár 75%-kal csökkentheti a Heartbeat kérések számát. A tényleges CPU megtakarítás a bővítmények számától és erőforrásigényétől, valamint a látogatók számától függ.
Az admin-ajax.php magas forgalma mindig Heartbeat API okozta?
Nem. Az admin-ajax.php más funkciók és bővítmények által is használható. A böngésző fejlesztői eszközök Network fülén ellenőrizheti, hogy a kérés action=heartbeat-et tartalmaz-e. Ha nem, más forrásból ered a terhelés.
Biztonságos a Heartbeat korlátozása WooCommerce oldalakon?
Igen, de alapos teszt szükséges. Ellenőrizni kell a kosár, fizetés, rendeléskezelés, készletfrissítés és felhasználói fiók működését. Általában jobb a teljes tiltás helyett a hosszabb időköz beállítása.
Mennyi ideig érdemes tesztelni a Heartbeat beállítások után?
Legalább 24-48 órás tesztelés ajánlott. Ebben az időszakban figyelje a CPU használatot, PHP folyamatokat, admin-ajax.php kéréseket és a kritikus oldalfunkciókat. Ha a forgalom hétköznap és hétvégén is eltér, érdemes hosszabb ideig mérni.