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.
Spis treści
- W skrócie
- rel=noopener zapobiega reverse tabnabbing
- Czy noopener wpływa na SEO?
- rel=noreferrer ukrywa stronę odsyłającą
- Kiedy noreferrer jest przydatne
- Kompromis analityczny
- rel=nofollow jest dla wyszukiwarek, nie dla przeglądarek
- Kiedy używać nofollow
- Czego nofollow nie robi
- Typowe kombinacje
- Link zewnętrzny otwierany w nowej karcie
- Płatna ekspozycja
- Link tworzony przez użytkownika
- Linki wewnętrzne
- Praktyczna polityka dla zespołów
- Jak sprawdzić, co się dzieje
- 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.
noopenerto mechanizm bezpieczeństwa przeglądarki.noreferrerto mechanizm kontroli prywatności i analityki.nofollowto 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
Link zewnętrzny otwierany w nowej karcie
<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.
Link tworzony przez użytkownika
<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:
- Dodawaj
rel="noopener"do linków ztarget="_blank", zwłaszcza linków zewnętrznych. - Dodawaj
noreferrertylko wtedy, gdy ukrycie źródłowego URL-a jest celowe. - Dodawaj
nofollowtylko wtedy, gdy nie popierasz strony docelowej. - Używaj
sponsoreddla linków płatnych iugcdla linków dodanych przez użytkowników. - 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ć.