{"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. 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\/reverse-proxy-right-answer-or-hidden-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. <a href=\"https:\/\/developers.google.com\/crawling\/docs\/troubleshooting\/http-status-codes\" rel=\"nofollow noopener\" target=\"_blank\">Dokumentacja kod\u00f3w stanu Google<\/a> 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 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\/ip-migration-without-losing-rankings\/\">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\/services\/\">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\">Podsumowanie: 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\/contact\/\">Zapytaj nas o swoj\u0105 konfiguracj\u0119<\/a>, a sprawdzimy, jak skierowane s\u0105 twoje domeny. Szczerze m\u00f3wi\u0105c, 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>u003cpu003e502 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.u003c\/pu003e<\/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>u003cpu003e503. 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.u003c\/pu003e<\/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>u003cpu003eGoogle 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.u003c\/pu003e<\/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 [&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,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[182],"tags":[],"class_list":["post-2173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-pl"],"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}]}}