SEO & Discoverability

Co naprawdę robią rel=noopener, noreferrer i nofollow

Trzy małe atrybuty linków o bardzo różnych zadaniach: bezpieczeństwo przeglądarki, prywatność odsyłacza i sygnalizowanie dla wyszukiwarek.

The Wux Webtools Team The Wux Webtools Team 9 min czytania Wspomagane przez AI, recenzowane przez ludzi
Illustration of a web page link branching into security, privacy, and SEO concepts.
Spis treści
  1. W skrócie
  2. rel=noopener zapobiega reverse tabnabbing
  3. Czy noopener wpływa na SEO?
  4. rel=noreferrer ukrywa stronę odsyłającą
  5. Kiedy noreferrer jest przydatne
  6. Kompromis analityczny
  7. rel=nofollow jest dla wyszukiwarek, nie dla przeglądarek
  8. Kiedy używać nofollow
  9. Czego nofollow nie robi
  10. Typowe kombinacje
  11. Link zewnętrzny otwierany w nowej karcie
  12. Płatna ekspozycja
  13. Link tworzony przez użytkownika
  14. Linki wewnętrzne
  15. Praktyczna polityka dla zespołów
  16. Jak sprawdzić, co się dzieje
  17. Podsumowanie

W skrócie

Atrybut rel w linku opisuje relację między bieżącą stroną a stroną, do której prowadzi link. Brzmi to abstrakcyjnie, ale w codziennej pracy z webem stale pojawiają się trzy wartości:

<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
  External resource
</a>

Te trzy tokeny często wkleja się razem, jakby robiły jedną rzecz. Tak nie jest.

  • noopener to mechanizm bezpieczeństwa przeglądarki.
  • noreferrer to mechanizm kontroli prywatności i analityki.
  • nofollow to sygnał dla wyszukiwarek.

Można je łączyć, ale warto wiedzieć, dlaczego każdy z nich się tam znajduje. Dodawanie wszystkich trzech do każdego linku wychodzącego nie zawsze jest błędem, ale zwykle jest lenistwem.

rel=noopener zapobiega reverse tabnabbing

rel="noopener" mówi przeglądarce, aby nie dawała nowo otwartej stronie dostępu do strony pierwotnej przez window.opener.

Ma to znaczenie głównie wtedy, gdy otwierasz link w nowej karcie lub oknie za pomocą target="_blank":

<a href="https://external.example" target="_blank" rel="noopener">
  Open external site
</a>

Bez noopener strona docelowa może być w stanie uruchomić taki JavaScript:

window.opener.location = 'https://phishing.example';

Ten atak jest zwykle nazywany reverse tabnabbing. Użytkownik klika prawidłowy link, trafia na inną stronę, a pierwotna karta po cichu zostaje przeniesiona na fałszywą stronę logowania albo inny złośliwy adres.

Nowoczesne przeglądarki poprawiły tu swoje zachowanie. Obecnie target="_blank" jest na ogół traktowany tak, jakby obecne było rel="noopener". To dobrze, ale nie sprawia, że jawny atrybut staje się bezcelowy. Jawne noopener nadal jest przydatne, ponieważ:

  • dokumentuje intencję;
  • chroni starsze lub nietypowe środowiska przeglądania;
  • pozwala nie polegać na tym, że każdy osadzony web view zachowa się jak nowoczesna przeglądarka desktopowa;
  • ułatwia przegląd kodu.

Dla linków zewnętrznych otwieranych w nowej karcie rel="noopener" jest rozsądnym domyślnym wyborem.

Czy noopener wpływa na SEO?

Nie, nie w żaden istotny sposób. noopener dotyczy zachowania przeglądarki. Nie mówi wyszukiwarkom, czy popierasz stronę, czy wartość linku powinna być przekazywana, ani czy link jest płatny.

Jeśli Twoja polityka SEO traktuje noopener jako dyrektywę rankingową, wymaga poprawek.

rel=noreferrer ukrywa stronę odsyłającą

rel="noreferrer" mówi przeglądarce, aby nie wysyłała nagłówka HTTP Referer, gdy użytkownik przechodzi przez link.

Tak, nazwa nagłówka jest historycznie błędnie zapisana jako Referer. Atrybut zapisuje się jako noreferrer.

Zwykle, gdy użytkownik klika link z Twojej strony do innej witryny, strona docelowa może otrzymać wartość odsyłacza pokazującą, skąd pochodzi wizyta. W zależności od Referrer-Policy Twojej witryny może to być pełny URL, sam origin albo nic.

Na przykład strona docelowa może zobaczyć:

Referer: https://www.example.com/pricing?plan=enterprise

albo tylko:

Referer: https://www.example.com/

Z rel="noreferrer" przeglądarka nie powinna wysyłać tego nagłówka dla tej nawigacji.

<a href="https://external.example" rel="noreferrer">
  External site
</a>

W praktyce noreferrer w nowoczesnych przeglądarkach zachowuje się także jak noopener. Jeśli używasz noreferrer, zazwyczaj nie potrzebujesz noopener ze względów bezpieczeństwa na tym samym linku. Wiele zespołów nadal zapisuje oba dla jasności:

<a href="https://external.example" target="_blank" rel="noopener noreferrer">
  External site
</a>

To w porządku. Jest redundantne, ale czytelne.

Kiedy noreferrer jest przydatne

Używaj noreferrer, gdy adres URL bieżącej strony nie powinien być ujawniany stronie docelowej.

Typowe przykłady:

  • linki z prywatnych paneli;
  • linki z nieopublikowanych środowisk podglądowych;
  • linki z adresów URL zawierających wrażliwe parametry zapytania;
  • linki w narzędziach administracyjnych, kolejkach moderacji, ekranach CRM lub systemach obsługi klienta;
  • linki, przy których strona docelowa nie powinna znać dokładnej strony źródłowej.

Ten ostatni punkt nie zawsze dotyczy tajemnicy. Czasem chodzi o minimalizację danych. Jeśli strona docelowa nie musi znać odsyłającego URL-a, nie wysyłaj go.

Pasuje to do szerszego kierunku projektowania webu z uwzględnieniem prywatności. Przeglądarki, użytkownicy i regulatorzy przesunęli się w stronę domyślnego wysyłania mniejszej ilości danych kontekstowych. Jeśli wracasz do tego obszaru, nasz artykuł o tym, co zmieniło się dla cookies w 2026 roku i co z tym zrobić, omawia tę samą ogólną zmianę: mniej niewidocznego śledzenia, bardziej świadome przepływy danych.

Kompromis analityczny

noreferrer może zepsuć atrybucję dla witryny, do której linkujesz. Jej analityka może zaklasyfikować wizytę jako ruch bezpośredni zamiast ruchu z odesłania.

Nie jest to Twój główny problem, ale może mieć znaczenie w partnerstwach, relacjach afiliacyjnych, ścieżkach klientów i wewnętrznych ekosystemach między domenami. Jeśli Twój zespół marketingowy oczekuje, że strony partnerskie będą widzieć ruch odsyłający z Twojej domeny, masowe stosowanie noreferrer może powodować nieporozumienia.

Dla wielu zwykłych linków redakcyjnych lepszym podejściem jest ustawienie nagłówka Referrer-Policy dla całej witryny, zamiast dodawania noreferrer wszędzie. Na przykład:

Referrer-Policy: strict-origin-when-cross-origin

Ta polityka wysyła pełny URL dla nawigacji w tym samym origin, wysyła tylko origin do bezpiecznych miejsc docelowych w innym origin i nie wysyła odsyłacza przy przejściu z HTTPS na HTTP. To praktyczna wartość domyślna dla wielu witryn.

Jeśli musisz sprawdzić, jak nagłówki zachowują się na produkcji, surowa kontrola HTTP często jest jaśniejsza niż zgadywanie na podstawie paneli analitycznych. Workflow opisany w małym zestawie narzędzi do debugowania przekierowań i nagłówków HTTP na produkcji stosuje się bezpośrednio do debugowania referrer-policy.

rel=nofollow jest dla wyszukiwarek, nie dla przeglądarek

rel="nofollow" mówi wyszukiwarkom, że nie chcesz sugerować poparcia dla linkowanej strony.

<a href="https://external.example" rel="nofollow">
  User-submitted link
</a>

Pierwotnie nofollow wprowadzono do walki ze spamem w komentarzach. Idea była prosta: jeśli linki w komentarzach nie przekazują wartości rankingowej, spamerzy mają mniejszą motywację, by zalewać blogi i fora.

Dziś Google traktuje nofollow jako wskazówkę, a nie bezwzględną dyrektywę. To rozróżnienie ma znaczenie. Oznacza, że wyszukiwarki mogą w niektórych kontekstach użyć linku do odkrywania stron lub w systemach rankingowych, ale Ty jasno sygnalizujesz, że link nie powinien być traktowany jak normalne redakcyjne poparcie.

Kiedy używać nofollow

Używaj nofollow, gdy linkujesz, ale nie chcesz ręczyć za stronę docelową.

Rozsądne przykłady obejmują:

  • niezaufane linki tworzone przez użytkowników;
  • linki w publicznych komentarzach lub profilach;
  • linki do stron wymienianych jako przykłady złych praktyk;
  • linki dodane jako odniesienie, ale nie jako rekomendacja;
  • linki w miejscach, gdzie moderacja jest ograniczona.

Dla linków płatnych lub sponsorowanych preferuj rel="sponsored". Dla treści tworzonych przez użytkowników preferuj rel="ugc". W razie potrzeby możesz łączyć wartości:

<a href="https://example.com" rel="ugc nofollow">
  User profile link
</a>

Jeśli prowadzisz publiczne formularze, komentarze, katalogi lub strony profili, atrybuty linków są tylko jedną częścią problemu nadużyć. Spam zwykle zaczyna się wcześniej w przepływie zgłoszenia. Mamy osobne omówienie tego, dlaczego Twój formularz kontaktowy jest największym źródłem ryzyka spamu, a ta sama lekcja obowiązuje tutaj: nie oczekuj, że nofollow zrekompensuje słabą moderację.

Czego nofollow nie robi

nofollow nie uniemożliwia użytkownikom kliknięcia linku. Nie blokuje przeglądarce wysyłania odsyłacza. Nie ukrywa strony docelowej. Nie zabezpiecza target="_blank".

Nie gwarantuje też, że URL nigdy nie zostanie zaindeksowany przez crawlera. Jeśli wyszukiwarki znajdą URL gdzie indziej, nadal mogą go crawlowac. Jeśli musisz zapobiec indeksowaniu, użyj odpowiednich mechanizmów robots na stronie docelowej, takich jak noindex, a nie atrybutu nofollow w cudzym linku.

Typowe kombinacje

<a href="https://external.example" target="_blank" rel="noopener">
  External resource
</a>

To punkt bazowy. Rozwiązuje problem bezpieczeństwa powstający przy otwieraniu nowego kontekstu przeglądania.

Jeśli dodatkowo nie chcesz wysyłać danych odsyłacza:

<a href="https://external.example" target="_blank" rel="noopener noreferrer">
  External resource
</a>

Płatna ekspozycja

<a href="https://sponsor.example" rel="sponsored">
  Sponsor site
</a>

Możesz dodać noopener, jeśli link otwiera się w nowej karcie:

<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
  Sponsor site
</a>

Nie używaj nofollow jako niejasnego substytutu oznaczania płatnych linków. Wyszukiwarki mają teraz bardziej konkretną wartość do tego celu: sponsored.

<a href="https://user-submitted.example" rel="ugc nofollow">
  User-submitted site
</a>

To mówi wyszukiwarkom, że link został dodany przez użytkownika i nie powinien być traktowany jak normalny głos redakcyjny.

Linki wewnętrzne

Większość linków wewnętrznych nie potrzebuje żadnej z tych wartości.

Nie dodawaj rutynowo nofollow do linków wewnętrznych jako taktyki kształtowania przepływu wartości. Zwykle tworzy to więcej zamieszania niż korzyści. Jeśli strona nie powinna być indeksowana, rozwiąż to bezpośrednio. Jeśli strona nie powinna być crawlowana, dokładnie przemyśl reguły robots, uwierzytelnianie, kanonikalizację i architekturę witryny.

Dla linków wewnętrznych otwieranych w nowej karcie noopener nadal jest nieszkodliwe i może być odpowiednie. Ale lepsze pytanie brzmi: dlaczego link wewnętrzny w ogóle musi otwierać nową kartę?

Praktyczna polityka dla zespołów

Prosty standard redakcyjny zapobiega większości błędów:

  1. Dodawaj rel="noopener" do linków z target="_blank", zwłaszcza linków zewnętrznych.
  2. Dodawaj noreferrer tylko wtedy, gdy ukrycie źródłowego URL-a jest celowe.
  3. Dodawaj nofollow tylko wtedy, gdy nie popierasz strony docelowej.
  4. Używaj sponsored dla linków płatnych i ugc dla linków dodanych przez użytkowników.
  5. Nie używaj atrybutów linków jako substytutu kontroli dostępu, moderacji ani reguł indeksowania.

Najważniejsza jest intencja. Każdy token w rel powinien odpowiadać na konkretne pytanie:

  • Bezpieczeństwo: czy nowa strona powinna być odizolowana od strony otwierającej?
  • Prywatność: czy strona docelowa powinna otrzymać informacje o odsyłaczu?
  • SEO: czy popieramy ten link jako redakcyjne odniesienie?

Jeśli nikt w zespole nie potrafi odpowiedzieć na te pytania, atrybut jest prawdopodobnie cargo cult HTML.

Jak sprawdzić, co się dzieje

Dla noopener otwórz link i sprawdź, czy strona docelowa może uzyskać dostęp do window.opener. Na kontrolowanej stronie testowej window.opener powinno być null, gdy noopener jest aktywne.

Dla noreferrer sprawdź żądanie sieciowe po stronie docelowej albo użyj loggera żądań w środowisku testowym. Browser DevTools mogą pokazać wychodzące nagłówki żądania, ale logi po stronie serwera często są bardziej wiarygodne.

Dla nofollow testowanie jest mniej bezpośrednie, ponieważ jest to interpretacja wyszukiwarki, a nie zachowanie przeglądarki. Najlepszą kontrolą jest inspekcja źródła: potwierdź, że wyrenderowany HTML zawiera oczekiwaną wartość rel. Jeśli Twój framework frontendowy przepisuje linki, sprawdź końcowy DOM, a nie tylko szablon.

Podsumowanie

Te atrybuty są małe, ale znajdują się na styku bezpieczeństwa, prywatności i SEO. Traktowanie ich jako zamiennych tworzy złe nawyki.

Używaj noopener szeroko przy linkach otwieranych w nowej karcie. Używaj noreferrer świadomie, gdy prywatność odsyłacza ma znaczenie. Używaj nofollow, gdy składasz wyszukiwarkom deklarację dotyczącą poparcia. A gdy link jest płatny lub tworzony przez użytkownika, używaj bardziej konkretnych współczesnych wartości: sponsored i ugc.

To wystarczy dla większości witryn. Celem nie jest dekorowanie każdego linku. Celem jest sprawienie, by każdy link mówił przeglądarce i wyszukiwarkom dokładnie to, co muszą wiedzieć.

Najczęściej zadawane pytania

Czy każdy link zewnętrzny powinien używać rel="noopener noreferrer nofollow"?
Nie. `noopener` ma sens dla linków zewnętrznych otwieranych w nowej karcie. `noreferrer` należy stosować wtedy, gdy celowo chcesz ukryć dane odsyłacza. `nofollow` należy stosować wtedy, gdy nie chcesz popierać strony docelowej. Rozwiązują różne problemy.
Czy noreferrer szkodzi SEO?
Nie bezpośrednio. `noreferrer` wpływa na informacje o odsyłaczu wysyłane przez przeglądarkę, a nie na sygnały rankingowe. Może wpływać na atrybucję analityczną strony docelowej, ponieważ wizyta może pojawić się jako ruch bezpośredni, a nie ruch z odesłania.
Czy noopener nadal jest potrzebne, jeśli nowoczesne przeglądarki stosują je domyślnie?
Nadal jest dobrą jawną praktyką dla linków z `target="_blank"`. Dokumentuje intencję, pomaga w starszych lub osadzonych przeglądarkach i ułatwia przegląd bezpieczeństwa.
Czy nofollow powstrzymuje Google przed crawlowaniem URL-a?
Nie w sposób niezawodny. Google traktuje `nofollow` jako wskazówkę. URL nadal może zostać odkryty i crawlowany z innych miejsc. Jeśli musisz zapobiec indeksowaniu, użyj właściwych mechanizmów robots lub `noindex` na stronie docelowej.
Czy mogę łączyć wartości rel?
Tak. Atrybut `rel` przyjmuje tokeny rozdzielone spacjami, na przykład `rel="ugc nofollow noopener"`. Łącz je wtedy, gdy każda wartość ma jasny cel.

Źródła i dalsza lektura

  1. MDN Web Docs: rel="noopener"
  2. MDN Web Docs: rel="noreferrer"
  3. Google Search Central: Qualify your outbound links
  4. MDN Web Docs: Referrer-Policy
O autorze
The Wux Webtools Team

Ostatnia aktualizacja:

Czytaj dalej