Ranking Jak liczymy Jak testujemy Blog Słownik Kontakt
Poradniki hostingowe

Jak skonfigurować prawdziwy cron serwera dla WordPressa (zamiast wp-cron.php)

Przemysław Szliep · 07.10.2026

WordPress domyślnie nie ma własnego, działającego w tle harmonogramu zadań. Zamiast tego przy każdym wejściu odwiedzającego na stronę sprawdza plik wp-cron.php i jeśli widzi zaległe zadania – publikację zaplanowanego wpisu, wysyłkę newslettera przez wtyczkę, czyszczenie cache, aktualizację wtyczek w tle czy kopię zapasową – wykonuje je. Problem w tym, że mechanizm ten uruchamia się tylko wtedy, gdy ktoś faktycznie wejdzie na stronę. Jeśli ruch jest niewielki, zaplanowany wpis może opublikować się kilka godzin po terminie, a zadania wtyczek w ogóle nie wykonają się o czasie. Rozwiązaniem jest wyłączenie domyślnego wp-cron i zastąpienie go prawdziwym zadaniem cron ustawionym w panelu hostingowym, które odpytuje wp-cron.php regularnie, niezależnie od tego, czy ktoś odwiedza stronę.

  1. Sprawdź, czy ten problem faktycznie dotyczy Twojej strony. Zaplanuj testowy wpis na najbliższe kilkanaście minut i obserwuj, czy opublikuje się punktualnie. Możesz też zainstalować bezpłatną wtyczkę WP Crontrol, wejść w listę zaplanowanych zadań i sprawdzić kolumnę z czasem następnego wykonania – jeśli widzisz tam godziny z przeszłości, zadania czekają na kogoś, kto wejdzie na stronę i je „odblokuje”.
  2. Zlokalizuj plik wp-config.php. Znajdziesz go w głównym katalogu instalacji WordPressa, na tym samym poziomie co foldery wp-admin, wp-content i wp-includes. Otwórz go przez menedżer plików w panelu hostingowym albo przez klienta FTP, np. FileZillę.
  3. Dodaj linię wyłączającą domyślny wp-cron. W pliku wp-config.php wklej: define('DISABLE_WP_CRON', true);. Umieść ją przed linią require_once ABSPATH . 'wp-settings.php'; lub przed komentarzem „That's all, stop editing!”. Od tego momentu WordPress nie będzie już próbował uruchamiać zadań przy odwiedzinach strony.
  4. Zapisz plik i wgraj go z powrotem na serwer. W menedżerze plików hostingu wystarczy kliknięcie „Zapisz”. Jeśli edytowałeś plik lokalnie przez FTP, wgraj go z powrotem, nadpisując wersję na serwerze.
  5. Zaloguj się do panelu hostingowego i znajdź sekcję zadań cron. W cPanelu szukaj „Cron Jobs” w części „Advanced”, w DirectAdmin „Zadania Cron”, a w Plesku „Planowane zadania”. Nazwa różni się między panelami, ale funkcja jest ta sama.
  6. Skonfiguruj nowe zadanie cron wywołujące wp-cron.php co 15 minut. Ustaw harmonogram na „Every 15 Minutes” (odpowiada to wzorcowi */15 * * * *), a w polu z poleceniem wpisz jedno z: wget -q -O /dev/null "https://twojadomena.pl/wp-cron.php" albo curl -s "https://twojadomena.pl/wp-cron.php" > /dev/null 2>&1. Pamiętaj, żeby zamienić twojadomena.pl na rzeczywisty adres swojej strony.
  7. Zapisz zadanie i przetestuj, czy działa. Poczekaj 15–20 minut, zaplanuj kolejny testowy wpis na konkretną godzinę i sprawdź, czy opublikował się zgodnie z planem. We WP Crontrol czasy „następnego wykonania” powinny teraz aktualizować się regularnie, nawet gdy nikt nie wchodzi na stronę.

Co zrobić, gdy coś pójdzie nie tak

Hosting nie udostępnia sekcji Cron Jobs w panelu. Niektóre tańsze pakiety hostingowe nie dają dostępu do zadań cron z poziomu panelu klienta. W takiej sytuacji możesz skonfigurować darmowy zewnętrzny serwis typu cron-job.org, który będzie odpytywał adres https://twojadomena.pl/wp-cron.php w ustalonych odstępach czasu z zewnątrz – efekt jest taki sam. Możesz też zapytać wsparcie techniczne hostingu, czy funkcja jest dostępna pod inną nazwą albo czy da się ją włączyć na żądanie.

Błąd uprawnień przy zapisie wp-config.php. Jeśli menedżer plików albo klient FTP zgłasza „Permission denied”, sprawdź uprawnienia pliku – standardowo powinny wynosić 644. Jeśli nie możesz ich zmienić samodzielnie, zgłoś to do wsparcia hostingu; sam plik jest zbyt ważny, żeby zmieniać uprawnienia na bardziej otwarte „na wszelki wypadek”.

Zadania wciąż nie wykonują się o czasie po wprowadzeniu zmian. Najpierw sprawdź literówkę w adresie URL w poleceniu cron – brakujące „https” albo błędna domena to częsty powód. Następnie sprawdź, czy linia z DISABLE_WP_CRON rzeczywiście trafiła przed komentarz „stop editing”, a nie np. do sekcji komentarza, gdzie nie zostanie wykonana. Jeśli polecenie z wget lub curl nie działa, bo hosting blokuje wychodzące połączenia do własnej domeny, zamień je na wywołanie pliku PHP bezpośrednio z serwera, np. php /home/twojlogin/public_html/wp-cron.php – dokładną ścieżkę do katalogu z WordPressem podaje panel hostingowy lub wsparcie techniczne.

Poradnik krok po kroku Wydajność WordPressa
Przemysław Szliep
Przemysław Szliep

Od 2014 roku prowadzi SP-Media - agencję, która buduje i utrzymuje strony firmowe. Hostingi ocenia z perspektywy kogoś, kto codziennie na nich pracuje: migracje, awarie, kontakt z supportem.

Używamy plików cookie do analizy ruchu (Google Analytics, Microsoft Clarity). Więcej informacji w polityce prywatności.