WP-Cron w WordPressie wyłączysz przez dodanie fragmentu kodu w pliku wp-config.php. a następnie zastąpisz go cronem systemowym uruchamianym z poziomu serwera. W ten sposób zadania przestają uruchamiać się przy wejściu użytkownika na stronę, a zaczynają działać przewidywalnie, niezależnie od ruchu.

W tym artykule pokażemy jak poprawnie wyłączyć WP-Cron i uruchomić CRON systemowy. Dowiesz się jaki kod dodać do wp-config.php, jak ustawić wywołanie zadania po stronie serwera i jak sprawdzić czy cały mechanizm działa poprawnie.

Z tego artykułu dowiesz się:

WP-Cron. Co to jest?

WP-Cron jest wbudowanym mechanizmem harmonogramu zadań w WordPressie. Jego zadaniem jest uruchamianie zaplanowanych działań, jak np. publikacja wpisów o ustalonej godzinie, wysyłka powiadomień czy czyszczenie danych tymczasowych i aktualizacja wtyczek.

WP-Cron nie uruchamia się samodzielnie według zegara serwera. I to jest główna różnica pomiędzy nim, a cronem systemowym. WordPress sprawdza harmonogram zadań dopiero przy wywołaniu aplikacji, czyli wtedy, gdy ktoś otwiera stronę, panel administracyjny albo inny endpoint oparty o WordPress. Jeśli wykryje zdarzenia oczekujące na wykonanie, uruchamia je w trakcie tego samego procesu.

Do czego służy Wp-Cron?

WP-Cron służy do automatycznego uruchamiania zadań zaplanowanych w WordPressie i we wtyczkach. Dzięki niemu system może sam wykonać określoną akcję bez Twojej ręcznej ingerencji. Od strony technicznej WP-Cron obsługuje zdarzenia zapisanie w wordpressowym harmonogramie. Każde z nich ma określony termin wykonania lub interwał powtarzania. W momencie uruchomienia WordPressa, sprawdzana jest kolejka zadań i ich czas.

W praktyce WP-Cron odpowiada m.in. za:

  • publikację zaplanowanych wpisów,
  • czyszczenie transientów i danych tymczasowych,
  • wysyłkę powiadomień i e-maili,
  • uruchamianie zadań serwisowych wtyczek,
  • importy i synchronizacje danych,
  • generowanie raportów i innych działań cyklicznych.

To wygodne rozwiązanie, bo WordPress może sam zarządzać wieloma procesami w tle. Problem polega jednak na tym, że domyślnie WP-Cron nie działa jak klasyczny cron systemowy. Nie uruchamia się o stałej godzinie z poziomu serwera, ale dopiero wtedy, gdy ktoś odwiedza stronę. To oznacza, że wejście użytkownika może uruchomić nie tylko ładowanie strony, ale też dodatkową pracę w tle. Przy większym ruchu taki model potrafi niepotrzebnie podnosić zużycie CPU i spowalniać działanie WordPressa.

Gdzie znajduję się Wp-Cron?

Plik wp-cron.php, odpowiedzialny za uruchamianie zaplanowanych zadań w WordPressie, znajduje się w katalogu głównym instalacji WordPressa, czyli pod ścieżką:

/wp-cron.php

Do pliku możesz dostać się z poziomu serwera. Jeśli korzystasz z hostingu w cyber_Folks, zaloguj się do panelu, a następnie przejdź do domeny, na jakiej masz zainstalowanego WordPressa. W sekcji Serwer WWW i domeny wybierz Manager plików.

Panel Serwera w cyber_Folks. Manager plików
Panel Serwera w cyber_Folks. Manager plików

W menedżerze plików otwórz katalog public_html. W tym folderze znajdziesz plik wp-config.php. Przejdź do jego edycji, aby dokonać zmian.

Czym jest CRON systemowy i czym różni się od WP-Cron?

CRON systemowy to mechanizm harmonogramu zadań działający po stronie systemu operacyjnego serwera. Jego zadaniem jest uruchamianie wskazanych poleceń w określonym czasie lub w stałych odstępach, na przykład co 5 minut, co godzinę albo codziennie o konkretnej porze. Nie zależy od tego, czy ktoś odwiedza stronę. Działa według zegara serwera, a nie według ruchu użytkowników.

To oznacza, że serwer sam uruchamia zaplanowane zadanie dokładnie wtedy, kiedy ma to zrobić. Jeśli ustawisz wywołanie WordPressa co 5 minut, mechanizm zadziała co 5 minut niezależnie od tego, czy na stronie jest 1000 użytkowników czy nie ma żadnego. To jest największa różnica jakościowa względem WP-Cron.

Kiedy zastosowanie ma WP-Cron?

WP-Cron jest wygodnym rozwiązaniem na prostym hostingu, bo nie wymaga dostępu do konfiguracji serwera. Ma jednak ograniczenie. Zadania nie są wykonywane dokładnie „o czasie”, tylko przy najbliższym wejściu na stronę. Jeśli ruch jest mały, zadania mogą uruchamiać się z opóźnieniem. Jeśli ruch jest duży, mogą dokładać niepotrzebną pracę do requestów użytkowników.

Wp-Cron a CRON systemowy. Różnica

  • CRON systemowy działa jak zegar w serwerowni. Ma ustaloną godzinę i wykonuje zadanie niezależnie od tego, co dzieje się na stronie.
  • WP-Cron działa bardziej jak przypomnienie uruchamiane przy okazji wizyty. Jeśli ruch jest nieregularny, nikt nie odwiedzi strony, zadanie może czekać. Jeśli wejść jest dużo, zadania mogą uruchamiać się w momencie niekorzystnym dla wydajności.

To trochę jak różnica między dostawą zaplanowaną na 6:00 rano a dostawą realizowaną dopiero wtedy, gdy pierwszy klient otworzy drzwi sklepu. W obu przypadkach towar finalnie może dotrzeć, ale tylko w pierwszym rozwiązaniu masz przewidywalność.

OBSZARWP-CRONCRON SYSTEMOWY
Sposób działaniaMechanizm wbudowany w WordPress. Sprawdza zadania przy wejściu użytkownika na stronę.Mechanizm po stronie serwera. Uruchamia zadania niezależnie od ruchu na stronie.
Moment uruchomieniaWejście użytkownika na stronę.O ustalonej godzinie wg harmonogramu.
KonfiguracjaDziała domyślnie, bez dodatkowych ustawień po stronie serwera.Wymaga konfiguracji w panelu hostingu lub bezpośrednio na serwerze.
Wpływ na wydajnośćMoże podnosić CPU i obciążać PHP oraz bazę podczas ładowania strony.Lepiej rozdziela ruch użytkowników od zadań technicznych, więc zwykle mniej obciąża front.

CRON systemowy. Kiedy warto wybrać?

CRON systemowy oddziela ruch użytkowników od pracy technicznej WordPressa. W tym przypadku odwiedzający nie “ciągną” przy okazji publikacji wpisów, czyszczenia danych, importów, synchronizacji czy innych zadań w tle. Serwer wykonuje je w zaplanowanym momencie, a nie przy losowym wejściu na stronę.

CRON systemowy zmniejsza ryzyko skoków CPU i sprawia, że środowisko działa przewidywalnie. Zamiast mieszać obsługę frontu z pracą administracyjną, rozdzielasz te dwa obszary.

Kiedy różnica jest odczuwalna?

Najbardziej widać ją na stronach z większym ruchem, sklepach WooCommerce, serwisach z rozbudowanymi wtyczkami, integracjami API, importami i częstymi zadaniami w tle. Tam WP-Cron potrafi zamienić zwykłe wejście użytkownika w request, który oprócz ładowania strony uruchamia jeszcze dodatkową pracę PHP i bazy danych.

Na małej stronie wizytówkowej problem może być mało zauważalny. Ale im więcej procesów działa w tle, tym bardziej CRON systemowy wygrywa z WP-Cron pod względem stabilności.

Jak zastąpić Wp-Cron cronem systemowym?

Aby zastąpić WP-Cron cronem systemowym, nie konfigurujesz osobno każdej publikacji, synchronizacji czy zadania wtyczki. Robisz to raz, na poziomie całego mechanizmu WordPressa. Najpierw wyłączasz domyślne wywoływanie WP-Cron, a następnie tworzysz jedno zadanie cron po stronie serwera.

  1. Wyłącz wp-cron

    Wyłączenie WP-Cron polega na dodaniu jednej stałej do pliku wp-config.php.
    Dodaj do niego linię:

    define('DISABLE_WP_CRON', true);

    Powyższy kod dodaj przed linią:

    /* That's all, stop editing! Happy publishing. */
    Wyłączanie wp-cron w panelu cyber_FolksWyłączanie wp-cron w panelu cyber_Folks

Zapisz ustawienia. Gotowe. Wp-cron został wyłączony.

2. Włącz crona na poziomie serwera

  1. W przypadku cyber_Folks, zaloguj się do panelu direct_Admin i wybierz domenę dla jakiej chcesz uruchomić zadanie.
  2. W sekcji Pozostałe Ustawienia wybierz Zadania CRON.
  3. Dodaj polecenie w sekcji komenda:
    wget -q -O - https://testowadomena.pl/wp-cron.php >/dev/null 2>&1

    Testowadomena.pl – zastąp nazwą swojej domeny.
Zastępowanie wp-cron cronem systemowym w cyber_Folks. Panel direct_Admin
Zastępowanie wp-cron cronem systemowym w cyber_Folks. Panel direct_Admin

Zapisz zmiany, Gotowe!

Sprawdź również Zadania CRON – opis, dodawanie zadań, sprawdzanie działania.

Sprawdzanie czy wszystko poszło zgodnie z planem

Wp-cron został zastąpiony cronem systemowym. Systemowy CRON regularnie wyzwala WordPress cron. Znajdziesz go na liście zadań.

Weryfikacja poprawności zastępowania wp-cron cronem systemowym. Panel direc_Admin
Weryfikacja poprawności zastępowania wp-cron cronem systemowym. Panel direct_Admin

Zrób to z robo_Folks

Weryfikację poprawności przeprowadzisz również jednym poleceniem dla robo_Folksa. Twój asystent AI dostępny w panelu hostingowym jest gotowy do działania. Poproś go o sprawdzenie, czy zadanie CRON zostało poprawnie dodane, czy uruchamia się zgodnie z harmonogramem i czy komenda nie zwraca błędów.

Sprawdzanie poprawności zadania CRON z robo_Folksem. Asystentem AI dostępnym w panelu hostingowym cyber_Folks
Sprawdzanie poprawności zadania CRON z robo_Folksem. Asystentem AI dostępnym w panelu hostingowym cyber_Folks

Po chwili otrzymujesz potwierdzenienie. To wygodny sposób, żeby bez ręcznej analizy panelu, logów i komend szybko potwierdzić, że po wyłączeniu WP-Cron cały mechanizm działa już poprawnie po stronie serwera.

Sprawdzanie poprawności zadania CRON z robo_Folksem. Asystentem AI dostępnym w panelu hostingowym cyber_Folks
Sprawdzanie poprawności zadania CRON z robo_Folksem. Asystentem AI dostępnym w panelu hostingowym cyber_Folks

Ten artykuł może Cię zainteresować. Asystent AI, który samodzielnie ustawi zadania cron? Poznaj robo_Folksa!

CRON systemowy a wp-Cron. Podsumowanie

Wyłączenie WP-Cron i zastąpienie go cronem systemowym to jedna z tych zmian, które porządkują działanie WordPressa bez ingerencji w samą treść strony. Domyślny mechanizm jest wygodny na start, ale przy większym ruchu, rozbudowanych wtyczkach i zadaniach wykonywanych w tle potrafi dokładać niepotrzebne obciążenie do zwykłych wejść użytkowników. Wówczas warto oddzielić ruch na stronie od uruchamiania zaplanowanych zadań. W artykule pokazaliśmy cały zarys tego procesu – czym jest WP-Cron, jak działa, gdzie znajduje się plik wp-cron.php, dlaczego domyślny model nie zawsze jest korzystny i jak bezpiecznie przejść na CRON systemowy.

Jak poprawnie wyłączyć WP-Cron i uruchomić CRON systemowy w WordPressie? – FAQ

Ich cel jest podobny, bo oba służą do uruchamiania zaplanowanych zadań. Różnica polega na sposobie działania. WP-Cron zależy od ruchu na stronie i sprawdza zadania przy wywołaniu WordPressa, a cron systemowy działa niezależnie po stronie serwera, zgodnie z ustawionym harmonogramem.

Nie. Po wyłączeniu WP-Cron WordPress przestanie automatycznie uruchamiać zaplanowane zadania przy wejściach użytkowników. Jeśli nie ustawisz w zamian crona systemowego, nie będą działały m.in. publikacje wpisów, część zadań wtyczek, czyszczenie danych tymczasowych czy wybrane synchronizacje.

Najczęściej wtedy, gdy strona ma większy ruch, korzysta z rozbudowanych wtyczek, WooCommerce, częstych synchronizacji, importów albo innych zadań wykonywanych cyklicznie w tle. W takich przypadkach cron systemowy daje większą przewidywalność i zwykle lepiej porządkuje obciążenie serwera.
>
Katarzyna Węgiel
Pasjonatka i praktyk działań inbound marketing. Prywatnie miłośniczka bliższych i dalszych wycieczek rowerowych.

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Szukasz dalej?