Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Znaczniki noindex i nofollow to najprostsze narzędzia sterowania tym, co Google zrobi z Twoją podstroną — i jednocześnie te, które najczęściej stosowane są odwrotnie do intencji. Widziałem strony z noindexem na całej sekcji blogowej wstawionym przez przypadek podczas przebudowy oraz sklepy, w których nofollow miał „oszczędzać moc” i nie oszczędzał niczego.
Kłopot bierze się z tego, że nazwy brzmią podobnie, a oba znaczniki żyją w tym samym atrybucie, choć odpowiadają na dwa różne pytania. Pierwsze: czy ten adres ma się pokazywać w wynikach wyszukiwania. Drugie: czy robot ma iść dalej za linkami.
Poniżej rozdzielam te dwie sprawy, opisuję konkretne zastosowania każdego wariantu i wymieniam kombinacje, które najczęściej powodują szkody.
Znacznik noindex mówi wyszukiwarce: możesz tu wejść, możesz przeczytać treść, ale nie pokazuj tego adresu w wynikach. Nic więcej i nic mniej.
Wstawia się go w sekcji nagłówka dokumentu jako meta tag albo przesyła w nagłówku odpowiedzi HTTP jako X-Robots-Tag. Ten drugi sposób jest wygodniejszy, kiedy trzeba wykluczyć coś, co nie jest dokumentem HTML — pliki PDF, obrazy, archiwa. W meta tagu tego nie zrobisz, bo nie ma gdzie go umieścić.
Kluczowa mechanika: żeby noindex zadziałał, robot musi zobaczyć stronę. Adres zablokowany w robots.txt nie zostanie pobrany, więc znacznik nie zostanie odczytany, a adres może dalej wisieć w indeksie — z pustym opisem, wyłącznie na podstawie linków prowadzących do niego z zewnątrz. To najczęstszy powód sytuacji, w której ktoś „zablokował stronę”, a ona nadal się wyświetla.
Warto też pamiętać, że wyindeksowanie nie jest natychmiastowe. Google musi wrócić na adres, odczytać znacznik i przetworzyć zmianę. Przy rzadko odwiedzanych podstronach potrafi to potrwać.
Nofollow występuje w dwóch miejscach i to jest źródło niemałej części zamieszania. Może być atrybutem konkretnego linku albo dyrektywą dla całej strony w meta tagu robots. W pierwszym wariancie dotyczy jednego odnośnika, w drugim — wszystkich linków na stronie.
Od kilku lat obowiązuje przy tym istotna zmiana interpretacji: Google traktuje nofollow jako wskazówkę, a nie bezwzględny nakaz. Zastrzegło sobie, że może z takiego linku skorzystać przy indeksowaniu i przy ustalaniu rankingu, jeśli uzna to za uzasadnione. W praktyce oznacza to, że nofollow nie jest szczelną ścianą i nie należy budować na nim strategii technicznej.
Razem z tą zmianą pojawiły się dwa dodatkowe warianty atrybutu: sponsored dla linków płatnych i ugc dla treści tworzonych przez użytkowników — komentarzy, wpisów na forum. Nadal są niedostatecznie używane, a to najprostsza rzecz, jaką można zrobić, żeby uczciwie opisać charakter odnośnika.
Osobno warto obalić stary nawyk: nofollow nie „zatrzymuje mocy w serwisie”. Kiedyś próbowano tak rzeźbić przepływ wartości między podstronami. To nie działa w ten sposób i nigdy nie zadziała — jedyne, co osiągasz, to zubożenie własnego linkowania wewnętrznego.
Lista jest krótsza, niż większość osób oczekuje, bo domyślnie zakładam, że podstrona ma być w indeksie.
Czego natomiast nie wykluczam: podstron usługowych, opisów kategorii i wpisów blogowych, choćby były krótkie. Jeśli treść jest za słaba, żeby stać w indeksie, właściwą odpowiedzią jest poprawienie jej albo scalenie z inną, nie ukrycie.
Trzy narzędzia, trzy różne problemy, a używane bywają wymiennie.
Adres kanoniczny stosuję, kiedy dwie strony mają praktycznie tę samą treść i chcę wskazać, która wersja jest właściwa. Sygnały z obu adresów zostają w serwisie i sumują się na wersji wskazanej. To narzędzie do duplikatów, nie do ukrywania.
Noindex stosuję, kiedy strona jest potrzebna użytkownikowi, ale nie ma po co być w wyszukiwarce. Sygnały z takiego adresu w praktyce przestają się liczyć — dlatego nie należy wykluczać niczego, co ma wartość.
Robots.txt stosuję, kiedy chcę, żeby robot w ogóle nie tracił czasu na pobieranie całych grup adresów. To narzędzie oszczędzania zasobów, nie sterowania indeksem.
Najgorsza kombinacja, jaką spotykam, to canonical prowadzący na adres z noindexem. Wysyłasz wtedy sygnały sprzeczne: „to jest wersja właściwa” i jednocześnie „tej wersji nie indeksuj”. Google musi wybrać jedną z tych instrukcji i niekoniecznie wybierze tę, na której Ci zależy.
Numer jeden to noindex zostawiony po wdrożeniu. Strona przygotowywana na środowisku testowym miała globalną blokadę, a przy przenoszeniu na produkcję nikt jej nie zdjął. Efekt bywa dramatyczny i zwykle zostaje odkryty po kilku tygodniach spadków. Za każdym razem, gdy przejmuję nowy serwis, sprawdzam to w pierwszej godzinie.
Numer dwa to noindex na stronie zablokowanej w robots.txt — opisany wyżej mechanizm, w którym znacznik nie ma jak zadziałać.
Numer trzy to nofollow na linkach do własnych podstron w nadziei na sterowanie mocą. Zwykle towarzyszy temu przekonanie, że to zaawansowana technika.
Numer cztery, coraz częstszy przy rozbudowanych serwisach: instrukcje wstawiane przez skrypt na stronie renderowanej po stronie przeglądarki. Jeśli znacznik pojawia się dopiero po wykonaniu kodu, jego odczytanie zależy od tego, czy i kiedy Google ten kod wykona. Nie jest to niemożliwe, ale jest niepewne — dyrektywy dotyczące indeksowania powinny znaleźć się w odpowiedzi serwera.
Nie zakładam, że raz ustawione dyrektywy takie zostaną. Zmiany na stronie robi wiele osób i wtyczek.
Podstawowy zestaw kontrolny jest prosty. Raz w miesiącu przechodzę crawlerem po serwisie i wyciągam listę wszystkich adresów z noindexem — samo porównanie tej listy z poprzednim miesiącem wyłapuje przypadkowe zmiany. Do tego zaglądam w Search Console w powody wykluczenia adresów: pozycja „wykluczona przez tag noindex” powinna zawierać dokładnie to, co sam tam umieściłem, i nic więcej.
Przy pojedynczych podstronach korzystam z narzędzia do sprawdzania adresu URL i patrzę na pobrany kod HTML tak, jak widzi go Google, a nie na kod widziany w przeglądarce. Różnica między jednym a drugim to najczęstsze miejsce, w którym urywa się diagnoza.
Ostatnia rzecz, bardziej organizacyjna niż techniczna: warto mieć spisane, które grupy adresów mają być wykluczone i dlaczego. Po roku nikt tego nie pamięta, a bez tej wiedzy każda kolejna przebudowa serwisu zaczyna się od zgadywania.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |