Słowem wstępu...
Zautomatyzowane zadania to podstawa dobrze działającej strony internetowej. Publikacja wpisów o określonej godzinie, tworzenie kopii zapasowych czy wysyłka powiadomień e-mail – wszystko to obsługiwane jest przez tzw. CRON. Ale czy CRON w WordPressie działa tak, jak powinien? I co możesz zyskać, konfigurując go poprawnie?
W tym wpisie w prosty sposób wyjaśniam, czym jest WP-Cron, jak działa i kiedy warto zastąpić go harmonogramem z poziomu serwera.
Czym jest CRON w WordPressie?
W klasycznych systemach (np. na serwerze Linux) CRON to mechanizm do wykonywania cyklicznych zadań o zaplanowanej godzinie. WordPress nie ma dostępu do systemowego CRON-a, dlatego wykorzystuje swoją wersję – WP-Cron.
WP-Cron to symulacja CRON-a, która uruchamia się tylko wtedy, gdy ktoś odwiedza Twoją stronę. Brzmi sprytnie? Tak, ale niesie też kilka ograniczeń.
Jakie zadania obsługuje WP-Cron?
CRON w WordPressie odpowiada za wiele automatycznych działań, m.in.:
publikację wpisów o określonej godzinie,
sprawdzanie aktualizacji wtyczek i motywów,
wysyłkę e-maili systemowych,
działania zaplanowane przez wtyczki, np. tworzenie kopii zapasowych,
usuwanie wersji roboczych czy optymalizację bazy danych.
Wiele popularnych pluginów (np. WP Mail SMTP, UpdraftPlus, WooCommerce) wykorzystuje WP-Cron do codziennej pracy.
Czy WP-Cron działa dobrze?
I tak, i nie. Dla niewielkich stron z regularnym ruchem – WP-Cron może być wystarczający. Problem zaczyna się wtedy, gdy:
strona ma mały ruch (zadania się nie wykonują),
ruch jest nieregularny (zadania są opóźnione),
trzeba uruchomić zadania dokładnie o określonej godzinie.
Do tego WP-Cron obciąża stronę przy każdym wejściu użytkownika, co może wpływać na jej wydajność – szczególnie przy dużej liczbie zaplanowanych zadań.
Jak sprawdzić, czy WP-Cron działa poprawnie?
Jeśli masz wątpliwości, możesz to łatwo sprawdzić:
użyj wtyczki WP Crontrol lub Advanced Cron Manager – pokazują listę zadań, ich harmonogram i ewentualne błędy,
skorzystaj z narzędzi diagnostycznych dostępnych w panelu administracyjnym (np. Site Health),
przetestuj ręczne uruchomienie zadań i sprawdź, czy działają poprawnie.
Czy warto wyłączyć WP-Cron i ustawić CRON serwerowy?
W wielu przypadkach – tak.
Zamiast polegać na użytkownikach odwiedzających stronę, możesz skonfigurować klasycznego CRON-a z poziomu serwera (np. DirectAdmin, cPanel, SSH). Wtedy zadania uruchamiane są niezależnie od ruchu – regularnie, szybko i bez opóźnień.
Wystarczy dodać wpis w harmonogramie CRON-a oraz wyłączyć WP-Cron, dodając do pliku wp-config.php linię:
define('DISABLE_WP_CRON', true);
To rozwiązanie bardziej niezawodne, szczególnie przy większych serwisach lub sklepach internetowych.
Następnie w ustawieniach serwera wywołać odpowiednie wywołanie pliku wp-cron.php – i tyle. Możemy cieszyć się z szybszego i bezpieczniejszego działania strony.
Przykładowe zastosowania i dobre praktyki
Oto kilka przykładów, gdzie poprawna konfiguracja CRON-a ma realne znaczenie:
Sklepy WooCommerce – automatyczne czyszczenie koszyków, aktualizacje stanów magazynowych,
Blogi – planowana publikacja artykułów i newsletterów,
Firmowe strony – kopie zapasowe, testy bezpieczeństwa, automatyczne raporty.
Dobrą praktyką jest przegląd zadań CRON raz w miesiącu – pozwala uniknąć opóźnień i konfliktów między wtyczkami.
Jakie ustawienia rekomenduję Klientom?
Tworząc strony internetowe, zawsze daję Klientowi wybór i jasno tłumaczę, jak działa CRON. W większości przypadków rekomenduję ustawienie klasycznego CRON-a na serwerze, ponieważ:
działa niezależnie od liczby odwiedzin,
jest dokładniejszy i bardziej wydajny,
zapewnia większą stabilność działania strony.
Konfiguracja jest jednorazowa i mogę ją w całości wykonać podczas projektowania strony lub późniejszej optymalizacji.
Podsumowanie
CRON w WordPressie to ważny element działania każdej strony – ale warto wiedzieć, że jego domyślna wersja (WP-Cron) ma ograniczenia. Na szczęście możesz go zastąpić CRON-em serwerowym i zyskać większą kontrolę nad automatyzacją.

