Ce fac de fapt rel=noopener, noreferrer și nofollow
Trei mici atribute de link cu roluri foarte diferite: securitatea browserului, confidențialitatea referrerului și semnalizarea pentru motoarele de căutare.
Cuprins
- Versiunea pe scurt
- rel=noopener previne reverse tabnabbing
- Afectează noopener SEO?
- rel=noreferrer ascunde pagina de trimitere
- Când este util noreferrer
- Compromisul pentru analytics
- rel=nofollow este pentru motoarele de căutare, nu pentru browsere
- Când să folosești nofollow
- Ce nu face nofollow
- Combinații obișnuite
- Link extern care se deschide într-o filă nouă
- Plasare plătită
- Link generat de utilizator
- Linkuri interne
- O politică practică pentru echipe
- Cum testezi ce se întâmplă
- Concluzia
Versiunea pe scurt
Atributul rel al unui link descrie relația dintre pagina curentă și pagina către care duce linkul. Sună abstract, dar trei valori apar constant în munca web de zi cu zi:
<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
External resource
</a>
Aceste trei tokenuri sunt adesea copiate împreună ca și cum ar face un singur lucru. Nu fac asta.
noopenereste un control de securitate al browserului.noreferrereste un control de confidențialitate și analytics.nofolloweste un semnal pentru motoarele de căutare.
Pot fi combinate, dar ar trebui să știi de ce este prezent fiecare. Adăugarea tuturor celor trei la fiecare link extern nu este întotdeauna greșită, dar de obicei este o abordare leneșă.
rel=noopener previne reverse tabnabbing
rel="noopener" îi spune browserului să nu ofere paginii nou deschise acces la pagina originală prin window.opener.
Acest lucru contează mai ales când deschizi un link într-o filă sau fereastră nouă folosind target="_blank":
<a href="https://external.example" target="_blank" rel="noopener">
Open external site
</a>
Fără noopener, pagina de destinație ar putea rula JavaScript precum acesta:
window.opener.location = 'https://phishing.example';
Acest atac este numit în mod obișnuit reverse tabnabbing. Utilizatorul apasă pe un link legitim, ajunge pe alt site, iar fila originală este redirecționată discret către o pagină falsă de autentificare sau către o altă destinație malițioasă.
Browserele moderne s-au îmbunătățit aici. În comportamentul actual al browserelor, target="_blank" este în general tratat ca și cum rel="noopener" ar fi prezent. Este un lucru bun, dar nu face atributul explicit inutil. noopener explicit rămâne util deoarece:
- îți documentează intenția;
- protejează mediile de navigare mai vechi sau neobișnuite;
- evită să te bazezi pe faptul că fiecare web view încorporat se comportă ca un browser desktop modern;
- face code review-ul mai ușor.
Pentru linkurile externe care se deschid într-o filă nouă, rel="noopener" este o valoare implicită rezonabilă.
Afectează noopener SEO?
Nu, nu într-un mod semnificativ. noopener ține de comportamentul browserului. Nu le spune motoarelor de căutare dacă susții o pagină, dacă ar trebui să se transmită link equity sau dacă linkul este plătit.
Dacă politica ta SEO tratează noopener ca pe o directivă de ranking, politica trebuie editată.
rel=noreferrer ascunde pagina de trimitere
rel="noreferrer" îi spune browserului să nu trimită antetul HTTP Referer atunci când utilizatorul urmează linkul.
Da, antetul este scris istoric greșit ca Referer. Atributul se scrie noreferrer.
În mod normal, când un utilizator apasă pe un link de pe pagina ta către alt site, destinația poate primi o valoare de referrer care arată de unde a venit vizita. În funcție de Referrer-Policy al site-ului tău, aceasta poate fi URL-ul complet, doar originea sau nimic.
De exemplu, o destinație ar putea vedea:
Referer: https://www.example.com/pricing?plan=enterprise
sau doar:
Referer: https://www.example.com/
Cu rel="noreferrer", browserul nu ar trebui să trimită acel antet pentru acea navigare.
<a href="https://external.example" rel="noreferrer">
External site
</a>
În practică, noreferrer se comportă și ca noopener în browserele moderne. Dacă folosești noreferrer, în general nu ai nevoie de noopener pentru securitate pe același link. Multe echipe le scriu totuși pe amândouă pentru claritate:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External site
</a>
Este în regulă. Este redundant, dar lizibil.
Când este util noreferrer
Folosește noreferrer când URL-ul paginii curente nu ar trebui expus destinației.
Exemple obișnuite:
- linkuri din dashboarduri private;
- linkuri din medii de preview nepublicate;
- linkuri din URL-uri care conțin parametri de interogare sensibili;
- linkuri din instrumente de administrare, cozi de moderare, ecrane CRM sau sisteme de suport pentru clienți;
- linkuri unde destinația nu ar trebui să știe pagina sursă exactă.
Ultimul punct nu ține întotdeauna de secret. Uneori ține de minimizarea datelor. Dacă destinația nu are nevoie să știe URL-ul de trimitere, nu îl trimite.
Acest lucru se potrivește direcției mai largi a designului web atent la confidențialitate. Browserele, utilizatorii și autoritățile de reglementare s-au orientat toate către trimiterea implicită a unei cantități mai mici de date ambientale. Dacă revizitezi această zonă, articolul nostru despre ce s-a schimbat pentru cookies în 2026 și ce să faci în privința asta acoperă aceeași schimbare generală: mai puțină urmărire invizibilă, fluxuri de date mai deliberate.
Compromisul pentru analytics
noreferrer poate strica atribuirea pentru site-ul către care trimiți. Analytics-ul lor poate clasifica vizita ca trafic direct în loc de trafic referral.
Aceasta nu este problema ta principală, dar poate conta în parteneriate, relații de afiliere, parcursuri ale clienților și ecosisteme interne cross-domain. Dacă echipa ta de marketing se așteaptă ca site-urile partenere să vadă trafic referral din domeniul tău, aplicarea generală a noreferrer poate crea confuzie.
Pentru multe linkuri editoriale obișnuite, abordarea mai bună este să setezi un antet Referrer-Policy la nivel de site, în loc să adaugi noreferrer peste tot. De exemplu:
Referrer-Policy: strict-origin-when-cross-origin
Această politică trimite URL-ul complet pentru navigarea same-origin, trimite doar originea către destinații cross-origin securizate și nu trimite niciun referrer când se trece de la HTTPS la HTTP. Este o valoare implicită practică pentru multe site-uri.
Dacă trebuie să inspectezi cum se comportă anteturile în producție, o verificare HTTP brută este adesea mai clară decât presupunerile din dashboardurile de analytics. Fluxul de lucru din un mic set de instrumente pentru depanarea redirecturilor și anteturilor HTTP în producție se aplică direct depanării referrer-policy.
rel=nofollow este pentru motoarele de căutare, nu pentru browsere
rel="nofollow" le spune motoarelor de căutare că nu vrei să implici o recomandare a paginii către care duce linkul.
<a href="https://external.example" rel="nofollow">
User-submitted link
</a>
Inițial, nofollow a fost introdus pentru a combate spamul din comentarii. Ideea era simplă: dacă linkurile din comentarii nu transmiteau credit de ranking, spammerii aveau mai puține motive să inunde blogurile și forumurile.
Astăzi, Google tratează nofollow ca pe un indiciu, nu ca pe o directivă absolută. Această diferență contează. Înseamnă că motoarele de căutare pot folosi linkul pentru descoperire sau pentru sistemele de ranking în anumite contexte, dar tu semnalizezi clar că linkul nu ar trebui tratat ca o recomandare editorială normală.
Când să folosești nofollow
Folosește nofollow când pui un link, dar nu vrei să garantezi pentru destinație.
Exemple rezonabile includ:
- linkuri generate de utilizatori, care nu sunt de încredere;
- linkuri în comentarii sau profiluri publice;
- linkuri către site-uri menționate ca exemple de comportament negativ;
- linkuri incluse ca referință, dar nu ca recomandare;
- linkuri în zone unde moderarea este limitată.
Pentru linkuri plătite sau sponsorizate, preferă rel="sponsored". Pentru conținut generat de utilizatori, preferă rel="ugc". Poți combina valorile dacă este nevoie:
<a href="https://example.com" rel="ugc nofollow">
User profile link
</a>
Dacă gestionezi formulare publice, comentarii, directoare sau pagini de profil, atributele de link sunt doar o parte a problemei abuzului. Spam-ul începe de obicei mai devreme în fluxul de trimitere. Avem o analiză separată despre de ce formularul tău de contact este cea mai mare vulnerabilitate la spam, iar aceeași lecție se aplică aici: nu te aștepta ca nofollow să compenseze moderarea slabă.
Ce nu face nofollow
nofollow nu împiedică utilizatorii să apese pe link. Nu blochează browserul să trimită un referrer. Nu ascunde destinația. Nu securizează target="_blank".
De asemenea, nu garantează că un URL nu va fi niciodată accesat de crawlere. Dacă motoarele de căutare găsesc URL-ul în altă parte, îl pot accesa în continuare. Dacă trebuie să previi indexarea, folosește controalele robots potrivite pe pagina de destinație, cum ar fi noindex, nu un atribut nofollow pe linkul altcuiva.
Combinații obișnuite
Link extern care se deschide într-o filă nouă
<a href="https://external.example" target="_blank" rel="noopener">
External resource
</a>
Aceasta este baza. Abordează problema de securitate creată de deschiderea unui nou context de navigare.
Dacă nici nu vrei să trimiți date de referrer:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External resource
</a>
Plasare plătită
<a href="https://sponsor.example" rel="sponsored">
Sponsor site
</a>
Poți adăuga noopener dacă se deschide într-o filă nouă:
<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
Sponsor site
</a>
Nu folosi nofollow ca substitut vag pentru declararea linkurilor plătite. Motoarele de căutare au acum o valoare mai specifică pentru asta: sponsored.
Link generat de utilizator
<a href="https://user-submitted.example" rel="ugc nofollow">
User-submitted site
</a>
Aceasta le spune motoarelor de căutare că linkul a fost contribuit de un utilizator și nu ar trebui tratat ca un vot editorial normal.
Linkuri interne
Majoritatea linkurilor interne nu au nevoie de niciuna dintre aceste valori.
Nu adăuga nofollow la linkurile interne ca tactică de sculptare de rutină. De obicei creează mai multă confuzie decât beneficii. Dacă o pagină nu ar trebui indexată, gestionează asta direct. Dacă o pagină nu ar trebui accesată de crawlere, gândește-te atent la reguli robots, autentificare, canonicalizare și arhitectura site-ului.
Pentru linkurile interne care se deschid într-o filă nouă, noopener este în continuare inofensiv și poate fi potrivit. Dar întrebarea mai bună este de ce linkul intern are nevoie de o filă nouă.
O politică practică pentru echipe
Un stil intern simplu previne majoritatea greșelilor:
- Adaugă
rel="noopener"la linkurile cutarget="_blank", mai ales la linkurile externe. - Adaugă
noreferrerdoar când ascunderea URL-ului sursă este intenționată. - Adaugă
nofollowdoar când nu recomanzi destinația. - Folosește
sponsoredpentru linkuri plătite șiugcpentru linkuri trimise de utilizatori. - Nu folosi atributele de link ca substitut pentru controlul accesului, moderare sau reguli de indexare.
Partea importantă este intenția. Fiecare token din rel ar trebui să răspundă la o întrebare specifică:
- Securitate: ar trebui pagina nouă să fie izolată de opener?
- Confidențialitate: ar trebui destinația să primească informații de referrer?
- SEO: recomandăm acest link ca referință editorială?
Dacă nimeni din echipă nu poate răspunde la aceste întrebări, atributul este probabil HTML de tip cargo cult.
Cum testezi ce se întâmplă
Pentru noopener, deschide linkul și verifică dacă destinația poate accesa window.opener. Într-o pagină de test controlată, window.opener ar trebui să fie null când noopener este activ.
Pentru noreferrer, inspectează cererea de rețea pe partea destinației sau folosește un logger de cereri într-un mediu de test. Browser DevTools poate arăta anteturile cererilor de ieșire, dar logurile de pe server sunt adesea mai fiabile.
Pentru nofollow, testarea este mai puțin imediată deoarece este o interpretare a motorului de căutare, nu un comportament al browserului. Cea mai bună verificare este inspectarea sursei: confirmă că HTML-ul randat conține valoarea rel așteptată. Dacă frameworkul tău frontend rescrie linkurile, inspectează DOM-ul final, nu doar template-ul.
Concluzia
Aceste atribute sunt mici, dar se află la intersecția dintre securitate, confidențialitate și SEO. Tratarea lor ca interschimbabile creează obiceiuri proaste.
Folosește noopener generos pentru linkurile în filă nouă. Folosește noreferrer deliberat când confidențialitatea referrerului contează. Folosește nofollow când faci o declarație vizibilă pentru căutare despre recomandare. Iar când un link este plătit sau generat de utilizator, folosește valorile moderne mai specifice: sponsored și ugc.
Asta este suficient pentru majoritatea site-urilor. Scopul nu este să decorezi fiecare link. Scopul este ca fiecare link să spună browserului și motoarelor de căutare exact ce trebuie să știe.