{"id":2173,"date":"2026-08-17T10:52:00","date_gmt":"2026-08-17T09:52:00","guid":{"rendered":"https:\/\/jalvo.eu\/przestoj-serwera-a-seo-co-powinno-zwracac-proxy\/"},"modified":"2026-09-25T00:16:55","modified_gmt":"2026-09-24T23:16:55","slug":"przestoj-serwera-a-seo-co-powinno-zwracac-proxy","status":"publish","type":"post","link":"https:\/\/jalvo.eu\/pl\/przestoj-serwera-a-seo-co-powinno-zwracac-proxy\/","title":{"rendered":"Przest\u00f3j serwera a SEO: co powinno zwraca\u0107 proxy"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Gdy chodzi o <strong>przest\u00f3j serwera a SEO<\/strong>, zasada jest kr\u00f3tka. Kiedy serwer \u017ar\u00f3d\u0142owy le\u017cy, proxy powinno zwraca\u0107 kod 5xx, najlepiej 503. Nigdy stron\u0119 b\u0142\u0119du z kodem 200 i nigdy 404. Ten poradnik jest dla w\u0142a\u015bcicieli stron, kt\u00f3rych serwer \u017ar\u00f3d\u0142owy od czasu do czasu pada i kt\u00f3rzy nie wiedz\u0105, co w tym czasie dostaj\u0105 roboty wyszukiwarek.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A sprawa wygl\u0105da tak: podczas awarii serwer \u017ar\u00f3d\u0142owy w og\u00f3le nie odpowiada, wi\u0119c o tym, co zobaczy Googlebot, decyduje to, co stoi przed nim (zwykle reverse proxy). Gdy za proxy stoi WordPress, r\u00f3wnie wa\u017cne jest, \u017ceby proxy w normalnej pracy poprawnie obs\u0142ugiwa\u0142o <a href=\"https:\/\/jalvo.eu\/pl\/wordpress-za-reverse-proxy-przekierowania-i-https\/\">przekierowania i ruch HTTPS<\/a>. To samo proxy obs\u0142uguje ca\u0142e po\u0142\u0105czenie z robotem, \u0142\u0105cznie z wyborem protoko\u0142u, wi\u0119c warto wiedzie\u0107, <a href=\"https:\/\/jalvo.eu\/pl\/czy-googlebot-uzywa-http2-co-zmienia-dla-serwera\/\">jak Googlebot korzysta z HTTP\/2<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Co widzi Googlebot, gdy serwer \u017ar\u00f3d\u0142owy przestaje dzia\u0142a\u0107?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Widzi kod stanu z warstwy proxy, kt\u00f3ra stoi przed serwerem \u017ar\u00f3d\u0142owym. Tylko tyle. Je\u015bli serwer \u017ar\u00f3d\u0142owy odrzuca po\u0142\u0105czenia albo si\u0119 wysypuje, NGINX i podobne proxy odpowiadaj\u0105 kodem 502 Bad Gateway. Je\u015bli serwer przyjmuje \u017c\u0105danie, ale nigdy go nie ko\u0144czy, zwykle dostaniesz 504 Gateway Timeout. Niekt\u00f3re konfiguracje pokazuj\u0105 zamiast tego w\u0142asn\u0105 stron\u0119 b\u0142\u0119du, a ta mo\u017ce mie\u0107 dowolny kod stanu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla indeksowania liczy si\u0119 wy\u0142\u0105cznie kod stanu. Widoczny tekst nie ma znaczenia. Strona z napisem \u201echwilowo niedost\u0119pna\u201d, kt\u00f3ra zwraca 200? Dla robota to zwyk\u0142a, dzia\u0142aj\u0105ca strona. Taka rozbie\u017cno\u015b\u0107 to jedna z <a href=\"https:\/\/jalvo.eu\/pl\/reverse-proxy-kiedy-pomaga-kiedy-zakrywa-problem\/\">typowych awarii warstwy proxy<\/a>, kt\u00f3re zwykle umykaj\u0105 uwadze, dop\u00f3ki nie spadn\u0105 pozycje.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jak Google traktuje b\u0142\u0119dy 5xx i tempo crawlowania<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wed\u0142ug <a href=\"https:\/\/developers.google.com\/crawling\/docs\/troubleshooting\/http-status-codes\" rel=\"nofollow noopener\" target=\"_blank\">dokumentacji Google o kodach HTTP<\/a> odpowiedzi 5xx i 429 sprawiaj\u0105, \u017ce roboty Google tymczasowo zwalniaj\u0105, a tre\u015b\u0107 odpowiedzi 5xx jest ignorowana. Adresy URL, kt\u00f3re ju\u017c s\u0105 w indeksie, zostaj\u0105 w nim przez jaki\u015b czas, ale ostatecznie wypadaj\u0105, a adresy, kt\u00f3re stale zwracaj\u0105 b\u0142\u0105d serwera, s\u0105 usuwane. Spowolnienie jest tym wi\u0119ksze, im wi\u0119cej pojedynczych adres\u00f3w zwraca b\u0142\u0105d serwera. Gdy serwer zn\u00f3w odpowiada kodem 2xx, Google stopniowo zwi\u0119ksza tempo crawlowania.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ta sama strona wrzuca 500, 502 i 503 do jednej grupy b\u0142\u0119d\u00f3w serwera. Nie opisuje osobnego traktowania 502 i 503. Wi\u0119c nie, \u017caden z nich nie ochroni twoich pozycji lepiej od drugiego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego strona serwisowa z kodem 200 lub 404 szkodzi bardziej ni\u017c 503<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kod 200 m\u00f3wi Google, \u017ce twoja strona b\u0142\u0119du to prawdziwa tre\u015b\u0107. Kod 404 m\u00f3wi, \u017ce strony ju\u017c nie ma. Podczas awarii oba s\u0105 b\u0142\u0119dne. Dokumentacja kod\u00f3w stanu Google podaje, \u017ce tre\u015b\u0107 z odpowiedzi 2xx mo\u017ce zosta\u0107 wzi\u0119ta pod uwag\u0119 przy indeksowaniu, a to znaczy, \u017ce komunikat \u201ezaraz wracamy\u201d mo\u017ce zast\u0105pi\u0107 tw\u00f3j artyku\u0142 w indeksie. S\u0142abo. Ta sama dokumentacja m\u00f3wi, \u017ce zaindeksowane adresy zwracaj\u0105ce 4xx s\u0105 usuwane z indeksu i z czasem crawlowane rzadziej.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W\u0142a\u015bciwy kod stanu dla strony serwisowej to wi\u0119c 5xx. Przyjazn\u0105 stron\u0119 dla odwiedzaj\u0105cych mo\u017cesz zostawi\u0107 - po prostu serwuj j\u0105 z kodem 503.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja NGINX, \u017ceby podczas awarii zwraca\u0142 503 z Retry-After<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mo\u017cesz to ustawi\u0107 na w\u0142asnym NGINX albo serwerze \u017ar\u00f3d\u0142owym za pomoc\u0105 jednego pliku statycznego i kilku dyrektyw. T\u0119 cz\u0119\u015b\u0107 konfigurujesz po swojej stronie, nie w proxy.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Utw\u00f3rz statyczny plik serwisowy, na przyk\u0142ad <em>\/var\/www\/errors\/maintenance.html<\/em>, niezale\u017cny od aplikacji i bazy danych.<\/li>\n<li>Przekieruj na niego b\u0142\u0119dy upstreamu dyrektyw\u0105 <code>error_page<\/code> i w\u0142\u0105cz <code>proxy_intercept_errors<\/code>, \u017ceby przechwytywa\u0107 te\u017c b\u0142\u0119dy zwracane przez sam serwer \u017ar\u00f3d\u0142owy.<\/li>\n<li>Wymu\u015b kod odpowiedzi 503 sk\u0142adni\u0105 <code>=503<\/code>.<\/li>\n<li>Dodaj nag\u0142\u00f3wek <code>Retry-After<\/code> z parametrem <code>always<\/code>, \u017ceby NGINX wysy\u0142a\u0142 go tak\u017ce przy odpowiedziach z b\u0142\u0119dem.<\/li>\n<li>Zdecyduj, jak ma si\u0119 zachowywa\u0107 robots.txt. Upewnij si\u0119, \u017ce nie zamienia si\u0119 w twoj\u0105 stron\u0119 HTML z kodem 200, i przetestuj go osobno.<\/li>\n<\/ol>\n\n\n\n<pre><code>location \/ {\n    proxy_pass http:\/\/origin;\n    proxy_intercept_errors on;\n    error_page 502 504 =503 \/maintenance.html;\n}\n\nlocation = \/maintenance.html {\n    root \/var\/www\/errors;\n    internal;\n    add_header Retry-After 1800 always;\n}<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Retry-After to standardowy nag\u0142\u00f3wek HTTP, kt\u00f3ry m\u00f3wi klientom, kiedy wr\u00f3ci\u0107. Podlinkowana wy\u017cej strona Google nie m\u00f3wi, jak u\u017cywaj\u0105 go jej roboty, wi\u0119c traktuj go jako uprzejmo\u015b\u0107, a nie d\u017awigni\u0119 rankingow\u0105. Sprawdzenie efektu jest proste: zatrzymaj serwer \u017ar\u00f3d\u0142owy i uruchom <code>curl -I https:\/\/example.com\/<\/code>. Powiniene\u015b zobaczy\u0107 lini\u0119 statusu 503 i nag\u0142\u00f3wek Retry-After. Dok\u0142adnie to dosta\u0142by robot.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Planowane prace a nieoczekiwane awarie: co sprawdzi\u0107<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Planowane prace to \u0142atwy przypadek. \u015awiadomie prze\u0142\u0105czasz na 503, trzymasz kr\u00f3tkie okno i jak najszybciej wracasz do 2xx. Ba\u0142agan zaczyna si\u0119 przy nieoczekiwanych awariach, bo domy\u015blna odpowied\u017a b\u0142\u0119du mo\u017ce pochodzi\u0107 z CMS-a albo panelu hostingu, kt\u00f3ry ch\u0119tnie serwuje \u0142adnie ostylowan\u0105 stron\u0119 z kodem 200. Po ka\u017cdym incydencie zacznij od sprawdzenia, czy strona b\u0142\u0119du nie zwr\u00f3ci\u0142a kodu 200, bo Google traktuje taki wzorzec jak <a href=\"https:\/\/jalvo.eu\/pl\/bledy-soft-404-strony-z-kodem-200\/\">mi\u0119kki b\u0142\u0105d 404 (soft 404)<\/a> i mo\u017ce po cichu usun\u0105\u0107 te adresy z indeksu. Potem sprawd\u017a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>jaki kod stanu faktycznie zwraca twoja strona b\u0142\u0119du,<\/li>\n<li>co zwraca robots.txt, gdy serwer \u017ar\u00f3d\u0142owy nie dzia\u0142a,<\/li>\n<li>b\u0142\u0119dy indeksowania w Search Console w kolejnych dniach,<\/li>\n<li>czy monitoring dost\u0119pno\u015bci ci\u0119 powiadomi\u0142 i jak szybko.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ta sama dyscyplina obowi\u0105zuje zreszt\u0105 przy zmianie serwer\u00f3w lub adres\u00f3w. Ten przypadek omawia poradnik o <a href=\"https:\/\/jalvo.eu\/pl\/migracja-sieci-stron-na-nowe-ip\/\">migracji bez utraty pozycji<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gdzie w tym wszystkim jest warstwa proxy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reverse proxy pozostaje osi\u0105galne, gdy serwer \u017ar\u00f3d\u0142owy za nim pada. Dlatego to ono decyduje o odpowiedzi, kt\u00f3r\u0105 dostaj\u0105 roboty. Jalvo to reverse proxy NGINX z adresami IP w UE i USA, panelem do kierowania domen, rotacj\u0105 IP, geotargetowaniem i opcjonalnym hostingiem. Opisana wy\u017cej obs\u0142uga b\u0142\u0119d\u00f3w nadal nale\u017cy do konfiguracji twojego serwera. Na stronie <a href=\"https:\/\/jalvo.eu\/pl\/#features\">dost\u0119pno\u015b\u0107 i wydajno\u015b\u0107 proxy<\/a> znajdziesz, co obejmuje us\u0142uga.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">W\u0142a\u015bciwy kod stanu przy przestoju serwera a SEO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Serwer \u017ar\u00f3d\u0142owy nie dzia\u0142a? Zwracaj 503 albo inny kod 5xx, nigdy stron\u0119 z kodem 200 ani 404, i jak najszybciej wr\u00f3\u0107 do odpowiedzi 2xx. Przetestuj konfiguracj\u0119 curl-em przed nast\u0119pn\u0105 awari\u0105, a nie w jej trakcie. Nie wiesz, jak zachowuje si\u0119 tw\u00f3j stos? <a href=\"https:\/\/jalvo.eu\/pl\/kontakt\/\">Zapytaj nas o swoj\u0105 konfiguracj\u0119<\/a>, a sprawdzimy, jak skierowane s\u0105 twoje domeny. Kilka linijek konfiguracji to wszystko, co dzieli nieszkodliwy przest\u00f3j od utraty pozycji, i dlatego ten punkt powinien by\u0107 na ka\u017cdej li\u015bcie kontrolnej przestoju serwera a SEO.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1790291434442-0\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Czy b\u0142\u0105d 502 bad gateway szkodzi w oczach Googlebota?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>502 to b\u0142\u0105d serwera, a dokumentacja Google umieszcza go w tej samej grupie co 500 i 503. Google tymczasowo zwalnia crawlowanie i ignoruje tre\u015b\u0107 odpowiedzi. Zaindeksowane ju\u017c adresy zostaj\u0105 w indeksie przez jaki\u015b czas, ale wypadaj\u0105 z niego, je\u015bli b\u0142\u0105d si\u0119 utrzymuje.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790291434442-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Czy strona serwisowa powinna zwraca\u0107 200 czy 503?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>503. Tre\u015b\u0107 z odpowiedzi 2xx mo\u017ce zosta\u0107 wzi\u0119ta pod uwag\u0119 przy indeksowaniu, wi\u0119c komunikat serwisowy z kodem 200 mo\u017ce zast\u0105pi\u0107 twoj\u0105 prawdziw\u0105 stron\u0119 w wynikach wyszukiwania. Odwiedzaj\u0105cy i tak widz\u0105 t\u0119 sam\u0105 stron\u0119. Zmienia si\u0119 tylko kod stanu.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790291434442-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Ile trwa powr\u00f3t crawlowania do normy po awarii?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Google nie podaje konkretnego czasu. Dokumentacja m\u00f3wi tylko, \u017ce gdy serwer zn\u00f3w zwraca 2xx, tempo crawlowania stopniowo ro\u015bnie. W praktyce szybko usu\u0144 awari\u0119 i obserwuj statystyki indeksowania w Search Console, \u017ceby \u015bledzi\u0107 powr\u00f3t do normy.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Gdy chodzi o przest\u00f3j serwera a SEO, zasada jest kr\u00f3tka. Kiedy serwer \u017ar\u00f3d\u0142owy le\u017cy, proxy powinno zwraca\u0107 kod 5xx, najlepiej 503. Nigdy stron\u0119 b\u0142\u0119du z kodem 200 i nigdy 404. Ten poradnik jest dla w\u0142a\u015bcicieli stron, kt\u00f3rych serwer \u017ar\u00f3d\u0142owy od czasu do czasu pada i kt\u00f3rzy nie wiedz\u0105, co w tym czasie dostaj\u0105 roboty wyszukiwarek. [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":2153,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[182],"tags":[290,28,349],"class_list":["post-2173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-pl","tag-google-x","tag-seo-pl","tag-serwer"],"acf":[],"_links":{"self":[{"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts\/2173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/comments?post=2173"}],"version-history":[{"count":1,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts\/2173\/revisions"}],"predecessor-version":[{"id":2183,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts\/2173\/revisions\/2183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/media\/2153"}],"wp:attachment":[{"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/media?parent=2173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/categories?post=2173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/tags?post=2173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}