Máte web na WordPressu a chcete ho zrychlit? Klíčem k tomu může být správné nastavení WP-Cron, vestavěné funkce WordPressu, která řídí naplánované úlohy jako jsou aktualizace, zálohování, nebo odesílání e-mailů. Nicméně, i když WP-Cron přináší nesporné výhody, jeho základní neoptimalizované nastavení může vést k pomalejšímu načítání stránekzvýšené zátěži serveru. To se děje především proto, že WP-Cron je ve výchozím nastavení spouštěn při každé návštěvě vašeho webu. V důsledku toho dochází k zbytečnému zatěžování serveru, zejména na webech s vysokou návštěvností.

Co je WP-Cron a k čemu slouží?

WP-Cron je soubor (wp-cron.php) odpovědný za naplánované úlohy na vašem webu. Například pokud máte naplánovaný příspěvek na středu v 9:30, WP-Cron se postará o to, aby byl publikován co nejblíže tomuto času. Funguje nejen pro základní funkce WordPressu, ale také pro pluginy, které používají WP-Cron ke spouštění svých vlastních naplánovaných úloh, jako je například automatické odesílání e-mailů nebo zálohování databáze.

Nicméně WP-Cron má jednu zásadní nevýhodu: funguje pouze tehdy, když někdo navštíví váš web (na veřejné části nebo v administraci). To znamená, že pokud máte web s nízkou návštěvností, některé naplánované úlohy se nemusí spustit včas. Naopak, pokud má váš web vysokou návštěvnost, WP-Cron se bude spouštět často, což může negativně ovlivnit výkonrychlost webu.

Vypnutí WP-Cron a přechod na serverový cron

Pro lepší výkon webu doporučuji deaktivovat výchozí nastavení WP-Cronu a přejít na nastavení cron úloh přímo na úrovni serveru. Tímto způsobem se naplánované úlohy nespustí při každé návštěvě webu, ale pouze v předem definovaných intervalech, což poskytuje větší kontrolu a zamezuje zbytečnému zatěžování serveru. Tento přístup pomáhá udržet rychlost načítání stránek a celkový výkon webu na optimální úrovni.

1. Deaktivace WP-Cronu ve WordPressu: 

  • Přihlaste se na server přes FTP nebo SSH
  • V kořenovém adresáři najděte soubor wp-config.php a otevřete jej k úpravám.
  • Přidejte následující kód pro deaktivaci WP-Cronu:
PHP
define('DISABLE_WP_CRON', true);
Co je to WP Cron a proč byste ho měli zakázat pro vyšší výkon | BitSpecter

Tímto krokem vypnete výchozí chování WP-Cronu, aby se nespouštěl při každé návštěvě vašeho webu.

2. Nastavte CRON u poskytovatele hostingu: 

Následně musíte nastavit cron úlohy přímo na vašem serveru. Tento proces se může lišit v závislosti na konkrétním poskytovateli hostingu.

  • Přihlaste se do kontrolního panelu vašeho hostingu (např.: Wedos, Websupport, Active24…)
  • Najděte sekci pro správu CRON úloh
  • Vytvořte novou CRON úlohu
  • Nastavte časování úlohy
  • Zadejte příkaz pro spuštění úlohy (nezapomeňte změnit název domény 😉):
https://bitspecter.com/wp-cron.php?doing_wp_cron

Případně můžete nastavit CRON pomocí příkazu:

Bash
#CRON pomocí Wget 
wget -q -O - https://bitspecter.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1 

# CRON pomocí Curl 
curl --silent https://bitspecter.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Jaký interval CRONu zvolit?

Pro většinu webů (firemní prezentace, blogy) je ideální nastavit interval pro spouštění serverového cron každou hodinu, což poskytuje dostatek času pro provádění úloh, jako jsou zálohování nebo odesílání e-mailů, bez zbytečného zatížení serveru.

Pro větší weby a e-shopy doporučuji nastavit interval CRONu na 5 min, nebo dokonce 1 min dle potřeby.

Jak ověřit správné nastavení CRONu ve WordPressu

Na závěr je nutné zkontrolovat správné nastavení CRON úlohy. Doporučuji plugin WP-Cron Status Checker, který vám nabídne přehled o všech naplánovaných úlohách ve vašem WordPress systému a jejich aktuálním stavu.

Možné problémy při nesprávném nastavení CRONu

Pokud cron není správně nastaven, může to způsobit několik problémů, které negativně ovlivní výkon a stabilitu webu. Příliš časté spouštění cron úloh (např. každou minutu) může vést k přetížení serveru, což způsobí zpomalení načítání stránek a celkově sníží výkonnost webu. Na druhou stranu, pokud jsou intervaly nastaveny příliš dlouho (např. jednou za několik hodin), úlohy se mohou hromadit a spustit všechny najednou, což může také přetížit server.

Navíc, při nesprávné konfiguraci může dojít k tomu, že některé úlohy vůbec neproběhnou nebo se provádí v nevhodnou dobu, což ovlivní klíčové procesy, jako jsou zálohování, aktualizace nebo odesílání e-mailových notifikací. Správné nastavení a optimalizace cron úloh je tedy nezbytné pro udržení stabilního a rychlého webu.

Závěr

WP-Cron je užitečný nástroj pro správu naplánovaných úloh, ale jeho výchozí nastavení nemusí být ideální pro všechny weby. Pokud chcete dosáhnout lepšího výkonu a spolehlivosti, doporučujeme přejít na serverový cron.

Je nutné vždy deaktivovat WP-Cron a přejít na serverový cron?

Ne vždy. Pro menší weby nebo weby s nízkou návštěvností může WP-Cron ve výchozím nastavení fungovat bez problémů. U webů s vysokou návštěvností nebo komplexními úlohami však serverový cron zajistí lepší výkon a stabilitu.

Jaký je optimální interval pro nastavení serverového cronu?

Pro firemní weby a blogy doporučujeme interval každou hodinu. Pro weby s vysokou návštěvností nebo e-shopy, které často provádějí zálohování nebo odesílají e-maily, je vhodnější interval 5 minut, případně 1 minuta, pokud je to nezbytné.

Může nastavení WP-Cron zlepšit SEO mého webu?

Ano, optimalizace WP-Cron může zlepšit načítání stránek a jejich stabilitu, což jsou důležité faktory pro SEO. Rychlejší a stabilnější weby mají lepší šanci umístit se výše ve vyhledávačích.