Šta rel=noopener, noreferrer i nofollow zapravo rade
Tri mala atributa linka sa veoma različitim zadacima: bezbednost pregledača, privatnost referera i signalizacija pretraživačima.
Sadržaj
- Kratka verzija
- rel=noopener sprečava reverse tabnabbing
- Da li noopener utiče na SEO?
- rel=noreferrer skriva stranicu koja upućuje
- Kada je noreferrer koristan
- Kompromis u analitici
- rel=nofollow je za pretraživače, ne za pregledače
- Kada koristiti nofollow
- Šta nofollow ne radi
- Uobičajene kombinacije
- Eksterni link koji se otvara u novoj kartici
- Plaćeno pozicioniranje
- Link koji generiše korisnik
- Interni linkovi
- Praktična politika za timove
- Kako testirati šta se dešava
- Zaključak
Kratka verzija
Atribut rel na linku opisuje odnos između trenutne stranice i povezane stranice. To zvuči apstraktno, ali tri vrednosti se stalno pojavljuju u svakodnevnom radu na webu:
<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
External resource
</a>
Ta tri tokena se često kopiraju zajedno kao da rade jednu istu stvar. Ne rade.
noopenerje bezbednosna kontrola u pregledaču.noreferrerje kontrola privatnosti i analitike.nofollowje signal za pretraživače.
Mogu se kombinovati, ali treba da znate zašto je svaki od njih prisutan. Dodavanje sva tri na svaki odlazni link nije uvek pogrešno, ali je obično lenjo.
rel=noopener sprečava reverse tabnabbing
rel="noopener" govori pregledaču da novootvorenoj stranici ne dodeli pristup originalnoj stranici preko window.opener.
To je najvažnije kada otvarate link u novoj kartici ili prozoru pomoću target="_blank":
<a href="https://external.example" target="_blank" rel="noopener">
Open external site
</a>
Bez noopener, odredišna stranica može biti u stanju da pokrene JavaScript poput ovog:
window.opener.location = 'https://phishing.example';
Taj napad se obično naziva reverse tabnabbing. Korisnik klikne na legitiman link, ode na drugi sajt, a originalna kartica se tiho preusmeri na lažnu stranicu za prijavu ili neko drugo zlonamerno odredište.
Moderni pregledači su se ovde poboljšali. U trenutnom ponašanju pregledača, target="_blank" se uglavnom tretira kao da je rel="noopener" prisutan. To je dobro, ali ne znači da je eksplicitni atribut besmislen. Eksplicitni noopener je i dalje koristan zato što:
- dokumentuje vašu nameru;
- štiti starija ili neuobičajena okruženja za pregledanje;
- izbegava oslanjanje na to da se svaki ugrađeni web view ponaša kao moderan desktop pregledač;
- olakšava pregled koda.
Za eksterne linkove koji se otvaraju u novoj kartici, rel="noopener" je razumna podrazumevana vrednost.
Da li noopener utiče na SEO?
Ne, ne na bilo koji značajan način. noopener služi za ponašanje pregledača. On pretraživačima ne govori da li podržavate neku stranicu, da li vrednost linka treba da se prenese ili da li je link plaćen.
Ako vaša SEO politika tretira noopener kao direktivu za rangiranje, tu politiku treba urediti.
rel=noreferrer skriva stranicu koja upućuje
rel="noreferrer" govori pregledaču da ne šalje HTTP zaglavlje Referer kada korisnik prati link.
Da, zaglavlje je istorijski pogrešno napisano kao Referer. Atribut se piše noreferrer.
Uobičajeno, kada korisnik klikne na link sa vaše stranice ka drugom sajtu, odredište može da primi vrednost referera koja pokazuje odakle je poseta došla. U zavisnosti od Referrer-Policy vašeg sajta, to može biti pun URL, samo origin, ili ništa.
Na primer, odredište može videti:
Referer: https://www.example.com/pricing?plan=enterprise
ili samo:
Referer: https://www.example.com/
Sa rel="noreferrer", pregledač ne bi trebalo da šalje to zaglavlje za tu navigaciju.
<a href="https://external.example" rel="noreferrer">
External site
</a>
U praksi, noreferrer se u modernim pregledačima ponaša i kao noopener. Ako koristite noreferrer, uglavnom vam nije potreban noopener za bezbednost na tom istom linku. Mnogi timovi ipak pišu oba radi jasnoće:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External site
</a>
To je u redu. Redundantno je, ali čitljivo.
Kada je noreferrer koristan
Koristite noreferrer kada URL trenutne stranice ne treba da bude izložen odredištu.
Uobičajeni primeri:
- linkovi iz privatnih kontrolnih tabli;
- linkovi iz neobjavljenih preview okruženja;
- linkovi iz URL-ova koji sadrže osetljive query parametre;
- linkovi u admin alatima, redovima za moderaciju, CRM ekranima ili sistemima korisničke podrške;
- linkovi kod kojih odredište ne treba da zna tačnu izvornu stranicu.
Ta poslednja tačka nije uvek pitanje tajnosti. Ponekad je pitanje minimizacije podataka. Ako odredište ne mora da zna URL koji upućuje, nemojte ga slati.
To se uklapa u širi pravac web dizajna koji vodi računa o privatnosti. Pregledači, korisnici i regulatori su se svi pomerili ka podrazumevanom slanju manje ambijentalnih podataka. Ako se ponovo bavite ovom oblašću, naš članak o tome šta se promenilo za kolačiće u 2026. i šta uraditi povodom toga pokriva isti opšti pomak: manje nevidljivog praćenja, više namernih tokova podataka.
Kompromis u analitici
noreferrer može da pokvari atribuciju za sajt ka kome linkujete. Njihova analitika može klasifikovati posetu kao direktan saobraćaj umesto kao referral saobraćaj.
To nije vaš primarni problem, ali može biti važno u partnerstvima, affiliate odnosima, korisničkim putanjama i internim cross-domain ekosistemima. Ako vaš marketinški tim očekuje da partnerski sajtovi vide referral saobraćaj sa vašeg domena, opšti noreferrer može izazvati zabunu.
Za mnoge obične uredničke linkove, bolji pristup je postaviti zaglavlje Referrer-Policy na nivou celog sajta umesto dodavati noreferrer svuda. Na primer:
Referrer-Policy: strict-origin-when-cross-origin
Ta politika šalje pun URL za navigaciju unutar istog origin-a, šalje samo origin ka bezbednim cross-origin odredištima i ne šalje referer pri prelasku sa HTTPS na HTTP. To je praktična podrazumevana vrednost za mnoge sajtove.
Ako treba da proverite kako se zaglavlja ponašaju u produkciji, sirova HTTP provera je često jasnija od nagađanja na osnovu analitičkih dashboard-a. Tok rada iz teksta mali skup alata za debugovanje preusmerenja i HTTP zaglavlja u produkciji direktno se primenjuje na debugovanje referrer-policy podešavanja.
rel=nofollow je za pretraživače, ne za pregledače
rel="nofollow" govori pretraživačima da ne želite da podrazumevate podršku povezanoj stranici.
<a href="https://external.example" rel="nofollow">
User-submitted link
</a>
Prvobitno je nofollow uveden za borbu protiv spama u komentarima. Ideja je bila jednostavna: ako linkovi u komentarima ne prenose rangirajući kredit, spameri imaju manje podsticaja da preplavljuju blogove i forume.
Danas Google tretira nofollow kao nagoveštaj, a ne kao apsolutnu direktivu. Ta razlika je važna. To znači da pretraživači mogu koristiti link za otkrivanje ili sisteme rangiranja u nekim kontekstima, ali vi jasno signalizirate da link ne treba tretirati kao normalnu uredničku podršku.
Kada koristiti nofollow
Koristite nofollow kada linkujete, ali ne želite da garantujete za odredište.
Razumni primeri uključuju:
- nepouzdane linkove koje generišu korisnici;
- linkove u javnim komentarima ili profilima;
- linkove ka sajtovima pomenutim kao primeri lošeg ponašanja;
- linkove uključene kao referenca, ali ne kao podrška;
- linkove u oblastima gde je moderacija ograničena.
Za plaćene ili sponzorisane linkove radije koristite rel="sponsored". Za sadržaj koji generišu korisnici radije koristite rel="ugc". Vrednosti možete kombinovati ako je potrebno:
<a href="https://example.com" rel="ugc nofollow">
User profile link
</a>
Ako vodite javne forme, komentare, direktorijume ili stranice profila, atributi linkova su samo jedan deo problema zloupotrebe. Spam obično počinje ranije u toku slanja sadržaja. Imamo poseban pregled o tome zašto je vaša kontakt forma vaša najveća spam odgovornost, a ista lekcija važi i ovde: ne očekujte da nofollow nadoknadi slabu moderaciju.
Šta nofollow ne radi
nofollow ne sprečava korisnike da kliknu na link. Ne blokira pregledač da pošalje referer. Ne skriva odredište od pogleda. Ne obezbeđuje target="_blank".
Takođe ne garantuje da URL nikada neće biti crawlovan. Ako pretraživači pronađu URL na drugom mestu, i dalje mogu da ga crawluju. Ako treba da sprečite indeksiranje, koristite odgovarajuće robots kontrole na odredišnoj stranici, kao što je noindex, a ne atribut nofollow na tuđem linku.
Uobičajene kombinacije
Eksterni link koji se otvara u novoj kartici
<a href="https://external.example" target="_blank" rel="noopener">
External resource
</a>
Ovo je osnova. Ona rešava bezbednosni problem nastao otvaranjem novog konteksta pregledanja.
Ako takođe ne želite da šaljete podatke o refereru:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External resource
</a>
Plaćeno pozicioniranje
<a href="https://sponsor.example" rel="sponsored">
Sponsor site
</a>
Možete dodati noopener ako se otvara u novoj kartici:
<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
Sponsor site
</a>
Ne koristite nofollow kao neodređenu zamenu za označavanje plaćenih linkova. Pretraživači sada imaju specifičniju vrednost za to: sponsored.
Link koji generiše korisnik
<a href="https://user-submitted.example" rel="ugc nofollow">
User-submitted site
</a>
Ovo pretraživačima govori da je link doprineo korisnik i da ga ne treba tretirati kao normalan urednički glas.
Interni linkovi
Većini internih linkova nije potrebna nijedna od ovih vrednosti.
Ne dodajte nofollow internim linkovima kao rutinsku taktiku oblikovanja. To obično stvara više zabune nego koristi. Ako stranica ne treba da bude indeksirana, rešite to direktno. Ako stranica ne treba da bude crawlovana, pažljivo razmislite o robots pravilima, autentifikaciji, canonicalization podešavanjima i arhitekturi sajta.
Za interne linkove koji se otvaraju u novoj kartici, noopener je i dalje bezopasan i može biti prikladan. Ali bolje pitanje je zašto interni link uopšte mora da se otvara u novoj kartici.
Praktična politika za timove
Jednostavan interni stil sprečava većinu grešaka:
- Dodajte
rel="noopener"linkovima satarget="_blank", posebno eksternim linkovima. - Dodajte
noreferrersamo kada je skrivanje izvornog URL-a namerno. - Dodajte
nofollowsamo kada ne podržavate odredište. - Koristite
sponsoredza plaćene linkove iugcza linkove koje šalju korisnici. - Ne koristite atribute linkova kao zamenu za kontrolu pristupa, moderaciju ili pravila indeksiranja.
Važan deo je namera. Svaki token u rel treba da odgovori na konkretno pitanje:
- Bezbednost: da li nova stranica treba da bude izolovana od opener-a?
- Privatnost: da li odredište treba da primi informacije o refereru?
- SEO: da li ovaj link podržavamo kao uredničku referencu?
Ako niko u timu ne može da odgovori na ta pitanja, atribut je verovatno cargo cult HTML.
Kako testirati šta se dešava
Za noopener, otvorite link i proverite da li odredište može da pristupi window.opener. Na kontrolisanoj test stranici, window.opener treba da bude null kada je noopener aktivan.
Za noreferrer, pregledajte mrežni zahtev na strani odredišta ili koristite request logger u testnom okruženju. Browser DevTools može prikazati odlazna zaglavlja zahteva, ali serverski logovi su često pouzdaniji.
Za nofollow, testiranje je manje neposredno jer je to tumačenje pretraživača, a ne ponašanje pregledača. Najbolja provera je pregled izvora: potvrdite da renderovani HTML sadrži očekivanu vrednost rel. Ako vaš frontend framework prepisuje linkove, pregledajte finalni DOM, ne samo template.
Zaključak
Ovi atributi su mali, ali se nalaze na preseku bezbednosti, privatnosti i SEO-a. Tretiranje kao da su međusobno zamenljivi stvara loše navike.
Koristite noopener široko za linkove koji se otvaraju u novoj kartici. Koristite noreferrer promišljeno kada je privatnost referera važna. Koristite nofollow kada dajete izjavu namenjenu pretraživačima o podršci linku. A kada je link plaćen ili ga je generisao korisnik, koristite specifičnije moderne vrednosti: sponsored i ugc.
To je dovoljno za većinu sajtova. Cilj nije da ukrasite svaki link. Cilj je da svaki link pregledaču i pretraživačima kaže tačno ono što treba da znaju.