Błąd 503 Service Unavailable – co oznacza, dlaczego się pojawia i jak go naprawić

Błąd 503 (Service Unavailable) oznacza, że serwer tymczasowo nie może obsłużyć żądania – jest przeciążony, w trakcie konserwacji lub jego zasoby zostały wyczerpane. W odróżnieniu od błędu bazy danych czy 404 (strona nie istnieje), 503 mówi: „strona istnieje, serwer działa, ale w tej chwili nie jest w stanie odpowiedzieć ��� spróbuj za chwilę”.

Co dokładnie oznacza HTTP 503

Kod statusu 503 Service Unavailable należy do rodziny 5xx (błędy serwera) – oznacza problem po stronie serwera, nie użytkownika. Serwer rozumie żądanie, ale nie może go teraz obsłużyć. Typowo: serwer jest tymczasowo niedostępny z powodu: przeciążenia (zbyt dużo jednoczesnych żądań), planowanej konserwacji (maintenance), awarii backendu (PHP, baza danych, usługa zewnętrzna) lub wyczerpania zasobów (RAM, CPU, połączenia).

Kluczowe słowo: tymczasowo. 503 to nie trwała awaria – serwer mówi „jestem zajęty, wróć później”. Dlatego przeglądarki i boty (w tym Googlebot) wiedzą, że powinny spróbować ponownie za jakiś czas.

Najczęstsze przyczyny błędu 503

1. Serwer jest przeciążony (zbyt dużo ruchu)

Hosting współdzielony ma ograniczone zasoby (CPU, RAM, PHP workers). Jeśli Twoja strona nagle dostanie spike ruchu (viralowy post, kampania reklamowa, atak DDoS), serwer nie nadąża z obsługą żądań → 503 dla nadmiarowych (serwuje kto może, resztę odrzuca z 503).

Rozwiązanie: włącz page cache (LiteSpeed Cache, WP Rocket) – cache serwuje gotowy HTML bez odpalania PHP, co zmniejsza obciążenie serwera 10–100x. Jeśli cache nie pomaga: upgrade hostingu (VPS z gwarantowanymi zasobami zamiast shared). Lub: Cloudflare z APO – cache na edge, serwer prawie nie jest obciążany.

2. Planowana konserwacja (Maintenance Mode)

Serwer (lub aplikacja) jest celowo wyłączony na czas aktualizacji, migracji lub konserwacji. WordPress wyświetla 503 gdy jest w trybie maintenance (plik .maintenance w katalogu głównym). Hosting może wyświetlać 503 podczas migracji serwera, aktualizacji oprogramowania lub operacji na bazie danych.

Rozwiązanie: jeśli to planowane – czekaj. Jeśli WordPress utknął w maintenance mode – usuń plik .maintenance przez FTP.

3. PHP-FPM workers wyczerpane

Serwer PHP ma ograniczoną liczbę PHP workers (procesów obsługujących żądania PHP). Jeśli wszystkie workers są zajęte (wolne zapytania do bazy, ciężkie wtyczki, brak cache) – nowe żądania czekają w kolejce, a po timeout → 503.

Rozwiązanie: (1) włącz cache (mniej żądań = mniej workers potrzebnych), (2) obniż TTFB (szybsze żądania = workers zwalniają się szybciej), (3) zwiększ liczbę PHP workers (w panelu hostingu lub php-fpm.conf na VPS: pm.max_children), (4) Redis Object Cache (mniej zapytań do MySQL = szybsze PHP).

4. Baza danych MySQL nie odpowiada

Jeśli MySQL jest przeciążony (za dużo połączeń, wolne zapytania, baza zablokowana) – WordPress nie może pobrać danych → PHP czeka → timeout → 503 (lub Error establishing a database connection). Różnica: 503 = serwer web zwraca błąd, EDBC = WordPress sam wyświetla komunikat.

Rozwiązanie: sprawdź obciążenie MySQL (hosting panel → baza → statystyki), zoptymalizuj bazę (WP-Optimize, usuń rewizje/transienty), włącz Redis (mniej zapytań do MySQL).

5. Reverse proxy / load balancer nie dociera do backendu

Jeśli przed Twoim serwerem stoi reverse proxy (Cloudflare, Nginx jako proxy, load balancer): proxy łączy się z backendem (Apache/PHP), ale backend nie odpowiada → proxy zwraca 503 do użytkownika. Przyczyna: backend padł, jest w maintenance, albo połączenie proxy → backend ma timeout.

Rozwiązanie: sprawdź logi backendu (/var/log/apache2/error.log, /var/log/nginx/error.log). Jeśli Cloudflare → sprawdź status serwera w panelu hostingu (czy w ogóle żyje). Jeśli problem trwa: skontaktuj się z hostingiem.

6. Atak DDoS

Atak DDoS na warstwie 7 (HTTP flood) generuje tysiące żądań → serwer jest przeciążony → 503 dla normalnych użytkowników. WAF i Cloudflare absorbują takie ataki – jeśli nie masz ochrony, DDoS może Cię położyć na godziny.

Rozwiązanie: Cloudflare (darmowy – DDoS protection unlimited) + Under Attack Mode (wł��cz na czas ataku). Jeśli atak trwa: skontaktuj się z hostingiem – mogą filtrować ruch na poziomie sieci.

7. Wtyczka lub motyw WordPress powoduje crash PHP

Aktualizacja wtyczki → konflikt → PHP fatal error → serwer zwraca 503 (bo PHP nie generuje odpowiedzi). WordPress od 5.2 ma Recovery Mode (wyłącza problematyczną wtyczkę) – ale nie zawsze łapie wszystko.

Rozwiązanie: FTP → zmień nazwę wp-content/plugins na plugins-off → odśwież stronę. Jeśli działa: winowajca to wtyczka. Przywróć folder i wyłączaj wtyczki po jednej.

Jak sprawdzić przyczynę 503

Logi serwera to jedyne wiarygodne źródło informacji o przyczynie. Gdzie szukać:

Hosting / serwer Gdzie logi
cPanel Metrics → Errors → error_log
DirectAdmin System Info → Error Logs
Plesk Domains → [domena] → Logs
VPS (Apache) /var/log/apache2/error.log
VPS (Nginx) /var/log/nginx/error.log
VPS (PHP-FPM) /var/log/php-fpm/error.log
WordPress wp-content/debug.log (jeśli WP_DEBUG włączone)
Cloudflare Dashboard → Analytics → Errors

Szukaj wpisów z czasem wystąpienia 503 – logi pokażą: „max_children reached” (wyczerpane PHP workers), „upstream timed out” (backend nie odpowiada), „Out of memory” (brak RAM), „Too many connections” (MySQL limit).

Nagłówek Retry-After – kiedy serwer wróci

Odpowiedź 503 może zawierać nagłówek Retry-After: Retry-After: 300 (spróbuj za 300 sekund) lub Retry-After: Wed, 21 Apr 2026 14:00:00 GMT (spróbuj po tej dacie). Googlebot czyta ten nagłówek – wie, kiedy wrócić. Jeśli Twój serwer zwraca 503 z Retry-After → Google nie interpretuje tego jako „strona nie istnieje”, tylko „spróbuję później”.

Jeśli robisz planowaną konserwację: ustaw 503 z Retry-After (nie 200 z komunikatem „strona w budowie” – bo Google zindeksuje stronę w budowie). 503 + Retry-After = prawidłowy sygnał „wrócę”.

Błąd 503 a SEO – wpływ na pozycje

Krótkotrwały 503 (minuty–godziny): zero wpływu na SEO. Googlebot spróbuje ponownie i zaindeksuje normalnie. Google jawnie mówi: „503 to tymczasowy błąd, nie deindeksujemy stron z tego powodu”.

Długotrwały 503 (dni): Google zacznie traktować stronę jako niedostępną – może tymczasowo usunąć z indeksu. Powrót do indeksu po naprawie: godziny–dni. Długotrwały 503 jest lepszy niż długotrwały 404 – bo 503 mówi „wrócę”, a 404 mówi „nie istnieje”.

503 podczas planowanej konserwacji: poprawny HTTP – nie szkodzi SEO, o ile konserwacja trwa godziny, nie dni. Z nagłówkiem Retry-After: jeszcze lepiej.

503 vs inne kody błędów – porównanie

Kod Nazwa Znaczenie Przyczyna
500 Internal Server Error Ogólny błąd serwera (coś poszło źle, ale nie wiadomo co) Crash PHP, .htaccess error, brak pamięci
502 Bad Gateway Proxy/load balancer nie dostał poprawnej odpowiedzi od backendu Backend padł, timeout
503 Service Unavailable Serwer tymczasowo nie obsługuje żądań Przeci��żenie, maintenance, wyczerpane zasoby
504 Gateway Timeout Proxy czekał zbyt długo na odpowiedź backendu Wolne zapytanie PHP/MySQL, timeout konfiguracja

Najczęściej zadawane pytania

Czy 503 to problem z moją stroną czy z hostingiem?

Zwykle jedno i drugie. Jeśli Twoja strona jest jedyną na serwerze (VPS): problem jest u Ciebie (za dużo ruchu, ciężkie wtyczki, brak cache). Jeśli hosting współdzielony: może być problem sąsiada (inny klient na tym samym serwerze obciąża zasoby) – skontaktuj się z supportem hostingu.

Jak naprawić 503 jeśli nie mam dostępu do serwera?

Na hostingu współdzielonym: czekaj 5–15 minut (serwer się odciąży) → jeśli nie mija, skontaktuj się z supportem hostingu (czat, telefon). Powiedz: „moja strona zwraca 503, proszę o sprawdzenie logów serwera”. Hosting zobaczy: czy problem to Twoja strona (wtyczki, ruch), czy ich serwer (awaria, przeciążenie).

Czy powinienem się martwić o jednorazowy 503?

Nie – pojedynczy 503 (np. podczas aktualizacji wtyczki WP, chwilowy spike ruchu) to normalność. Martwić się należy gdy: 503 wraca regularnie (codziennie w godzinach szczytu → za mały hosting), 503 trwa godzinami (problem strukturalny → analiza logów + potencjalny upgrade).

Jak uniknąć 503 w przyszłości?

Checklista zapobiegawcza: (1) page cache ON (mniej PHP = mniej obciążenia), (2) Redis Object Cache (mniej MySQL = szybsze PHP), (3) Cloudflare CDN (odciąża serwer), (4) zoptymalizowane obrazki (mniej transferu), (5) mniej wtyczek (mniej PHP per żądanie), (6) monitoring uptime (UptimeRobot – darmowy, alert SMS gdy strona padnie).

Picture of Tomasz Zieliński
Tomasz Zieliński

Tomasz zajmuje się tematyką SEO, sztucznej inteligencji i automatyzacji pracy w marketingu internetowym. W swoich artykułach analizuje zmiany w algorytmach wyszukiwarek, rozwój narzędzi AI oraz nowe sposoby tworzenia i optymalizacji treści. Interesuje go przede wszystkim to, jak technologia wpływa na codzienną pracę specjalistów SEO, marketerów i twórców internetowych.

Facebook
Twitter
LinkedIn
Pinterest

Najnowsze Wpisy

Śledź nas