Kod 204 No Content

Co oznacza HTTP 204, dlaczego Google traktuje odpowiedzi 204 podobnie do soft 404s, kiedy 204 jest prawidłowo używany (API, beacony) oraz co zwracać zamiast niego w przypadku stron internetowych.

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

HTTP 204 No Content to kod powodzenia 2xx, który celowo zwraca puste ciało — nie jest błędem, nie mówi nic o tym, czy URL istnieje, i specyfikacja nie ogranicza go do z góry ustalonego zestawu metod. Jest właściwą odpowiedzią dla wywołań REST API DELETE/PUT oraz beaconów analitycznych (sendBeacon, Measurement Protocol GA4), choć projektanci API nie są zgodni, jak często po niego sięgać. Zastrzeżenie SEO jest wąskie: własna dokumentacja Google mówi, że przy 204 nie otrzymało treści do przetworzenia, więc strona, która ma zdobywać pozycje, nie zostanie zindeksowana na podstawie tej odpowiedzi — a w praktyce takie przypadki często pojawiają się w Search Console jako soft 404s, choć Google nie gwarantuje dokładnie tej etykiety ani terminu usunięcia. 204 jest właściwy dla endpointów API i beaconów, a błędny dla wszystkiego, co ma się pozycjonować. Jeśli strona naprawdę zniknęła, użyj 404 albo 410; jeśli została przeniesiona, użyj 301; jeśli powinna zawierać treść, napraw serwer/CDN wysyłający 204 zamiast 200 z rzeczywistym ciałem.

TL;DR — 204 jest zgodnym ze specyfikacją kodem powodzenia 2xx (RFC 9110 §15.3.5), który z założenia zwraca puste ciało — ciało musi być puste (bez Content-Length, nawet 0), a przeglądarki mogą odrzucić 204, które wysyła treść. Nie jest błędem i nic nie mówi o istnieniu URL-a, a RFC nie ogranicza go do żadnej stałej listy metod. Prawidłowe użycia to niemal wyłącznie odpowiedzi inne niż dokumenty: REST API DELETE/PUT oraz beacony analityczne (sendBeacon(), Measurement Protocol GA4) — choć praktycy nie zgadzają się, jak często API powinno po niego sięgać. Konsekwencja SEO jest wąska: tabela kodów statusu Google mówi wprost: “Google wasn’t able to receive any content and therefore can’t process it.” (tłumaczenie) „Google nie mogło odebrać żadnej treści, dlatego nie może jej przetworzyć” — co oznacza, że strona, która ma zdobywać pozycje, nie zostanie zindeksowana na podstawie tej odpowiedzi; w praktyce takie przypadki są często oznaczane w Search Console jako soft 404, choć Google nie gwarantuje tej konkretnej etykiety ani terminu usunięcia. Napraw przypadkowe 204 na poziomie strony, przywracając prawdziwe 200 albo używając 404/410/301 zgodnie z intencją.

Co oznacza 204 w specyfikacji

RFC 9110 (HTTP Semantics) nie pozostawia tu wątpliwości: 204 oznacza, że “the server has successfully fulfilled the request and that there is no additional content to send in the response payload body.” (tłumaczenie) „serwer pomyślnie zrealizował żądanie i nie ma dodatkowej treści do wysłania w ciele ładunku odpowiedzi.” To kod powodzenia — z tej samej rodziny 2xx co 200 OK — z celową różnicą: nie ma ciała.

Evidence for this claim RFC 9110 defines 204 No Content as a successful response with no additional content to send and says it is terminated by the header section because it cannot contain content. Scope: HTTP semantics for 204 responses. Confidence: high · Verified: IETF: RFC 9110 §15.3.5 — 204 No Content

Liczą się trzy szczegóły operacyjne. Po pierwsze, ciało rzeczywiście musi być puste: MDN zauważa, że 204 “must not include any content or the Content-Length header (browsers may reject responses that include content).” (tłumaczenie) „nie może zawierać żadnej treści ani nagłówka Content-Length (przeglądarki mogą odrzucać odpowiedzi zawierające treść)”. To prawdziwy zakaz, a nie luźna konwencja — RFC 9110 §8.6 całkowicie zabrania Content-Length w 204, więc „wyślij po prostu Content-Length: 0” (poprawka, którą widywałem w zaleceniach) również nie jest zgodna ze specyfikacją; odpowiedź kończy się na sekcji nagłówków, kropka. Po drugie, wszelkie nagłówki niesione przez 204 — ETag, Last-Modified — opisują wybraną reprezentację po zakończeniu działania, a nie wysłane ciało. Po trzecie, ETag pojawia się w niektórych odpowiedziach 204 (przykład MDN to PUT aktualizujący zasób w miejscu), ale RFC nie wymaga go w każdym 204 — nie traktuj go jako oczywistości. 204 jest domyślnie heurystycznie buforowalne, chyba że metoda albo jawne nagłówki cache-control mówią inaczej.

Co najważniejsze, 204 nie ma nic wspólnego z tym, czy URL istnieje. Działający endpoint API może poprawnie zwracać 204 bez końca. To różnica względem 404 (nie znaleziono) albo 410 (zniknęło) — te kody dotyczą braku, a 204 pomyślnego żądania, które celowo nie niesie ładunku.

Jak Google traktuje 204

Cała historia SEO jest tu węższa, niż sugeruje standardowy tekst blogów dostawców. Google indeksuje treść. 204 nie ma treści. Własna dokumentacja Google wyróżnia 204 konkretnym, ograniczonym stwierdzeniem: ogólna reguła 2xx mówi, że „Google rozważa treść do przetworzenia”, natomiast osobny wiersz 204 mówi: “Google wasn’t able to receive any content and therefore can’t process it.” (tłumaczenie) „Google nie mogło odebrać żadnej treści, dlatego nie może jej przetworzyć.”

Evidence for this claim Google says it treats a 204 response as though the URL returned a soft 404. Scope: Google Search indexing behavior for URLs returning HTTP 204. Confidence: high · Verified: Google: HTTP status codes and Search

To rzeczywista granica i warto precyzyjnie opisać, co obiecuje, a czego nie. Ogólne wskazówki 2xx na tej samej stronie mówią, że pusta albo przypominająca błąd treść może zostać zgłoszona jako soft 404 — ale sam wiersz 204 nie gwarantuje, że każdy 204 trafi pod tę konkretną etykietę Search Console, a Google nie publikuje dla niego terminu usunięcia. Pewne jest to, że 204 na URL-u z treścią daje potokowi indeksowania Google nic, z czym mógłby pracować, więc stwierdzenie, że URL nie zostanie zindeksowany na podstawie tej odpowiedzi, jest rozsądnym wnioskiem — nie twierdzeniem, które rozszerzałbym na „gwarantowaną utratę pozycji w całej witrynie” albo „automatyczne odzyskanie budżetu crawl”, bo dokumentacja Google nie składa żadnej z tych obietnic. W praktyce Search Console często pokazuje to jako soft 404 — to wzorzec, który widziałem i opisywałem — ale konkretną etykietę i czas traktuj jako obserwowane zachowanie, a nie udokumentowaną gwarancję.

Takie stanowisko zajmowałem we własnych tekstach. W moim przewodniku Kody statusu HTTP i ich wpływ na SEO na blogu Ahrefs, w części o obsłudze odpowiedzi 2xx przez Google, napisałem to wprost: “Most 2xxs will allow pages to be indexed. However, 204s will be treated as soft 404s and won’t be indexed.” (tłumaczenie) „Większość kodów 2xx pozwoli na indeksowanie stron. Jednak kody 204 będą traktowane jako soft 404 i nie zostaną zindeksowane.” Podtrzymuję to jako praktyczne odczytanie; dokładniejsze, aktualne sformułowanie z dokumentacji Google to opis „nie można odebrać ani przetworzyć treści” powyżej — na nie wskazałbym, gdy potrzebujesz dokładnej oficjalnej granicy.

Soft 404 są opisane jako przypadki, które nadal są crawlowne i marnują budżet crawl — ale to ogólna wskazówka Google dotycząca soft 404, a nie obietnica specyficzna dla 204. Użycie 204 nie zwalnia automatycznie zasobów crawl ani nie przekierowuje ich gdzie indziej; własne zastrzeżenie Google mówi, że przydział zasobów zależy od limitów obsługi, jakości witryny i jej zasobów, a nie od kodu statusu, który spowodował wykluczenie. Bezpieczny wniosek: napraw przypadkowy 204, bo uniemożliwia indeksowanie strony, a nie dlatego, że należy Ci się konkretna dywidenda z budżetu crawl.

Evidence for this claim Using 204 does not automatically free crawl budget or redirect crawl resources; the official Google 204 guidance establishes only that no content can be processed. Scope: web crawling and indexing Confidence: high · Verified: How HTTP status codes affect Google's crawlers

204 a kody, z którymi jest mylony

KodCiałoZnaczenieWłaściwe użycie
200 (rzeczywista treść)WypełnioneSukces, oto stronaStrona, którą chcesz zindeksować
200 (puste / tekst „nie znaleziono”)Puste albo tekst błęduZgłoszone powodzenie, brak rzeczywistej treści — soft 404Nic; to błąd do naprawienia
204Celowo pusteSukces, celowo bez ciałaAPI, beacony — nigdy URL strony
404DowolneNie znalezionoStrona, która zniknęła bez zamiennika
410DowolneZniknęło (trwale)Strona celowo i trwale usunięta
301Przeniesione na stałeStrona przeniesiona pod nowy URL

Pułapka polega na tym, że 204, puste 200, 404 i 410 mogą wszystkie skończyć jako „soft 404” w GSC, gdy brakuje użytecznej treści — ale dla klienta zgodnego ze specyfikacją sygnalizują zupełnie różne intencje. 410 jest celowym komunikatem „to istniało i zniknęło na stałe”; 204 nigdy nie został zaprojektowany do tego znaczenia i nie powinien znajdować się na URL-ach stron.

Kiedy 204 jest dokładnie właściwy (a nie błędem)

Niemal każda prawidłowa odpowiedź 204 nie jest odpowiedzią dokumentową:

  • REST API DELETE / PUT. Gdy klient usuwa zasób albo aktualizuje go w miejscu i nie ma nic sensownego do zwrócenia, 204 jest idiomatyczną odpowiedzią — to własny zalecany wzorzec RFC 9110.
  • Beacony analityczne i śledzące. Specyfikacja W3C Beacon, oparta na navigator.sendBeacon(), oczekuje od endpointów beaconów odpowiedzi 204. Endpoint Measurement Protocol Google Analytics 4 zwraca 204 dla zaakceptowanych zdarzeń. Warto zaznaczyć: GA4 zwraca 204 nawet dla zniekształconych albo nieprawidłowych ładunków, więc 204 potwierdza tylko, że endpoint był osiągalny i odpowiedział strukturalnie — nie że zdarzenie faktycznie przetworzono. Nie traktuj 204 beacona jako dowodu powodzenia.
  • UX „zapisz bez nawigowania”. PUT, który zapisuje stan w miejscu i zostawia użytkownika na bieżącej stronie — własne ujęcie MDN mówi, że przy 204 “the client doesn’t need to navigate away from its current page.” (tłumaczenie) „klient nie musi opuszczać bieżącej strony”.

Wspólny wniosek: to nie są URL-e, które ktokolwiek powinien indeksować, więc 204 jest poprawny i oczekiwany. Problemem jest wyłącznie 204 na URL-u dokumentu, który ma zdobywać pozycje.

Warto też pamiętać o niuansie: RFC 9110 nie ogranicza 204 konkretnie do DELETE/PUT/beaconów — to tylko częste wzorce. Definicja specyfikacji jest neutralna względem metody; liczy się kontrakt samej metody oraz to, czy zwrócenie reprezentacji byłoby użyteczne. To działa w obie strony. Żądanie GET zwracające 204 jest dozwolone protokołowo — praktycy od lat roztrząsają to na Stack Overflow — ale prawdziwe pytanie w przypadku indeksowalnej strony nie brzmi „czy 204 dla GET jest dozwolone”, tylko „czy ten URL musi przekazać Google reprezentację, aby dało się go znaleźć”, a dla strony, którą chcesz pozycjonować, odpowiedź zawsze brzmi: tak. Reguła SEO nie dotyczy więc użytej metody HTTP; dotyczy tego, czy URL ma być dokumentem.

Warto też wiedzieć, że twierdzenie „204 jest zawsze właściwe dla odpowiedzi API” nie ma powszechnej zgody nawet wśród projektantów API. Własny tekst Postmana wskazuje 204 jako pierwszy wybór dla działań, które nie mają nic do zwrócenia; Brandur Leach przedstawiał przeciwne stanowisko — pusta odpowiedź powodzenia może być nieco szkodliwa dla klientów API oczekujących reprezentacji z powrotem (zaktualizowanego stanu, wygenerowanego ID, obliczonego pola), nawet po udanym zapisie. To uzasadniony kompromis w projektowaniu API dotyczący wygody deweloperów, a nie kwestia poprawności HTTP — 204 pozostaje zgodny ze specyfikacją w obu wariantach — i jest niezależny od pytania SEO tego artykułu. W tekstach o API czasem pojawia się jeszcze jeden błąd: wysyłanie Content-Length: 0 w 204 „dla bezpieczeństwa”. Nie rób tego — RFC 9110 §8.6 całkowicie zabrania Content-Length w odpowiedzi 204, nie tylko wartości niezerowej.

Diagnozowanie i naprawa przypadkowego 204 na poziomie strony

Jeśli crawler (Screaming Frog, Ahrefs Site Audit) albo logi pokazują 204 na stronie, która powinna zawierać treść:

  1. Potwierdź, co faktycznie otrzymuje Googlebot. Użyj URL Inspection w Search Console, aby zobaczyć status i wyrenderowaną treść otrzymywaną przez Google — nie tylko to, co widzi Twoja przeglądarka. CDN, worker brzegowy, WAF albo trasa aplikacji mogą zwracać botom 204 lub robić to w określonych warunkach, choć dla Ciebie wszystko wygląda dobrze (ten sam wzorzec „u mnie w przeglądarce działa” co przy przypadkowym 403).
  2. Następnie napraw zgodnie z intencją:
    • Strona powinna istnieć i zawierać treść → znajdź logikę serwera/CDN-u/trasy aplikacji wysyłającą 204 i przywróć prawidłowe 200 z rzeczywistym ciałem.
    • Strona zniknęła bez zamiennika → zwróć 404 albo 410.
    • Strona została przeniesiona301 na nowy URL.
  3. Monitoruj. Obserwuj raport Page Indexing w GSC pod kątem wpisów soft 404, śledź kody statusu crawl w logach i skonfiguruj crawler, aby zgłaszał 204, tak aby przypadkowy kod na szablonie nie zdeindeksował po cichu całej sekcji.

Zapamiętaj taki model mentalny: 204 nie jest „zły”. To precyzyjne narzędzie, właściwe dla endpointów API i beaconów, a błędne dla dokumentów. Problem pojawia się wyłącznie wtedy, gdy używasz go w złym miejscu. Kody pokrewne, takie jak 403, 404, 410 i soft 404, mają własne miejsce w tej decyzji — miejsce 204 jest poza stroną.

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.