504 Przekroczenie czasu bramy

Co oznacza 504 Gateway Timeout, jak wolne serwery upstream go wywołują, jak Googlebot traktuje timeouty oraz jakie są skutki dla budżetu crawlowania i indeksowania.

Opublikowano po raz pierwszy: 28 cze 2026 · Ostatnia aktualizacja: 8 sie 2026 · Advanced
Języki
1 sygnał dowodowy na tej stronie

504 Gateway Timeout oznacza, że brama lub proxy (CDN, load balancer, reverse proxy) nie otrzymały na czas odpowiedzi od znajdującego się za nimi serwera upstream. To timeout, a nie 502 (błędna odpowiedź) ani 503 (jawna niedostępność). Nie jest to kara Google, tylko problem dostępności. Pojedyncze 504 są ponawiane, ale utrzymujące się timeouty trafiają obok 429/500/503 do grupy błędów, po których Googlebot się wycofuje i może usuwać strony z indeksu. Zanim cokolwiek naprawisz, ustal, która warstwa rzeczywiście przekroczyła czas — czas odpowiedzi serwera (TTFB) jest silną dźwignią prewencji dla wolnych źródeł, ale samo zwiększenie limitu nie jest naprawą.

TL;DR — 504 to brama/proxy informujące, że serwer upstream nie odpowiedział w oknie limitu — przekroczenie czasu, inne niż 502 (błędna odpowiedź) i 503 (jawna niedostępność). To problem dostępności, a nie kara. Przekroczenia czasu trafiają do tej samej grupy co 429/500/503: Googlebot wycofuje się po ich zaobserwowaniu, a utrzymujące się 504 stwarzają ryzyko usunięcia z indeksu. Trwałą naprawą jest czas odpowiedzi serwera (TTFB), a nie dłuższy limit — jego zwiększenie zwykle maskuje wolny upstream i może pogorszyć sytuację pod obciążeniem.

Skąd 504 pochodzi w łańcuchu żądania

Nowoczesna ścieżka żądania wygląda mniej więcej tak: przeglądarka → CDN/krawędź → load balancer → reverse proxy (np. Nginx) → serwer aplikacji (PHP-FPM, Node itd.) → baza danych / zewnętrzne API. 504 generuje ten komponent, który czekał na komponent znajdujący się za nim, gdy wygasł jego limit. To pierwsze pytanie diagnostyczne: Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • CDN/krawędź przekracza czas oczekiwania na źródło → naprawą jest wydajność źródła albo ostrożne podniesienie limitu upstreamu CDN-u.
  • Load balancer przekracza czas oczekiwania na serwer aplikacji → sprawdź kondycję serwera aplikacji i autoskalowanie.
  • Reverse proxy przekracza czas oczekiwania na proces aplikacji → sprawdź proxy_read_timeout / fastcgi_read_timeout Nginxa oraz wolne zapytanie lub proces, który rzeczywiście jest za nimi.

Właściwe ustalenie warstwy ma znaczenie, bo „napraw limit czasu na krawędzi” i „napraw wolne zapytanie do bazy na źródle” to zupełnie różne zadania.

Co powoduje 504s

Sam kod stanu nie dowodzi przyczyny — mówi tylko, że brama przekroczyła czas oczekiwania na upstream. To typowi podejrzani, których warto sprawdzić, a nie fakty wynikające z samego 504; zanim zadziałasz, potwierdź je w logach i śladach:

  • Wolne zapytania do bazy lub wywołania upstream API. Jedno niezindeksowane zapytanie albo opóźniona zależność zewnętrzna może wypchnąć czas odpowiedzi poza limit.
  • Przeciążenie serwera/aplikacji i wyczerpanie zasobów. Przy wystarczającym ruchu równoległym żądania ustawiają się w kolejce, procesy robocze zapełniają się, a odpowiedzi nie docierają na czas.
  • Źle skonfigurowane limity czasu w Nginx, Apache, load balancerze lub CDN-ie — często różniące się między warstwami, tak że jedna rezygnuje wcześniej niż druga.
  • Skoki ruchu, fale botów lub DDoS, które chwilowo przeciążają pojemność.

504s często pojawiają się sporadycznie i zależą od obciążenia

To właśnie czyni je trudnymi. W przeciwieństwie do całkowitej awarii 504 często pojawia się dopiero pod obciążeniem — monitor dostępności pingujący w spokojnym oknie może być w 100% zielony, podczas gdy Googlebot przy większych falach crawlowania po cichu zbiera przekroczenia czasu. W URL Inspection Google Search Console możesz zobaczyć to jako warunek „Hostload exceeded”, a nie czysty, stały błąd. Jeśli monitoring mówi, że wszystko jest w porządku, a Statystyki crawlowania mówią coś innego, 504 zależne od obciążenia jest głównym podejrzanym.

Jak Googlebot (i Bingbot) obsługują przekroczenia czasu

Google nie traktuje 504 jako oceny jakości treści — to sygnał dostępności, a reakcją jest automatyczne ograniczenie crawlowania. Dokumentacja dotycząca crawlowania mówi wprost: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (tłumaczenie) „Googlebot ograniczy crawlowanie, jeśli wykryje, że Twoje serwery mają problemy z odpowiadaniem na żądania crawlowania.” Przewodnik po budżecie crawlowania dla dużych witryn mówi to samo w kategoriach budżetu: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (tłumaczenie) „Gdy witryna zwalnia lub odpowiada błędami serwera, limit spada, a Google crawluje mniej.” Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

Najświeższe ujęcie, łączące to bezpośrednio z powolnymi odpowiedziami i przekroczeniami czasu, pochodzi z wyjaśnienia Inside Googlebot Google z marca 2026 r., w którym Gary Illyes mówi: “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (tłumaczenie) „Jeśli serwer ma trudności z dostarczaniem bajtów, nasze crawlery automatycznie się wycofają, aby nie przeciążać infrastruktury, co obniży częstotliwość crawlowania.” (Jak relacjonuje Search Engine Land — jeśli cytujesz to gdzie indziej, warto potwierdzić treść w oryginalnym nagraniu lub transkrypcji.) 504 uwidacznia właśnie taką trudność.

Warto rozumieć jeden niuans: Google nie zawsze widzi dosłowny „504” tak jak przeglądarka. Jeśli limit wygasa, zanim Googlebot otrzyma jakikolwiek wiersz statusu, w Statystykach crawlowania zostaje to zapisane jako przekroczenie czasu/błąd sieci, a nie czysty 5xx. Gdy jednak pośredniczące proxy lub CDN przekroczy limit i samo wygeneruje 504, Googlebot otrzymuje standardowy błąd serwera 5xx. W obu przypadkach efekt jest taki sam: ograniczenie szybkości crawlowania, a przy utrzymywaniu się problemu — usunięcie z indeksu.

Bing dokumentuje przekroczenia czasu jako osobną kategorię błędów crawlowania, odrębną od błędów serwera — Bingbot przestaje próbować otwierać strony, gdy odpowiedzi są zbyt wolne — a jego stała rekomendacja to sprawdzenie czasu odpowiedzi serwera, aktualizacja oprogramowania, optymalizacja wolnych zasobów i odczyt logów pod kątem wzorców systemowych, a nie pojedynczych przerw. Bing nie opublikował tak szczegółowego opisu ograniczania i odzyskiwania jak Google, więc traktuj oba mechanizmy jako zasadniczo podobne w intencji, a nie potwierdzone jako identyczne.

Pętla: ograniczenie, a potem odzyskanie

Uspokajające jest to, że ta pętla jest automatyczna i samokorygująca. Google ogranicza crawlowanie, gdy widzi błędy i przekroczenia czasu, a następnie stopniowo zwiększa jego tempo, gdy odpowiedzi znów są prawidłowe. Po naprawieniu przyczyny nie trzeba ręcznie naciskać przycisku „odblokowania” — jak zauważył John Mueller: _“Once things settle down on the server, the crawl rate will return to normal automatically.”_ (tłumaczenie) „Gdy sytuacja na serwerze się uspokoi, tempo crawlowania automatycznie wróci do normy.” Zwrócił też uwagę na asymetrię: ograniczenie tempa następuje szybko, aby rozwiązać bezpośredni problem, a jego ponowne zwiększanie przebiega ostrożnie.

To czas trwania zmienia chwilową przerwę w problem indeksowania

Krótkie, sporadyczne 504 — kilka podczas skoku, szybko rozwiązanych — są ponawiane i w dużej mierze tolerowane. Ryzyko usunięcia z indeksu dotyczy utrzymującego się wzorca przekroczeń czasu przez dłuższy okres. Udokumentowana przez Google mechanika „wróć później” — w której celowo zwracasz 503 lub 429 przy przeciążeniu — opisuje około dwudniowy horyzont, zanim adresy URL zaczną znikać, ale ta liczba jest udokumentowana z nazwy dla 503/429, nie dla 504. Szersze wytyczne Google dotyczące 5xx mówią, że szybkość crawlowania spada proporcjonalnie do liczby błędnych adresów URL i stopniowo wraca, gdy odpowiedzi są zdrowe, bez podania stałego horyzontu dla 504. Przeniesienie dwóch dni na 504 jest rozsądnym wnioskiem, a nie faktem z dokumentacji — traktuj to tak: krótkie 504 da się przetrwać, a utrzymujący się przez wiele dni wzorzec to zakres do obaw, nie gwarantowana data wyzwolenia.

Dlaczego ma to większe znaczenie w dużych i e-commerce witrynach

Jeśli masz małą witrynę, której strony są crawlowane tego samego dnia, prawie tego nie zauważysz. Jednak w dużych lub szybko zmieniających się witrynach — dużych katalogach e-commerce, serwisach informacyjnych i marketplace’ach — budżet crawlowania już jest ograniczeniem, a fala 504s przy szczytowym obciążeniu może pozbawić crawlowania stron, które naprawdę powinny zostać ponownie odwiedzone. Przy dużej skali przekroczenia czasu i budżet crawlowania to ta sama rozmowa.

Czas odpowiedzi serwera i TTFB są silną dźwignią prewencji — dla przyczyn po stronie źródła

Oto punkt pomijany przez większość artykułów o 504: czekanie na pojawienie się błędów, a potem grepowanie logów jest reaktywne. Ciągłe monitorowanie czasu odpowiedzi serwera, aby zobaczyć dryf, zanim przejdzie w timeout, jest proaktywne. Serwer, który dziś jest wolny, ale jeszcze nie przekracza limitu, jutro przy odrobinę większym obciążeniu albo odrobinę wolniejszej zależności staje się serwerem generującym 504. Obserwowanie TTFB (time to first byte) jako stałego sygnału wczesnego ostrzegania — nie tylko metryki po fakcie — pozwala wychwycić ten dryf.

Zastrzeżenie: monitoring TTFB dotyczy powolności po stronie źródła. Nie wykryje CDN-u przekraczającego czas na zdrowym źródle, źle skonfigurowanego load balancera rezygnującego zbyt szybko ani problemu ścieżki sieciowej między warstwami — najpierw trzeba ustalić warstwę wystawiającą (sekcja „Skąd 504 pochodzi” powyżej lub drzewo decyzji poniżej). TTFB jest prawdziwą, trwałą naprawą typowego przypadku rzeczywiście wolnego upstreamu, ale nie rozwiązaniem uniwersalnym. Po potwierdzeniu, że wąskim gardłem jest źródło, optymalizuj przez cache (strony, obiektów i krawędzi CDN), szybsze zapytania i właściwe indeksowanie bazy, autoskalowanie oraz rozsądne strojenie limitu upstreamu CDN.

Dlaczego „po prostu zwiększ limit czasu” to zły odruch

Zwiększenie proxy_read_timeout albo limitu upstreamu CDN-u może sprawić, że 504 przestanie być widoczny — ale nie przyspiesza odpowiedzi upstreamu. Co gorsza, przy obciążeniu dłuższe okno oczekiwania powoduje, że żądania na dłużej ustawiają się w kolejce i zajmują procesy robocze oraz połączenia, co może pogorszyć spiralę przeciążenia. Czasem podniesienie limitu jest właściwe (przy rzeczywiście długiej, dobrze zrozumianej operacji), ale jako odruch maskuje prawdziwy problem.

Gdy przestój jest planowany albo celowo zrzucasz obciążenie, właściwym narzędziem nie jest pozwalanie stronom zwracać 504 — zwróć 503 (z nagłówkiem Retry-After), aby wysłać wyszukiwarkom czysty, zamierzony sygnał „wróć później”, zamiast chaotycznego przekroczenia czasu.

Diagnozowanie 504 w praktyce

Zanim zaczniesz zgadywać przyczynę, ustal warstwę wystawiającą — na tym polega różnica między naprawą prawdziwego problemu a naprawą objawu:

  • Odtwórz problem i ustal, która warstwa odpowiedziała. Otwórz stronę w przeglądarce; wykonaj curl i obserwuj time_starttransfer dla TTFB; uruchom crawler, np. Ahrefs Site Audit lub Screaming Frog, aby sprawdzić, czy problem obejmuje całą witrynę, czy jest odosobniony. Jeśli możesz, przetestuj bezpośrednio źródło (z pominięciem CDN/proxy), aby zobaczyć, czy samo źródło kończy żądanie.
  • Odczytaj logi. Logi serwera i proxy mówią, która warstwa przekroczyła limit i — idealnie — na czym; może to być wolne zapytanie, zablokowany upstream lub wyczerpana pula procesów. Koreluj warstwy według czasu i identyfikatora żądania, zamiast zakładać.
  • Sprawdź Search Console. Statystyki crawlowania pokazują skoki kodów odpowiedzi i średni czas odpowiedzi; raport indeksowania stron i URL Inspection pokazują, czy Google trafia na przekroczenia czasu (w tym „Hostload exceeded”).

Ważne jest pogodzenie narzędzi: 504 w przeglądarce, 5xx w Ahrefs Site Audit i timeout w GSC mogą opisywać tę samą wolną przyczynę źródłową widzianą z różnych punktów obserwacji. Nie zakładaj, że trzy narzędzia oznaczają trzy problemy.

Powiązane kody

504 należy do małej rodziny. 500 jest ogólnym błędem serwera bez bardziej szczegółowego kodu; 502 jest błędną/zniekształconą odpowiedzią upstreamu; 503 to jawne, często zamierzone „niedostępne”. Wiedza o tym, który kod rzeczywiście zwracasz — i celowe zwracanie właściwego podczas planowanej niedostępności — to połowa sukcesu.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.