Omezení WordPress Heartbeat API znamená snížení frekvence požadavků na admin-ajax.php, které na pozadí běží v administraci WordPressu, a tím snížení zatížení CPU. Zejména na sdílených hostinzích, u rozsáhlých WooCommerce obchodů nebo vícero autorových blogů může Heartbeat API odesílat požadavky každých 15 až 60 sekund; to vede k nadměrnému využití CPU, zpomalení administrace a varováním o překročení limitů zdrojů. Ideálním řešením není API úplně vypnout, ale nastavit intervaly na 60–120 sekund podle stránky, ponechat ji aktivní jen tam, kde je potřeba, a výsledky sledovat přes hostingový panel.
V tomto průvodci si vysvětlíme, co WordPress Heartbeat API dělá, kdy může způsobovat problémy, jaké nastavení je bezpečné a jak prakticky snížit zatížení CPU na vašem WordPressu krok za krokem. Cílem je omezit zbytečný provoz na pozadí, aniž byste přišli o užitečné funkce, jako je automatické ukládání nebo kontrola relace. Pokud váš web často hlásí chyby 508 Resource Limit, 503 Service Unavailable nebo máte pomalou administraci, jsou tyto úpravy jedním z prvních kroků k optimalizaci.
Co je WordPress Heartbeat API?
WordPress Heartbeat API je mechanismus, který pravidelně komunikuje mezi prohlížečem a serverem. Tato komunikace probíhá většinou přes soubor /wp-admin/admin-ajax.php. Díky tomu WordPress například automaticky ukládá rozpracované příspěvky, upozorňuje na editaci stejného příspěvku jiným uživatelem, kontroluje platnost přihlášení nebo spouští notifikace některých pluginů v reálném čase.
Příklad: když editor pracuje v editačním okně, WordPress pravidelně odesílá malý požadavek na server, aby se zabránilo ztrátě rozpracované verze. Jeden takový požadavek sám o sobě nezatíží server výrazně. Pokud však současně pracuje 8 editorů, 2 administrátoři a tým má otevřený WooCommerce panel, počet požadavků rychle narůstá. Deset otevřených administrativních relací s intervalem 30 sekund může znamenat až 1200 Heartbeat požadavků za hodinu. Pokud k požadavkům přidávají data i pluginy, může být zatížení CPU výrazně vyšší.
Heartbeat API tedy není samo o sobě problém, ale při nesprávné konfiguraci, na nevhodných stránkách nebo v kombinaci s náročnými pluginy může způsobovat problémy s výkonem. Na dobře nastaveném webu API zůstává aktivní, ale s regulovanou frekvencí.
Proč Heartbeat API zvyšuje zatížení CPU?
Zatížení CPU znamená množství výpočetního výkonu serveru potřebného pro zpracování PHP požadavků. WordPress funguje jako dynamický systém, kde se při každém požadavku spouští téma, pluginy, databáze a jádro WordPressu. I když jsou Heartbeat požadavky malé, aktivují PHP procesy a spotřebovávají CPU.
Nejčastější příčiny nárůstu zatížení jsou:
- Příliš krátké intervaly: Na některých stránkách může Heartbeat pracovat i po 15 sekundách, což znamená až 240 požadavků za hodinu na jednoho uživatele.
- Více otevřených záložek: Uživatelský účet s otevřenými 4 záložkami administrace generuje Heartbeat provoz z každé z nich.
- Náročné pluginy: Bezpečnostní, statistické, zálohovací, tvůrci stránek a WooCommerce pluginy mohou k požadavkům přidávat další zátěž.
- Nízkovýkonný hosting: U levnějších balíčků s omezeným výkonem může i malý provoz v pozadí vyčerpat dostupné zdroje.
- Současný provoz od botů i uživatelů: Frontendová i administrativní komunikace využívají stejné zdroje serveru.
Pokud v přístupových logách serveru vidíte opakované volání admin-ajax.php, je vhodné zkoumat i Heartbeat provoz. Na Hostragons můžete sledovat grafy využití zdrojů a podle potřeby přejít na některý z WordPress hosting tarifů přizpůsobených nárokům vašeho webu.
Je vhodné Heartbeat API úplně vypnout?
Obecná odpověď zní: ne, zcela jej nevypínejte. Kompletní deaktivace může krátkodobě snížit zatížení CPU, ale naruší automatické ukládání příspěvků, zamykání obsahu při editaci nebo obnovu přihlášení. Na vícero autorových blozích může vést k nechtěné ztrátě dat při paralelní úpravě stejného příspěvku.
Bezpečnější přístup je ponechat API aktivní na potřebných místech a prodloužit intervaly. Například v editoru nastavit 60 sekund, v administraci 120 sekund a na frontendu ho ideálně vypnout. Pro WooCommerce je třeba testovat zejména na stránkách objednávek nebo správy skladu, kde nesmí dojít ke kolizím.
Tabulka doporučených nastavení Heartbeat API
| Scénář | Doporučené nastavení | Očekávaný efekt | Na co dát pozor |
|---|---|---|---|
| Jednoautorový blog | Admin 120 s, editor 60 s, frontend vypnutý | Výrazné snížení admin-ajax požadavků | Otestovat automatické ukládání |
| Víceautorový web | Editor 60 s, admin 90–120 s | Snížení CPU, zachování zamykání obsahu | Monitorovat počet otevřených záložek autorů |
| WooCommerce obchod | Admin 60–90 s, frontend opatrně vypnout | Snížení zátěže v administraci | Testovat funkčnost košíku, plateb a skladu |
| Firemní prezentační web | Admin 120 s, frontend vypnutý | Bezpečné snížení zatížení | Zkontrolovat formuláře a bezpečnostní pluginy |
| Web s upozorněním na limit zdrojů | Nejprve 60 s, pak 120 s | Snížení výkyvů CPU | Nutné sledovat logy a grafy hostingu |
Tato tabulka slouží jako výchozí bod. Nejlepší nastavení závisí na počtu uživatelů, struktuře pluginů, náročnosti tématu a možnostech hostingu. Bez pravidelného měření může být úprava pouze dočasným maskováním problému.
Jak omezit Heartbeat API v praxi?
Existují tři praktické způsoby, jak frekvenci Heartbeat API snížit: použití pluginu, vložení kódu do functions.php nebo využití nastavení výkonových pluginů. Pokud nemáte technické zkušenosti, je nejbezpečnější použít plugin. Pokud programujete, můžete aplikovat drobné úpravy kódu pro větší kontrolu.
1. Metoda: Omezení pomocí pluginu Heartbeat Control
Nejjednodušší cesta je využít plugin vyvinutý přímo pro správu Heartbeat provozu. Například Heartbeat Control od WP Rocket nebo jiný spolehlivý plugin umožňuje nastavit rozdílné intervaly pro různé části administrace.
Postup:
- V administraci WordPress přejděte na Pluginy > Přidat nový.
- Vyhledejte Heartbeat Control a nainstalujte aktuální a důvěryhodný plugin.
- Po aktivaci otevřete nastavení pluginu.
- Nastavte interval pro dashboard či administraci na 60 nebo 120 sekund.
- Pro editor příspěvků zvolte interval 60 sekund místo úplného vypnutí.
- Pro frontend Heartbeat deaktivujte nebo nastavte nejdelší interval.
- Uložte změny a sledujte během 24 hodin zatížení CPU.
Výhodou je snadná a rychlá změna, kterou lze kdykoli vrátit zpět deaktivací pluginu. Nevýhodou je přidání dalšího pluginu do instalace. Pokud preferujete méně pluginů, zvolte úpravu kódu.
2. Metoda: Úprava intervalu Heartbeat v souboru functions.php
Chcete-li upravit interval pomocí kódu, přidejte změnu raději do functions.php vašeho child theme nebo do malého vlastního pluginu, aby nastavení vydrželo i po aktualizaci tématu.
Ukázka, jak prodloužit interval na 60 sekund:
add_filter('heartbeat_settings', 'custom_heartbeat_interval'); function custom_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }
Tento kód změní výchozí interval z 15 sekund na 60, což může snížit počet požadavků až o 75 %. Například místo 1200 požadavků za hodinu u 5 aktivních adminů bude jen cca 300. Skutečný efekt závisí na tom, jak moc k požadavkům přidávají data pluginy.
Pro výraznější omezení můžete Heartbeat na frontendu úplně vypnout a ponechat aktivní jen administraci:
add_action('init', 'disable_heartbeat_on_frontend', 1); function disable_heartbeat_on_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }
Tento kód deaktivuje Heartbeat skript na frontendu. Pokud váš web používá členství, live notifikace, košík nebo frontend editaci, je nutné tuto změnu důkladně otestovat. V případě problémů s WooCommerce platbami a košíkem je bezpečnější používat plugin s možností nastavení podle stránek.
3. Metoda: Správa Heartbeat přes WP Rocket nebo jiné výkonové pluginy
Některé cache a optimalizační pluginy, například WP Rocket, mají vlastní nastavení Heartbeat API. Můžete zde nastavit různé úrovně pro administraci, editor i frontend. Tato metoda eliminuje potřebu dalšího pluginu a zjednodušuje správu výkonu.
Dávejte pozor, abyste nespustili současně více modulů, které Heartbeat kontrolují (např. WP Rocket i samostatný Heartbeat Control plugin), protože by to mohlo způsobit konflikty nebo nestandardní chování. Základní pravidlo optimalizace WordPressu je: používejte vždy jen jeden nástroj na stejnou úlohu, měřte výsledek a až poté přidávejte další změny.
Jak změřit správné nastavení pomocí monitoringu CPU
Než provedete změny a po nich, je nezbytné sledovat využití zdrojů serveru. Pouze subjektivní pocit rychlejší administrace nestačí. Je třeba vyhodnocovat grafy CPU, počet PHP procesů, přístupové logy i chybové záznamy dohromady.
Doporučený testovací plán:
- Pořiďte výchozí měření: 24 hodin zaznamenejte CPU a RAM využití před úpravami.
- Zkontrolujte přístupové logy: Sledujte frekvenci požadavků na
admin-ajax.php. - Implementujte první nastavení: Zvýšte interval Heartbeat na 60 sekund, frontend vypněte.
- Čekejte 24–48 hodin: Srovnejte zatížení při běžném provozu.
- Podle potřeby vyzkoušejte 120 sekund: Dlouhé intervaly bývají vhodné pro větší firemní weby.
- Otestujte klíčové funkce: Automatické ukládání příspěvků, WooCommerce košík, objednávky a uživatelské účty.
Například na firemním WordPress webu, kde CPU dosahuje při otevřené administraci 80–90 %, může změna intervalu z 15 na 60 sekund snížit špičky CPU o 20–40 %. Nicméně pokud zálohovací plugin intenzivně skenuje databázi každou hodinu, samotné omezení Heartbeat nemusí stačit. V takovém případě je potřeba řešit i Optimalizace rychlosti WordPressu a Využití zdrojů hostingu komplexně.
Je admin-ajax.php vždy způsoben Heartbeat API?

Ne vždy. Soubor admin-ajax.php používá mnoho různých funkcí WordPressu. Heartbeat API je jen jedna z nich. Další požadavky mohou generovat například pluginy pro formuláře, filtrování obsahu, živé vyhledávání, bezpečnostní kontroly, aktualizace WooCommerce košíku nebo prvky tématu.
Proto není správné jen podle počtu volání admin-ajax.php hned vypínat Heartbeat. V nástrojích pro vývojáře v prohlížeči (záložka Network) zkontrolujte, zda je v požadavku hodnota action=heartbeat. Pokud je action jiný, problém může způsobovat jiný plugin nebo funkce.
Na straně serveru je možné analyzovat access logy a vyhodnocovat, odkud a kdy požadavky přicházejí, a zda nejsou způsobeny boty. V takových případech je vhodnější nasadit firewall, omezení počtu požadavků (rate limit) nebo ochranu proti botům. Pro bezpečné spojení a lepší výkon nezapomínejte mít aktuální SSL certifikát.
Běžné chyby při omezování Heartbeat API
Při hledání rychlých řešení výkonu mohou některé chyby způsobit horší problémy. Dbejte na následující:
- Vypnout API všude bez výjimky: Způsobí ztrátu funkcionality automatického ukládání a zámků obsahu.
- Přidávat kód bez testování na živém webu: Syntaxová chyba může vést ke "bílému" (prázdnému) displeji.
- Neověřit funkčnost WooCommerce plateb a košíku: Může dojít k narušení objednávkového procesu.
- Současné používání více výkonových pluginů s funkcí Heartbeat: Konflikty znesnadní diagnostiku a měření.
- Připisovat problémy výhradně Heartbeat API: Na vině mohou být i náročné dotazy, botí provoz nebo cron úlohy.
- Provádět změny bez zálohy: V případě chyby se prodlužuje doba obnovy webu.
Než začnete měnit nastavení, vždy si udělejte kompletní zálohu souborů a databáze. Pro přehledné řízení domény, hostingu a webu z jednoho místa můžete využít služby Dotaz na doménu a Web Hosting.
Další kroky ke snížení zatížení CPU mimo Heartbeat API
Omezení Heartbeat je jen jeden krok v komplexní optimalizaci WordPressu. Pro trvalý výkon doporučujeme i následující opatření:
Využití cache
Ukládání statických verzí stránek výrazně snižuje zátěž PHP a databáze při návštěvách. Při zapnutí cache nemusí WordPress při každé návštěvě znovu zpracovávat celý systém, což výrazně šetří CPU.
Odstranění nepotřebných pluginů
I neaktivní pluginy mohou někdy zatěžovat databázi. Sledujte nejen množství pluginů, ale také jejich náročnost. Zvlášť bezpečnostní, statistické, page buildery a zálohovací nástroje pravidelně kontrolujte.
Kontrola WP-Cron
WordPress cron úlohy se spouští při každé návštěvě, což může zvyšovat zátěž. Lepší variantou je nastavit skutečný systémový cron, který běží samostatně a plánuje úlohy pravidelně a efektivně.
Optimalizace databáze
Staré revize, dočasná data, spamové komentáře a přetrvávající transienty mohou databázi zbytečně nafouknout. Pravidelná údržba a čištění zkracuje dobu dotazů a snižuje zátěž.
Aktualizace PHP a hostingové zdroje
Novější verze PHP (8.x) mají lepší výkon a spotřebují méně zdrojů. Používejte kompatibilní téma a pluginy a zajistěte si adekvátní hosting s dostatečným výkonem. Při růstu návštěvnosti zvažte přechod na VPS server nebo škálovatelný WordPress hosting.
Bezpečný postup při omezení Heartbeat API
Při úpravách na živém webu postupujte podle následujícího postupu, abyste minimalizovali rizika a získali měřitelné výsledky:
- Nejdříve vytvořte kompletní zálohu webu.
- Zaznamenejte aktuální využití CPU, RAM a provoz na admin-ajax.php.
- Potvrďte, že Heartbeat API skutečně generuje vysoký provoz.
- Na frontendu Heartbeat vypněte nebo nastavte nejdelší interval.
- V editoru příspěvků nepouštějte interval pod 60 sekund.
- V administraci testujte interval 90–120 sekund.
- Ověřte funkčnost WooCommerce, uživatelských účtů a formulářů.
- Porovnejte využití zdrojů po 24–48 hodinách.
- Pokud není efekt dostatečný, zkoumejte další možné zdroje zatížení (pluginy, cron úlohy).
Tento způsob vám umožní optimalizaci na základě dat, nikoli náhodných úprav. Profesionální správa WordPressu znamená nejen snížit CPU, ale zároveň zachovat stabilitu a kvalitu uživatelského prostředí.
Závěr: Nezavírejte Heartbeat, ale omezujte ho rozumně
Správné omezení WordPress Heartbeat API je efektivní způsob, jak snížit zatížení CPU, zrychlit administraci a efektivněji využívat hostingové zdroje. Nejlepší je API nevypínat úplně, ale na frontendu omezit, v editoru nastavit bezpečný interval a v administraci testovat nastavení mezi 60 a 120 sekundami.
Pokud potíže se zatížením CPU přetrvávají, Heartbeat je pouze jeden z možných faktorů. Komplexně vyhodnoťte i cache, množství pluginů, WP-Cron, stav databáze a hostingový plán. Pro stabilní provoz na Hostragons doporučujeme využít WordPress hosting s možností hladkého rozšíření podle aktuálních potřeb vašeho webu.
Často kladené otázky
Měl bych WordPress Heartbeat API úplně vypnout?
Pro většinu webů se úplné vypnutí nedoporučuje. Funkce jako automatické ukládání, zámek obsahu a správa relace by přestaly fungovat. Bezpečnější je vypnout Heartbeat na frontendu a v administraci či editoru nastavit interval mezi 60 a 120 sekundami.
O kolik lze snížit zatížení CPU omezením Heartbeat?
Záleží na konkrétním webu. Zvýšení intervalu z 15 na 60 sekund může teoreticky snížit počet požadavků o 75 %. Skutečný přínos závisí na počtu uživatelů, použitých pluginech a hostingu.
Je vysoká aktivita admin-ajax.php vždy způsobena Heartbeat API?
Ne. Může ji generovat i jiná funkce, například pluginy pro formuláře, živé vyhledávání, bezpečnostní nástroje nebo WooCommerce. V nástrojích pro vývojáře zkontrolujte, zda požadavek obsahuje action=heartbeat.
Je omezení Heartbeat bezpečné pro WooCommerce?
Ano, pokud je provedeno opatrně. Je důležité testovat funkčnost košíku, plateb, správy objednávek a skladu. Většinou není vhodné Heartbeat úplně vypínat, ale prodloužit interval.
Jak dlouho bych měl Heartbeat po úpravě testovat?
Doporučuje se alespoň 24–48 hodin sledování. Sledujte CPU zatížení, počet PHP procesů, požadavky na admin-ajax.php a důležité funkce webu. Pokud máte výrazně odlišnou návštěvnost přes týden a víkend, prodlužte testování.