Zadanie WordPressa może wystartować z opóźnieniem, gdy czeka na odsłonę strony, albo nie zakończyć się z powodu błędu PHP, blokady żądania lub limitu hostingu. Pokażemy, jak rozpoznać przyczynę i dobrać sposób uruchamiania do wymaganego czasu wykonania oraz dostępu do serwera.
Krótka odpowiedź
WP-Cron sprawdza zaplanowane zdarzenia podczas wczytywania strony, również bez zalogowanego użytkownika i bez dostępu do kokpitu. Cron serwerowy uruchamia polecenie według harmonogramu hostingu.
Przy zadaniach wymagających przewidywalnego startu skonfiguruj cron serwerowy, który uruchamia `wp-cron.php` albo WP-CLI; przed ustawieniem `define( 'DISABLE_WP_CRON', true );` sprawdź wykonanie zadania systemowego, log i oczekiwany skutek w WordPressie.
Usługi KC Mobile
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Jak skonfigurować zadania cron dla WordPressa i sprawdzić, czy działają”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
Czym różni się WP-Cron od crona serwerowego?
WP-Cron sprawdza zaplanowane zdarzenia przy wczytaniu strony, a cron serwerowy uruchamia polecenie według harmonogramu systemu. Dokumentacja WordPressa opisuje WP-Cron jako mechanizm wyzwalany przy żądaniach do witryny; nie wymaga on zalogowania do kokpitu ani dostępu do administracji. Dokumentację sprawdziliśmy w październiku 2026 roku.
Cron serwerowy zwykle wywołuje `wp-cron.php` albo uruchamia komendy WP-CLI, czyli narzędzia do obsługi WordPressa z wiersza poleceń. Samo uruchomienie zadania systemowego nie potwierdza, że kod wtyczki wykonał się poprawnie. Tabela porównuje mechanizmy i warunki ich użycia.
| Mechanizm | Co uruchamia zdarzenie? | Jaki dostęp jest wymagany? | Typowe zastosowanie |
|---|---|---|---|
| WP-Cron | Wczytanie strony | Brak dostępu do kokpitu | Strona z ruchem i zadaniami bez ścisłego terminu |
| Cron przez HTTP | Harmonogram hostingu | Panel hostingu i dostęp do adresu witryny | Hosting bez SSH z obsługą żądań URL |
| Cron przez PHP | Harmonogram hostingu | Ścieżka do PHP i plików WordPressa | Serwer z dostępem do PHP CLI |
| WP-CLI | Harmonogram hostingu | SSH, WP-CLI i ścieżka instalacji | Zadania wymagające kontroli poleceń WordPressa |
Tabela pokazuje, że WP-Cron nie wymaga dostępu do kokpitu, a cron serwerowy wymaga konfiguracji po stronie hostingu lub serwera.
WP-Cron wymaga mniej konfiguracji, a cron serwerowy daje kontrolę nad porą wywołania. Dla strony firmowej, na której niewielkie opóźnienie publikacji nie wpływa na obsługę klienta, mechanizm domyślny może wystarczyć.
Czytasz poradnik „Jak skonfigurować zadania cron dla WordPressa i sprawdzić, czy działają”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny. Omów temat tego poradnika
Kiedy warto skonfigurować prawdziwy cron?
Cron serwerowy warto skonfigurować, gdy opóźnienie zadania powoduje problem operacyjny albo witryna nie ma ruchu wystarczającego do regularnego wyzwalania WP-Cron. Dotyczy to importów, synchronizacji stanów, wysyłek i procesów WooCommerce, jeśli ich termin ma znaczenie dla obsługi zamówień.
Sygnały do sprawdzenia:
- Zaplanowany wpis lub wiadomość nie pojawia się w oczekiwanym czasie.
- Synchronizacja zaczyna się dopiero po wejściu użytkownika na stronę.
- W kolejce WooCommerce przybywa oczekujących lub nieudanych działań.
- Import trwa dłużej niż odstęp między uruchomieniami i może się nakładać.
Z naszych wdrożeń: gdy sklep miał zaległe akcje, a ręczne wywołanie `wp-cron.php` nie zmieniało ich statusu, diagnozę zaczynaliśmy od komunikatu błędu w zaplanowanym działaniu i logu wtyczki, zanim zmieniliśmy harmonogram. Sam fakt posiadania sklepu nie przesądza o potrzebie zmiany mechanizmu.
Jeśli przygotowujesz nową witrynę, wymagania dla zadań cyklicznych ustal na etapie wdrożenia. Strony internetowe na WordPressie możemy przygotować z uwzględnieniem konfiguracji środowiska i harmonogramu.
Jak sprawdzić, czy zadania WordPressa działają?
Działanie zadania potwierdza połączenie trzech dowodów: zdarzenie jest zaplanowane, wykonanie pozostawia ślad w logu, a oczekiwany skutek pojawia się w systemie. WP-CLI rozdziela test mechanizmu `wp cron test` od listy zdarzeń `wp cron event list`; lista pokazuje harmonogram, ale nie dowodzi wykonania kodu. Dokumentację WP-CLI sprawdziliśmy w październiku 2026 roku.
W WooCommerce przejdź do `WooCommerce > Status > Zaplanowane działania`. Sprawdź status działania, datę następnego uruchomienia oraz komunikat błędu. Dokumentacja WooCommerce opisuje to miejsce jako widok planowanych działań; lokalizację i opis sprawdziliśmy w październiku 2026 roku.
Weryfikację przeprowadź w kolejności:
1. Zapisz nazwę hooka, czyli zdarzenia wywołującego kod, oraz planowany czas wykonania.
2. Użyj `wp cron event list`, aby potwierdzić, że zdarzenie znajduje się w harmonogramie.
3. Użyj `wp cron test`, aby sprawdzić mechanizm uruchamiania WP-Cron.
4. Sprawdź log PHP, log hostingu lub log wtyczki, szukając czasu wykonania i komunikatu błędu.
5. Na kopii albo w uzgodnionym oknie serwisowym uruchom bezpieczne zdarzenie przez `wp cron event run nazwa_hooka` i potwierdź jego skutek.
Przykładowym skutkiem jest zmiana statusu konkretnej akcji, pojawienie się pliku importu albo aktualizacja danych w systemie docelowym. Nie uruchamiaj ręcznie zadania, które wysyła wiadomości lub tworzy dokumenty, jeśli ponowne wykonanie może zdublować operację. Więcej poleceń opisujemy w artykule WP-CLI i zarządzanie WordPressem z terminala.
Jak skonfigurować cron w panelu hostingu?
Zadanie w panelu hostingu skonfigurujesz, podając harmonogram, polecenie i ścieżkę do instalacji WordPressa. Poszukaj sekcji o nazwie "Cron", "Harmonogram zadań" albo "Zadania cykliczne"; nazwy pól zależą od dostawcy.
Przygotuj kolejno:
1. Pełną ścieżkę do katalogu, w którym znajduje się `wp-cron.php`.
2. Ścieżkę do PHP CLI podaną przez hosting lub administratora.
3. Interwał dopuszczony przez plan hostingowy.
4. Lokalizację logu poza publicznym katalogiem witryny.
5. Polecenie oraz sposób sprawdzenia jego wykonania po pierwszym terminie.
Przykładowa komenda PHP wymaga podmiany ścieżek na właściwe dla serwera:
/usr/bin/php /sciezka/do/wordpress/wp-cron.phpJeśli panel pozwala tylko na wywołanie URL, oficjalna instrukcja WordPressa podaje `wget` jako jeden ze sposobów uruchomienia `wp-cron.php`. Sprawdź, czy żądanie nie jest blokowane przez zaporę ani uwierzytelnianie HTTP, a odpowiedź nie zapisuje się w katalogu publicznym. Instrukcję sprawdziliśmy w październiku 2026 roku.
Tabela pokazuje, jakie dane zweryfikować przed zapisaniem polecenia.
| Element | Co ustalić? | Gdzie sprawdzić? | Jak potwierdzić poprawność? |
|---|---|---|---|
| Katalog WordPressa | Pełną ścieżkę instalacji | Menedżer plików lub administrator | Katalog zawiera `wp-cron.php` |
| PHP CLI | Pełną ścieżkę interpretera | Pomoc hostingu lub SSH | `php -v` zwraca wersję |
| Interwał | Dozwoloną częstotliwość | Formularz zadania lub warunki hostingu | Interwał mieści się w limicie usługi |
| Log | Ścieżkę zapisu | Panel plików lub administrator | Log nie jest publicznie dostępny |
Tabela pozwala sprawdzić ścieżki, ograniczenia i lokalizację logu przed aktywacją zadania.
Przed aktywacją sprawdź, czy konto wykonujące zadanie może odczytać pliki WordPressa i zapisać log.
Jak ustawić zadanie cron przez SSH?
Przez SSH zadanie ustawisz poleceniem `crontab -e`, jeśli hosting udostępnia crontab dla używanego konta. Wpis harmonogramu zawiera pola minuty, godziny, dnia miesiąca, miesiąca i dnia tygodnia, po których następuje komenda; dokumentację WordPressa sprawdziliśmy w październiku 2026 roku.
Przykład uruchomienia `wp-cron.php` co 15 minut z logiem poza katalogiem publicznym:
*/15 * * * * /usr/bin/php /sciezka/do/wordpress/wp-cron.php >> /sciezka/do/logow/wp-cron.log 2>&1Wariant z WP-CLI:
*/15 * * * * cd /sciezka/do/wordpress && /usr/local/bin/wp cron event run --due-now --quiet >> /sciezka/do/logow/wp-cron.log 2>&1Ścieżkę do WP-CLI sprawdzisz poleceniem `command -v wp`, a do PHP poleceniem `command -v php`. Uruchom test ręczny jako to samo konto, które będzie właścicielem zadania cron. W wielu instalacjach WP-CLI wymaga wskazania właściwego katalogu przez `--path`.
Nie testuj na produkcji polecenia, które może wysłać powiadomienie, wygenerować dokument lub ponownie zaimportować te same dane. Najpierw potwierdź, czy aplikacja zabezpiecza takie operacje przed duplikacją.

Jak wyłączyć WP-Cron bez zatrzymania zadań?
WP-Cron wyłącz dopiero po sprawdzeniu crona serwerowego i potwierdzeniu skutku zadania w WordPressie. Stała `DISABLE_WP_CRON` powinna być zdefiniowana w `wp-config.php` przed załadowaniem WordPressa, najlepiej przed `require_once ABSPATH . 'wp-settings.php';`; jeśli plik ma wiersz kończący edycję PHP, dodaj ją przed tym wierszem. Dokumentacja WordPressa zaleca tę stałą do wyłączenia uruchamiania WP-Cron przy odsłonach.
Bezpieczna kolejność przełączenia:
1. Skonfiguruj cron serwerowy, który wywołuje `wp-cron.php` albo WP-CLI.
2. Uruchom test mechanizmu i niekrytyczne zdarzenie.
3. Potwierdź zapis w logu oraz oczekiwany skutek w witrynie.
4. Obserwuj kilka uruchomień i sprawdź, czy liczba zaległych działań nie rośnie.
5. Dopiero wtedy ustaw `define( 'DISABLE_WP_CRON', true );`.
Tabela pomaga wybrać metodę na podstawie dostępu do hostingu.
| Metoda | Jaki dostęp jest wymagany? | Kiedy ją wybrać? | Co potwierdza działanie? |
|---|---|---|---|
| WP-Cron | Brak dostępu do kokpitu | Opóźnienie jest dopuszczalne | Skutek zadania i log aplikacji |
| Cron przez HTTP | Panel hostingu i adres witryny | Brak SSH, dostępny harmonogram URL | Log oraz skutek zdarzenia |
| Cron przez PHP | Panel hostingu i ścieżka PHP CLI | Hosting uruchamia polecenia PHP | Kod zakończenia i log PHP |
| WP-CLI | SSH i WP-CLI | Potrzebne wywołanie komend WordPressa | Wynik polecenia i skutek zadania |
Tabela pokazuje wymagany dostęp i dowód poprawnego działania każdej metody.
Jeśli po przełączeniu nie powstaje log lub nie zmienia się stan zadania, przywróć poprzednią konfigurację i sprawdź polecenie systemowe. Zasady ochrony plików opisujemy w poradniku bezpieczeństwa WordPressa.
Jak często uruchamiać cron i co zapisywać w logach?
Interwał crona dobierz do dopuszczalnego opóźnienia zadania, jego czasu wykonania oraz limitu hostingu. Przykład `*/15` w dokumentacji WordPressa pokazuje składnię harmonogramu, a nie uniwersalne zalecenie dla każdej witryny.
Zapisuj czas startu, czas końca, polecenie, kod zakończenia i komunikat błędu. Przechowuj log poza katalogiem publicznym, ustaw rotację plików i nie zapisuj w nim haseł, tokenów ani danych klientów.
Dwa uruchomienia mogą się nałożyć, gdy pierwsze zadanie trwa dłużej niż odstęp harmonogramu. W logu szukaj kolejnego znacznika startu przed zakończeniem poprzedniego albo powtarzających się procesów widocznych w monitoringu hostingu. Dla długiego importu zastosuj blokadę, która pomija kolejny start do czasu zakończenia poprzedniego.

Jak rozwiązać najczęstsze problemy z cronem?
Problemy z cronem diagnozuj od ścieżki polecenia i uprawnień, a następnie sprawdź blokady sieciowe, harmonogram i logi aplikacji. Po każdej zmianie wykonaj jeden test i zapisz jego wynik.
- Błędna ścieżka PHP: sprawdź `command -v php` przez SSH albo poproś hosting o ścieżkę PHP CLI.
- Błędny katalog WordPressa: sprawdź, czy wskazany katalog zawiera `wp-cron.php`.
- Brak uprawnień: uruchom polecenie jako konto harmonogramu i sprawdź możliwość zapisu logu.
- Blokada HTTP: sprawdź zaporę, uwierzytelnianie i możliwość połączeń do własnej witryny.
- Niezgodny czas: porównaj czas serwera z `Ustawienia > Ogólne` w WordPressie.
- Zaległe działania WooCommerce: odczytaj komunikat przy akcji i sprawdź log powiązanej wtyczki.
- Nakładające się procesy: porównaj znaczniki startu i końca z odstępem harmonogramu.
Poprawne działanie potwierdza oczekiwany skutek, zapis w logu i brak powtarzającego się błędu. Odpowiedź HTTP 200 potwierdza odpowiedź serwera, ale sama nie dowodzi poprawnego wykonania zdarzenia WordPressa. Jeśli potrzebujesz wykonawcy konfiguracji strony i jej procesów, wdrożenie witryny opartej na WordPressie może objąć także harmonogram zadań.
Więcej poradników w tym temacie
Wspomniane narzędzia
Najczęściej zadawane pytania
Jak uruchomić cron jobs w WordPressie?
Jak odróżnić zaplanowane zdarzenie od wykonanego zadania?
Czy można wyłączyć WP-Cron w WordPressie?
Jak często powinien uruchamiać się cron WordPressa?
Czy WP-Cron działa bez logowania do WordPressa?
Czy do konfiguracji crona potrzebuję dostępu SSH?
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Jak skonfigurować zadania cron dla WordPressa i sprawdzić, czy działają”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
