500 Wewnętrzny błąd serwera

Czym jest 500 Internal Server Error, jak Googlebot traktuje błędy serwera podczas crawlowania, dlaczego utrzymujące się 500 prowadzą do usunięcia stron z indeksu oraz jak je diagnozować i naprawiać.

Opublikowano po raz pierwszy: 28 cze 2026 · Ostatnia aktualizacja: 8 sie 2026 · Advanced
Języki

500 Internal Server Error to ogólny kod awarii po stronie serwera — RFC 9110 definiuje go jako nieoczekiwany warunek, który uniemożliwił serwerowi spełnienie żądania, i nic więcej; nie mówi, co się zepsuło, jak długo potrwa problem ani czy ponowienie się powiedzie. Pojedynczy 500 Google zwykle ponawia, ale utrzymujące się 500 w całej witrynie wywołują udokumentowaną reakcję Google: wolniejsze crawlowanie i ostateczne usunięcie z indeksu, jeśli błędy nie ustąpią. John Mueller podał przybliżoną, osobistą regułę — odsetek błędów powyżej około 1% prawdopodobnie oznacza rzeczywisty problem — ale Google nie publikuje twardego progu. Najpierw diagnozuj w logach serwera, potem sprawdź raport Błąd serwera (5xx) w GSC; przyczyny takie jak konflikty wtyczek i wyczerpanie zasobów są częste na konkretnych stosach (szczególnie WordPress), a nie uniwersalne.

TL;DR — RFC 9110 definiuje 500 jako nieoczekiwany warunek, który uniemożliwił serwerowi spełnienie żądania — to cała granica samego kodu stanu; przyczyna, czas trwania i zasadność ponowienia należą do diagnozy, a nie semantyki. Udokumentowana reakcja Google jest stopniowa: odosobnione 500 są zwykle ponawiane; utrzymujące się, obejmujące całą witrynę 500 powodują wolniejsze crawlowanie i, jeśli problem nie ustąpi, ostateczne usunięcie stron z indeksu. Mueller podał przybliżoną, osobistą regułę — wskaźnik błędów powyżej około 1% prawdopodobnie oznacza, że coś jest zepsute — ale nie jest to udokumentowany próg Google, a sekwencja ponowienie → wolniejsze crawlowanie → usunięcie opisuje udokumentowane zachowania, nie stały timer. Najpierw diagnozuj na podstawie logów serwera, potem raportu “Server error (5xx)” (tłumaczenie) „Błąd serwera (5xx)” w GSC i statystyk crawlowania “by response” (tłumaczenie) „według odpowiedzi”. Różnica 500–503 ma znaczenie: 503 jest zatwierdzonym kodem “come back later” (tłumaczenie) „wróć później” z około dwudniowym okresem łagodnego ponawiania, a niekontrolowany 500 nie ma takiej ulgi. Evidence for this claim RFC 9110 defines 500 as an unexpected condition encountered by the server that prevented it from fulfilling the request. Scope: web requests Confidence: high · Verified: RFC 9110: HTTP Semantics

Czym naprawdę jest 500

Zacznij od specyfikacji, a nie od skrótu używanego przez praktyków. RFC 9110 — standard semantyki HTTP — definiuje 500 Internal Server Error jako nieoczekiwany warunek, który uniemożliwił serwerowi spełnienie żądania. To cała granica tego, co sam kod stanu mówi. Nie identyfikuje przyczyny, wadliwego komponentu, czasu trwania problemu, tego, czy to samo żądanie powiedzie się po ponowieniu, ani tego, czy odzyskanie jest prawdopodobne. Wszystko poza „serwer napotkał coś, czego nie potrafił obsłużyć” jest diagnozą, a diagnozy szuka się w logach błędów serwera, nie w specyfikacji ani przeglądarce. Evidence for this claim A 500 response means the server encountered an unexpected condition that prevented it from fulfilling the request. Scope: RFC 9110 defines the generic response semantics; it does not diagnose the underlying server fault. Confidence: high · Verified: IETF: RFC 9110 §15.6.1 — 500 Internal Server Error

W przewodniku Ahrefs o kodach stanu zachowuję celowo prostą definicję dla praktyków: serwer “encounters some kind of issue and doesn’t have a better or more specific error code.” (tłumaczenie) „napotyka jakiś problem i nie ma lepszego ani bardziej szczegółowego kodu błędu”. To opisowe wyjaśnienie tej samej granicy RFC — nadal kod ogólny, nadal objaw, a nie diagnoza.

500 należy do rodziny 5xx razem z 502 (błędna brama), 503 (usługa niedostępna) i 504 (przekroczenie czasu bramy) — wszystkie dotyczą serwera, ale 500 oznacza, że “no better code applies.” (tłumaczenie) „nie ma zastosowania lepszy kod”. Ponieważ sam kod stanu nie zawiera szczegółów diagnostycznych, odświeżenie strony w przeglądarce nie mówi nic o tym, dlaczego problem wystąpił; źródłem prawdy są logi błędów serwera.

Jak Googlebot traktuje 500

Crawler Google jest z założenia uprzejmy — dostosowuje tempo do kondycji serwera, a odpowiedzi 5xx są jednym z sygnałów “slow down” (tłumaczenie) „zwolnij”. Aktualna dokumentacja Google potwierdza kształt tej reakcji: odpowiedzi 5xx i 429 powodują tymczasowe zmniejszenie szybkości crawlowania (zależne od liczby adresów URL, których dotyczą), a adresy URL, które nadal zawodzą, mogą ostatecznie zostać usunięte z indeksu; treść już zindeksowana pozostaje w międzyczasie, do czasu udanego odświeżenia. Evidence for this claim Google reduces crawling in response to 5xx errors and eventually removes persistently failing URLs from its index. Scope: Google documents the general 5xx progression; it does not provide a guaranteed retry or recovery timeline for an individual URL. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers John Mueller opisał tę samą sekwencję własnymi słowami podczas sesji Google SEO Office Hours, zrelacjonowanej przez Search Engine Journal:

“We don’t have any strong thresholds on that. But essentially what happens with 500 errors is we’ll try to retry them. And if we continue to see …the 500 errors then we will …slow down crawling. And if we continue to see that there are 500 errors then we will drop those URLs from the index.” (tłumaczenie) „Google nie publikuje tu twardych progów: najpierw ponawia 500, potem może spowolnić crawlowanie, a przy dalszych błędach usunąć adresy URL z indeksu.”

Odczytaj to jako opis udokumentowanych zachowań — ponowienia, wolniejsze crawlowanie, możliwe usunięcie — a nie stały trzyetapowy timer z gwarantowanymi przejściami lub terminami; Google nie publikuje dokładnych progów, przy których jeden etap staje się kolejnym. Pojedynczy 500 pod jednym adresem URL jest zwykle ponawiany, a następne udane pobranie zazwyczaj kończy sprawę — ale to opis częstego przypadku, a nie gwarancja zerowego kosztu jednorazowej awarii. Rzeczywiste, udokumentowane ryzyko dotyczy błędów, które nie ustępują.

Dlaczego 500 w całej witrynie jest gorszy niż odosobniony

Gdy naraz 500 zwraca duża część witryny, pojawia się trudniejsza dynamika. Aktualna dokumentacja Google potwierdza, że obniżenie szybkości crawlowania skaluje się z liczbą adresów URL, których dotyczy problem — im większa część witryny zawodzi, tym bardziej crawlowanie zwalnia. Mueller opisał bardziej szczegółowo powód, ujmując go jako podejrzenie Google, że własne crawlowanie może być częścią przeciążenia:

“But if a large part of a site consistently has 500 errors and we might assume that maybe we’re causing the problem and we’ll slow down crawling of the whole site and at some point we’ll say well, it looks like these pages are really gone, we’re going to drop them.” (tłumaczenie) „Gdy duża część witryny stale zwraca 500, Google może spowolnić crawlowanie całej witryny i ostatecznie usunąć strony.”

To konkretne ujęcie przyczynowe „zakładamy, że sami to powodujemy” traktuj jako charakterystykę Muellera, a nie dosłowne sformułowanie z aktualnej oficjalnej dokumentacji Google — sam mechanizm jest udokumentowany (więcej zawodzących adresów URL oznacza większe ograniczenie crawlowania), choć dokładniej można zweryfikować jego przyczynowe uzasadnienie w wypowiedzi Muellera. Tak czy inaczej warto zapamiętać praktyczną pętlę sprzężenia zwrotnego: agresywne crawlowanie przy wyczerpaniu zasobów może wywołać więcej 500 → Google wycofuje się z crawlowania całej witryny → a jeśli błędy nadal trwają, strony są usuwane. Oznacza to również, że problem 500 nie zawsze jest błędem kodu — czasem serwer ugina się pod równoległym obciążeniem, które pojawia się tylko przy skokach ruchu lub crawlowania.

Ile to „za dużo”?

Nie ma twardej granicy — własna dokumentacja Google dotycząca diagnozowania nie publikuje żadnego progu odsetka błędów. Mueller podał przybliżoną, osobistą regułę w SEO Office Hours (ponownie zrelacjonowaną przez Search Engine Journal, a nie z oficjalnej publikacji Google):

“My feeling is if you’re seeing something more than one percent then that sounds like something is kind of broken.” (tłumaczenie) „Moje odczucie jest takie, że odsetek powyżej jednego procenta brzmi jak oznaka rzeczywistego problemu.”

Około 1% potraktuj jako nieoficjalny test zapachowy, przypisywany Muellerowi, a nie udokumentowany lub egzekwowany limit Google. Poniżej prawdopodobnie wszystko jest w porządku; powyżej warto zbadać sytuację — ale nie traktuj przekroczenia 1% jako automatycznego wyzwalacza i nie uznawaj pozostania poniżej tej wartości za gwarancję. Jedyna liczba, do której Google publicznie się zobowiązuje, to brak liczby: „nie mamy żadnych silnych progów”.

500 a 503 — różnica, która ma znaczenie

Tu wiele osób popełnia błąd. 503 Service Unavailable jest zatwierdzonym sposobem powiedzenia crawlerowi “I’m temporarily down, come back later.” (tłumaczenie) „tymczasowo nie działam, wróć później”. Google traktuje go jako zamierzony i daje okres łagodnego ponawiania. Własny dokument Google dotyczący diagnozowania crawlowania mówi wprost:

“Return 503 or 429 HTTP response status codes temporarily for Googlebot requests when your server is overloaded. Googlebot will retry these URLs for about 2 days. Note that returning ‘no availability’ codes for more than a few days will cause Google to permanently slow or stop crawling URLs on your site.” (tłumaczenie) „Przy przeciążeniu zwróć tymczasowo 503 lub 429; Googlebot ponawia te adresy przez około 2 dni, a dłuższe kody niedostępności mogą trwale spowolnić lub zatrzymać crawlowanie.”

Różnica jest taka: 503 jest zamierzony i ma około dwudniowy okres ponawiania; niekontrolowany 500 jest niezamierzony i nie ma takiej ulgi — Google po prostu ponawia, aż zrezygnuje. Praktyczny wniosek: przy planowanej konserwacji lub celowej ochronie przed przeciążeniem zwracaj 503 (najlepiej z nagłówkiem Retry-After), a nie 500 ani stronę błędu z kodem 200. Nigdy nie udawaj prawdziwej awarii kodem 200.

Jak zdiagnozować 500

Przechodź przez warstwy — aplikacja/kod, platforma/CMS, infrastruktura i zasoby, a następnie konfiguracja — zaczynając od kroków najtańszych i najbardziej prawdopodobnych. Kroki oznaczone (specyficzne dla WordPressa) są częstą praktyką WordPressa, a nie uniwersalnymi naprawami; dostosuj je do rzeczywistego stosu.

  1. Logi błędów serwera. error.log / access.log (albo przeglądarka logów platformy). Dopasuj znaczniki czasu do zawodnych żądań. Tu znajdziesz właściwy ślad stosu, krytyczny błąd PHP lub awarię połączenia z bazą danych. Wszystko poniżej jest zgadywaniem, dopóki ich nie odczytasz.
  2. GSC — raport Błąd serwera (5xx). Raport indeksowania stron w Google Search Console oznacza adresy URL, dla których samo Google widzi 500. Następnie otwórz Statystyki crawlowania i odczytaj w czasie rozkład „według odpowiedzi” — tak odróżnisz chwilową przerwę od rzeczywistego, utrzymującego się problemu z dostępnością.
  3. Bing Webmaster Tools. Alerty o błędach crawlowania grupują błędy serwera (5xx) i wskazują konkretne adresy URL oraz narzędzie Crawl Information.
  4. Odtwórz problem jako bot, nie tylko w przeglądarce. Strona może zwracać 500 Googlebotowi, a Tobie ładować się poprawnie — przy obciążeniu wywołanym crawlowaniem, błędnej konfiguracji wykrywania botów/zapory lub limitach wydajności działających dopiero przy równoległym ruchu bota. Użyj URL Inspection (GSC), Fetch as Bingbot albo curl z user-agentem bota, aby wykryć awarie dotyczące tylko botów. „U mnie w przeglądarce działa” nie oznacza pełnej sprawności.
  5. Konflikty wtyczek / motywów / modułów (wzorzec specyficzny dla WordPressa; dostosuj gdzie indziej). Najpierw wykonaj kopię zapasową — zawsze miej drogę powrotu, zanim zaczniesz wyłączać elementy. Następnie wyłącz rozszerzenia i włączaj je pojedynczo, aby odizolować winowajcę, sprawdzając uprawnienia i właściciela plików, których dotykasz. Przewodniki dostawców hostingu dotyczące WordPressa często opisują ten wzorzec, ale jest to obserwacja zależna od stosu, a nie dowód, że wszędzie jest to główna przyczyna — w innym CMS-ie lub aplikacji niestandardowej odpowiednikiem będzie konflikt modułu, pakietu lub oprogramowania pośredniczącego.
  6. Wyczerpanie zasobów. Limity pamięci PHP, połączeń z bazą, możliwości hostingu oraz skoki ruchu lub crawlowania. Dostawca hostingu często może potwierdzić to po swojej stronie.
  7. Konfiguracja i ostatnie zmiany. Uszkodzony .htaccess, błędna edycja konfiguracji serwera, świeże wdrożenie lub nieprawidłowe dane dostępowe do bazy. Ostatnie zmiany dają największą szansę na szybkie znalezienie przyczyny.

Jak to naprawić (dopasuj naprawę do przyczyny)

Dopasuj naprawę do warstwy wskazanej przez diagnozę. To typowe wzorce opisywane w różnych materiałach praktyków, a nie ranking uniwersalnych lub najbardziej prawdopodobnych przyczyn w Twoim konkretnym stosie:

  • Spowodowała to konfiguracja/wdrożenie → cofnij zmianę; napraw .htaccess, konfigurację lub dane dostępowe.
  • Wyczerpanie zasobów → zwiększ limity (pamięć PHP, połączenia z bazą) albo podnieś klasę hostingu; jeśli crawlowanie wywołuje przeciążenie, jest to również temat ograniczenia jego szybkości.
  • Konflikt wtyczki/modułu → usuń albo zastąp problematyczne rozszerzenie.
  • Błąd kodu → napraw kod i dodaj brakującą obsługę błędów.
  • Nie wiesz → przekaż sprawę hostingowi wraz z dokładnymi znacznikami czasu i wierszami logów. Nie zgaduj na produkcji.

Zapobieganie nawrotom

Monitorowanie i alarmowanie o odsetku 5xx, testowanie zmian na stagingu przed wdrożeniem na produkcji, testy obciążenia przed znanymi skokami ruchu oraz — jeśli samo crawlowanie Googlebota wywołuje problem — zarządzanie obciążeniem crawlowania (i celowe zwracanie 503/429 podczas rzeczywistego przeciążenia, zamiast pozwalać serwerowi emitować niekontrolowane 500).

FAQ

Czy błąd 500 szkodzi SEO? Udokumentowane ryzyko dotyczy głównie utrzymywania się problemu na dużą skalę. Pojedyncze 500 są zwykle ponawiane, bez udokumentowanej kary za jednorazową przerwę; utrzymujące się 500 w całej witrynie spowalniają crawlowanie i mogą doprowadzić do usunięcia z indeksu.

Po jakim czasie Google usunie z indeksu stronę z 500? Nie ma stałego harmonogramu. Google najpierw ponawia próby i spowalnia crawlowanie; usunięcie z indeksu następuje dopiero, jeśli błędy trwają. Napraw problem, a strony zwykle wracają, gdy crawlowanie ponownie się powiedzie.

Dlaczego moja witryna zwraca 500 Googlebotowi, ale działa w przeglądarce? 500 dotyczące tylko botów zwykle oznacza problemy z pojemnością lub obsługą botów — obciążenie wywołane crawlowaniem, reguły zapory/botów albo limity działające dopiero przy równoległym ruchu botów. Ufaj logom, nie ręcznemu testowi w przeglądarce.

Czy 500 może spowolnić crawlowanie całej witryny, a nie tylko dotkniętych stron? Tak — dokumentacja Google potwierdza, że zmniejszenie szybkości crawlowania skaluje się z liczbą zawodzących adresów URL, więc duża część witryny zwracająca 500 spowalnia crawlowanie w całej witrynie. Mueller dodatkowo ujął przyczynę jako podejrzenie Google, że jego własne crawlowanie może być częścią przeciążenia — to jego charakterystyka, a nie dosłowne brzmienie aktualnej oficjalnej dokumentacji.

Co powoduje 500 w WordPressie? W samym WordPressie dostawcy hostingu i społeczność WordPressa najczęściej wskazują konflikty wtyczek/motywów, uszkodzony .htaccess lub osiągnięcie limitu pamięci PHP — to raporty dotyczące tej platformy, a nie twierdzenie, że są to uniwersalnie najczęstsze przyczyny każdego 500. Opisana wyżej kolejność diagnozy (najpierw logi, potem ostatnie zmiany) jest taka sama niezależnie od CMS-a.

Czy można bezpiecznie automatycznie ponowić żądanie po 500? Tylko po sprawdzeniu metody i idempotencji żądania — sam status 500 nie uprawnia do zastosowania dowolnej polityki ponowień. GET, HEAD, PUT i DELETE zwykle można bezpiecznie ponawiać, ponieważ są idempotentne (powtórzenie nie powinno powodować dodatkowych skutków ubocznych); zwykły POST zazwyczaj nie jest, chyba że API wyraźnie gwarantuje idempotencję (na przykład przez klucz idempotencji) — ślepe ponowienie grozi zduplikowanym zamówieniem, e-mailem albo podwójnie pobraną płatnością. Gdy ponawiasz próbę, użyj wykładniczego backoffu z jitterem, ogranicz liczbę prób i ustaw budżet ponowień, aby nie obciążać walczącego z problemem serwera lawiną kolejnych żądań.

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.