{"id":2169,"date":"2026-07-12T10:23:00","date_gmt":"2026-07-12T09:23:00","guid":{"rendered":"https:\/\/jalvo.eu\/serwer-origin-poza-indeksem-google\/"},"modified":"2026-09-25T00:16:54","modified_gmt":"2026-09-24T23:16:54","slug":"serwer-origin-poza-indeksem-google","status":"publish","type":"post","link":"https:\/\/jalvo.eu\/pl\/serwer-origin-poza-indeksem-google\/","title":{"rendered":"Jak nie dopu\u015bci\u0107 serwera origin do indeksu Google"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Tw\u00f3j serwer origin pojawi\u0142 si\u0119 w indeksie Google? Naprawa ma dwie cz\u0119\u015bci. Zamknij origin tak, \u017ceby da\u0142o si\u0119 do niego wej\u015b\u0107 tylko przez proxy, i skieruj wszystkie sygna\u0142y kanoniczne na domen\u0119 publiczn\u0105, \u017ceby Google scali\u0142 wszystko pod tym jednym hostem. Zwykle wygl\u0105da to tak: strona stoi za reverse proxy, a mimo to w wynikach wyskakuje surowy adres IP originu (albo jaki\u015b zapomniany przez wszystkich host stagingowy) jako pe\u0142na kopia prawdziwej strony. Poni\u017cej: sk\u0105d si\u0119 to bierze, jak to potwierdzi\u0107, jak zablokowa\u0107 bezpo\u015bredni dost\u0119p, kt\u00f3re sygna\u0142y kanoniczne naprawd\u0119 si\u0119 licz\u0105 i jak posprz\u0105ta\u0107 adresy, kt\u00f3re ju\u017c s\u0105 w indeksie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego Google indeksuje IP originu albo host stagingowy?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Google zaindeksuje ka\u017cdy adres, kt\u00f3ry serwuje Twoje strony jako zwyk\u0142\u0105, poprawn\u0105 odpowied\u017a. Je\u015bli wi\u0119c origin odpowiada na zapytania kierowane na go\u0142y IP albo na stary hostname, masz drug\u0105 kopi\u0119 swojej strony. Tyle. A przyczyny s\u0105 prawie zawsze banalne:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>domy\u015blny vhost serwera WWW, kt\u00f3ry serwuje g\u0142\u00f3wn\u0105 stron\u0119 bez wzgl\u0119du na nag\u0142\u00f3wek Host,<\/li>\n<li>subdomeny stagingowe otwarte na o\u015bcie\u017c, bez has\u0142a i bez listy dozwolonych IP,<\/li>\n<li>linki, mapy witryny albo feedy, przez kt\u00f3re wyciek\u0142 surowy adres IP,<\/li>\n<li>stare rekordy DNS, kt\u00f3re nadal wskazuj\u0105 prosto na origin.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">W efekcie dostajesz <strong>zduplikowan\u0105 tre\u015b\u0107 pod IP originu<\/strong>. Konkuruje ona z Twoj\u0105 domen\u0105 kanoniczn\u0105 i zjada czas indeksowania. Google w <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/consolidate-duplicate-urls\" rel=\"nofollow noopener\" target=\"_blank\">wskaz\u00f3wkach o scalaniu zduplikowanych adres\u00f3w<\/a> pisze, \u017ce lepiej, gdy Googlebot po\u015bwi\u0119ca czas nowym lub zaktualizowanym stronom ni\u017c duplikatom. S\u0142usznie. Jest jednak te\u017c cichszy koszt, moim zdaniem gorszy: zaindeksowany origin zdradza dok\u0142adnie ten adres, kt\u00f3ry proxy mia\u0142o ukry\u0107. Staje si\u0119 te\u017c jednym z <a href=\"https:\/\/jalvo.eu\/site-footprints-ten-signals-that-link-websites\/\">sygna\u0142\u00f3w \u0142\u0105cz\u0105cych strony ze sob\u0105<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jak sprawdzi\u0107, czy serwer origin jest zaindeksowany<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wyszukaj w Google z operatorem site: IP originu i swoje hosty stagingowe, a potem sprawd\u017a, co origin odsy\u0142a, gdy kto\u015b wejdzie na niego bezpo\u015brednio. Id\u017a w tej kolejno\u015bci:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Wyszukaj przez site: go\u0142y IP i ka\u017cdy host stagingowy albo stary hostname, jaki przyjdzie Ci do g\u0142owy.<\/li>\n<li>Odpytaj IP originu curlem dwa razy: raz bez nag\u0142\u00f3wka Host, raz z produkcyjnym hostname.<\/li>\n<li>Otw\u00f3rz Search Console i poszukaj host\u00f3w, kt\u00f3rych nie rozpoznajesz, oraz zduplikowanych stron, dla kt\u00f3rych Google wybra\u0142 inny adres kanoniczny ni\u017c Ty.<\/li>\n<li>Przejrzyj mapy witryny, feedy i linki wewn\u0119trzne pod k\u0105tem surowych IP albo adres\u00f3w stagingowych.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Licz\u0105 si\u0119 odpowiedzi. Za\u0142\u00f3\u017cmy, \u017ce bezpo\u015brednie zapytanie na IP zwraca poprawn\u0105 stron\u0119 z pe\u0142n\u0105 tre\u015bci\u0105. Wtedy origin serwuje Twoj\u0105 stron\u0119 publicznie, a Google mo\u017ce j\u0105 zaindeksowa\u0107 r\u00f3wnie \u0142atwo, jak Ty j\u0105 pobra\u0142e\u015b. \u017badnej magii.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zablokuj bezpo\u015bredni dost\u0119p po IP i ogranicz origin do proxy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Najpewniejsza naprawa to origin, kt\u00f3ry odrzuca ka\u017cde zapytanie nieprzychodz\u0105ce przez proxy. Wtedy nie zostaje nic publicznego, co Google m\u00f3g\u0142by zaindeksowa\u0107. Na serwerze, kt\u00f3rym zarz\u0105dzasz sam, zwykle oznacza to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Regu\u0142y firewalla<\/strong>, kt\u00f3re przepuszczaj\u0105 ruch HTTP i HTTPS tylko z adres\u00f3w IP Twojego proxy.<\/li>\n<li>Blok NGINX <em>default_server<\/em>, kt\u00f3ry zamyka lub odrzuca zapytania o nieznane hosty i go\u0142e IP.<\/li>\n<li>Osobne bloki <em>server_name<\/em> tylko dla Twoich prawdziwych domen, \u017ceby \u017caden hostname nie wpada\u0142 na g\u0142\u00f3wn\u0105 stron\u0119.<\/li>\n<li>Has\u0142o albo list\u0119 dozwolonych IP na ka\u017cdym \u015brodowisku stagingowym. Na ka\u017cdym. To, o kt\u00f3rym zapomnisz, b\u0119dzie tym, kt\u00f3re trafi do indeksu.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Odrzucanie bezpo\u015brednich po\u0142\u0105cze\u0144 z originem to zwyk\u0142a kontrola dost\u0119pu. Serwowanie robotom czego\u015b innego ni\u017c to, co widz\u0105 ludzie w domenie publicznej, to cloaking i nigdy nie jest dopuszczalnym rozwi\u0105zaniem (niewa\u017cne, jak kusz\u0105co wygl\u0105da o drugiej w nocy). <a href=\"https:\/\/jalvo.eu\/services\/\">Warstwa proxy przed hostingiem<\/a>, z adresami IP w UE albo w USA, oddziela adres publiczny od originu, a konfiguracja samego originu zostaje w Twoich r\u0119kach. Samo proxy nie naprawi jednak dziurawej konfiguracji. Warto wiedzie\u0107, kiedy proxy ukrywa problemy zamiast je rozwi\u0105zywa\u0107.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ustawienie hosta kanonicznego za proxy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Za proxy ka\u017cdy sygna\u0142 wysy\u0142any przez origin musi wskazywa\u0107 domen\u0119 publiczn\u0105 jako host kanoniczny. Dlaczego? Bo origin cz\u0119sto nie ma poj\u0119cia, jaki hostname wpisa\u0142 odwiedzaj\u0105cy. Umie\u015b\u0107 rel=canonical w \u017ar\u00f3dle HTML, wskazuj\u0105c publiczny adres HTTPS, i upewnij si\u0119, \u017ce \u017caden JavaScript go potem nie nadpisuje. Dokumentacja Google o kanonikalizacji m\u00f3wi, \u017ce nag\u0142\u00f3wek HTTP Link z rel=canonical te\u017c dzia\u0142a, tak\u017ce dla plik\u00f3w innych ni\u017c HTML, na przyk\u0142ad PDF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ustaw aplikacj\u0119 tak, \u017ceby budowa\u0142a bezwzgl\u0119dne adresy URL z nag\u0142\u00f3wk\u00f3w przekazuj\u0105cych host i protok\u00f3\u0142, kt\u00f3re wysy\u0142a Twoje proxy. Dzi\u0119ki temu adresy kanoniczne, mapy witryny i linki wewn\u0119trzne nigdy nie zawieraj\u0105 IP. Linki wewn\u0119trzne wskazuj\u0105 wy\u0142\u0105cznie adresy kanoniczne. Sta\u0142e przekierowania na zduplikowanym ho\u015bcie? Tylko wtedy, gdy wycofujesz ten host. I unikaj b\u0142\u0119dnych certyfikat\u00f3w TLS oraz przekierowa\u0144 z HTTPS na HTTP, bo jedno i drugie mocno pcha Google w stron\u0119 wersji HTTP. Certyfikaty te\u017c potrafi\u0105 zdradzi\u0107 Twoj\u0105 konfiguracj\u0119, wi\u0119c przy okazji przejrzyj <a href=\"https:\/\/jalvo.eu\/ssl-cdn-footprints\/\">\u015blady zostawiane przez SSL i CDN<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usuwanie adres\u00f3w originu, kt\u00f3re Google ju\u017c zaindeksowa\u0142<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u017beby Google usun\u0105\u0142 zaindeksowane adresy originu, musi m\u00f3c je odwiedzi\u0107 i zobaczy\u0107 sygna\u0142 noindex albo przekierowanie na domen\u0119 kanoniczn\u0105. Robots.txt to tu z\u0142e narz\u0119dzie. Wiele os\u00f3b si\u0119ga po nie w pierwszej kolejno\u015bci, ale <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/block-indexing\" rel=\"nofollow noopener\" target=\"_blank\">dokumentacja Google o blokowaniu indeksowania<\/a> wyja\u015bnia, \u017ce zablokowane adresy mog\u0105 i tak trafi\u0107 do indeksu, tylko bez tre\u015bci. Masz dwie opcje, kt\u00f3re naprawd\u0119 dzia\u0142aj\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Opcja A:<\/strong> tymczasowo wysy\u0142aj nag\u0142\u00f3wek <strong>X-Robots-Tag noindex<\/strong> w ka\u017cdej odpowiedzi z originu lub hosta stagingowego, a gdy adresy wypadn\u0105 z indeksu, odetnij dost\u0119p.<\/li>\n<li><strong>Opcja B:<\/strong> je\u015bli hostname originu musi pozosta\u0107 dost\u0119pny, przekieruj go na sta\u0142e na domen\u0119 publiczn\u0105.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gdy sprawa jest pilna, narz\u0119dzie Google do usuwania adres\u00f3w szybko ukryje URL-e. Ale tylko na jaki\u015b czas. To plaster, a nie zamiennik poprawionej konfiguracji serwera.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie: naprawa krok po kroku<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Potwierd\u017a wyciek. <a href=\"https:\/\/jalvo.eu\/reverse-proxy-right-answer-or-hidden-problem\/\">Ogranicz origin do ruchu z proxy<\/a>. Ujednoli\u0107 sygna\u0142y kanoniczne. Potem posprz\u0105taj to, co ju\u017c jest w indeksie. Roboty i ludzie dostaj\u0105 t\u0119 sam\u0105 tre\u015b\u0107 w domenie publicznej; odrzucasz tylko bezpo\u015bredni dost\u0119p z pomini\u0119ciem proxy. Usuni\u0119cie serwera origin z wynik\u00f3w wyszukiwania to zadanie dla konfiguracji serwera, a nie dla robots.txt.<\/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-1790291391036-0\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Czy mog\u0119 po prostu zablokowa\u0107 origin w robots.txt?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Nie. Adresy zablokowane w robots.txt mog\u0105 i tak trafi\u0107 do indeksu, tylko bez tre\u015bci. A Google nie zobaczy noindex na stronach, kt\u00f3rych nie wolno mu odwiedza\u0107, wi\u0119c blokada mo\u017ce wr\u0119cz d\u0142u\u017cej trzyma\u0107 duplikat w indeksie.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790291391036-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Czy blokowanie bezpo\u015bredniego dost\u0119pu po IP to cloaking?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Nie. Odrzucanie po\u0142\u0105cze\u0144, kt\u00f3re omijaj\u0105 proxy, to kontrola dost\u0119pu i dzia\u0142a tak samo dla ka\u017cdego odwiedzaj\u0105cego. Cloaking to pokazywanie robotom innej tre\u015bci ni\u017c ludziom pod tym samym adresem URL.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790291391036-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Serwery stagingowe: noindex czy uwierzytelnianie?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Uwierzytelnianie albo lista dozwolonych IP to mocniejszy wyb\u00f3r, bo ca\u0142kowicie blokuje dost\u0119p robot\u00f3w. Dop\u00f3ki istniej\u0105ce adresy stagingowe s\u0105 usuwane z indeksu, dodaj do tego noindex.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Tw\u00f3j serwer origin pojawi\u0142 si\u0119 w indeksie Google? Naprawa ma dwie cz\u0119\u015bci. Zamknij origin tak, \u017ceby da\u0142o si\u0119 do niego wej\u015b\u0107 tylko przez proxy, i skieruj wszystkie sygna\u0142y kanoniczne na domen\u0119 publiczn\u0105, \u017ceby Google scali\u0142 wszystko pod tym jednym hostem. Zwykle wygl\u0105da to tak: strona stoi za reverse proxy, a mimo to w wynikach wyskakuje [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":2141,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[182],"tags":[],"class_list":["post-2169","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\/2169","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=2169"}],"version-history":[{"count":1,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts\/2169\/revisions"}],"predecessor-version":[{"id":2179,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/posts\/2169\/revisions\/2179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/media\/2141"}],"wp:attachment":[{"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/media?parent=2169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/categories?post=2169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jalvo.eu\/pl\/wp-json\/wp\/v2\/tags?post=2169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}