Τι κάνουν πραγματικά τα rel=noopener, noreferrer και nofollow
Τρία μικρά attributes συνδέσμων με πολύ διαφορετικές δουλειές: ασφάλεια browser, ιδιωτικότητα referrer και σήμανση προς τις μηχανές αναζήτησης.
Πίνακας περιεχομένων
- Η σύντομη εκδοχή
- Το rel=noopener αποτρέπει το reverse tabnabbing
- Επηρεάζει το noopener το SEO;
- Το rel=noreferrer κρύβει τη σελίδα παραπομπής
- Πότε είναι χρήσιμο το noreferrer
- Ο συμβιβασμός στα analytics
- Το rel=nofollow είναι για μηχανές αναζήτησης, όχι για browsers
- Πότε να χρησιμοποιείτε nofollow
- Τι δεν κάνει το nofollow
- Συνηθισμένοι συνδυασμοί
- Εξωτερικός σύνδεσμος που ανοίγει σε νέα καρτέλα
- Πληρωμένη τοποθέτηση
- Σύνδεσμος που δημιουργήθηκε από χρήστη
- Εσωτερικοί σύνδεσμοι
- Μια πρακτική πολιτική για ομάδες
- Πώς να ελέγξετε τι συμβαίνει
- Η ουσία
Η σύντομη εκδοχή
Το attribute rel σε έναν σύνδεσμο περιγράφει τη σχέση ανάμεσα στην τρέχουσα σελίδα και τη συνδεδεμένη σελίδα. Αυτό ακούγεται αφηρημένο, αλλά τρεις τιμές εμφανίζονται διαρκώς στην καθημερινή εργασία στο web:
<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
External resource
</a>
Αυτά τα τρία tokens συχνά επικολλώνται μαζί σαν να κάνουν ένα πράγμα. Δεν κάνουν.
- Το
noopenerείναι ένας έλεγχος ασφάλειας του browser. - Το
noreferrerείναι ένας έλεγχος ιδιωτικότητας και analytics. - Το
nofollowείναι ένα σήμα προς τις μηχανές αναζήτησης.
Μπορούν να συνδυαστούν, αλλά πρέπει να γνωρίζετε γιατί υπάρχει το καθένα. Η προσθήκη και των τριών σε κάθε εξερχόμενο σύνδεσμο δεν είναι πάντα λάθος, αλλά συνήθως είναι τεμπέλικη πρακτική.
Το rel=noopener αποτρέπει το reverse tabnabbing
Το rel="noopener" λέει στον browser να μη δώσει στη νέα σελίδα που ανοίγει πρόσβαση στην αρχική σελίδα μέσω του window.opener.
Αυτό έχει σημασία κυρίως όταν ανοίγετε έναν σύνδεσμο σε νέα καρτέλα ή παράθυρο χρησιμοποιώντας target="_blank":
<a href="https://external.example" target="_blank" rel="noopener">
Open external site
</a>
Χωρίς το noopener, η σελίδα προορισμού μπορεί να είναι σε θέση να εκτελέσει JavaScript όπως αυτή:
window.opener.location = 'https://phishing.example';
Αυτή η επίθεση ονομάζεται συνήθως reverse tabnabbing. Ο χρήστης κάνει κλικ σε έναν νόμιμο σύνδεσμο, καταλήγει σε άλλον ιστότοπο και η αρχική καρτέλα οδηγείται αθόρυβα σε μια ψεύτικη σελίδα σύνδεσης ή σε άλλον κακόβουλο προορισμό.
Οι σύγχρονοι browsers έχουν βελτιωθεί σε αυτό το σημείο. Στην τρέχουσα συμπεριφορά των browsers, το target="_blank" γενικά αντιμετωπίζεται σαν να υπήρχε το rel="noopener". Αυτό είναι καλό, αλλά δεν καθιστά το ρητό attribute άχρηστο. Το ρητό noopener παραμένει χρήσιμο επειδή:
- τεκμηριώνει την πρόθεσή σας;
- προστατεύει παλαιότερα ή ασυνήθιστα περιβάλλοντα περιήγησης;
- αποφεύγει την εξάρτηση από το ότι κάθε ενσωματωμένο web view θα συμπεριφέρεται σαν σύγχρονος desktop browser;
- κάνει το code review ευκολότερο.
Για εξωτερικούς συνδέσμους που ανοίγουν σε νέα καρτέλα, το rel="noopener" είναι μια λογική προεπιλογή.
Επηρεάζει το noopener το SEO;
Όχι, όχι με κάποιο ουσιαστικό τρόπο. Το noopener αφορά τη συμπεριφορά του browser. Δεν λέει στις μηχανές αναζήτησης αν εγκρίνετε μια σελίδα, αν πρέπει να μεταβιβαστεί link equity ή αν ο σύνδεσμος είναι πληρωμένος.
Αν η πολιτική SEO σας αντιμετωπίζει το noopener ως οδηγία κατάταξης, η πολιτική χρειάζεται επεξεργασία.
Το rel=noreferrer κρύβει τη σελίδα παραπομπής
Το rel="noreferrer" λέει στον browser να μη στείλει το HTTP header Referer όταν ο χρήστης ακολουθεί τον σύνδεσμο.
Ναι, το header είναι ιστορικά ανορθόγραφο ως Referer. Το attribute γράφεται noreferrer.
Κανονικά, όταν ένας χρήστης κάνει κλικ σε έναν σύνδεσμο από τη σελίδα σας προς άλλον ιστότοπο, ο προορισμός μπορεί να λάβει μια τιμή referrer που δείχνει από πού προήλθε η επίσκεψη. Ανάλογα με το Referrer-Policy του ιστότοπού σας, αυτή μπορεί να είναι το πλήρες URL, μόνο το origin ή τίποτα.
Για παράδειγμα, ένας προορισμός μπορεί να δει:
Referer: https://www.example.com/pricing?plan=enterprise
ή μόνο:
Referer: https://www.example.com/
Με το rel="noreferrer", ο browser δεν θα πρέπει να στείλει αυτό το header για τη συγκεκριμένη πλοήγηση.
<a href="https://external.example" rel="noreferrer">
External site
</a>
Στην πράξη, το noreferrer συμπεριφέρεται επίσης όπως το noopener στους σύγχρονους browsers. Αν χρησιμοποιείτε noreferrer, γενικά δεν χρειάζεστε noopener για ασφάλεια στον ίδιο σύνδεσμο. Πολλές ομάδες εξακολουθούν να γράφουν και τα δύο για σαφήνεια:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External site
</a>
Αυτό είναι αποδεκτό. Είναι πλεονάζον, αλλά ευανάγνωστο.
Πότε είναι χρήσιμο το noreferrer
Χρησιμοποιήστε το noreferrer όταν το URL της τρέχουσας σελίδας δεν πρέπει να εκτεθεί στον προορισμό.
Συνηθισμένα παραδείγματα:
- σύνδεσμοι από ιδιωτικά dashboards;
- σύνδεσμοι από αδημοσίευτα περιβάλλοντα preview;
- σύνδεσμοι από URLs που περιέχουν ευαίσθητες παραμέτρους query;
- σύνδεσμοι σε εργαλεία διαχείρισης, ουρές moderation, οθόνες CRM ή συστήματα υποστήριξης πελατών;
- σύνδεσμοι όπου ο προορισμός δεν πρέπει να γνωρίζει την ακριβή σελίδα προέλευσης.
Το τελευταίο σημείο δεν αφορά πάντα τη μυστικότητα. Μερικές φορές αφορά την ελαχιστοποίηση δεδομένων. Αν ο προορισμός δεν χρειάζεται να γνωρίζει το URL παραπομπής, μην το στέλνετε.
Αυτό ταιριάζει με τη γενικότερη κατεύθυνση του web design που λαμβάνει υπόψη την ιδιωτικότητα. Browsers, χρήστες και ρυθμιστικές αρχές έχουν όλοι κινηθεί προς την αποστολή λιγότερων ambient δεδομένων από προεπιλογή. Αν επανεξετάζετε αυτό το πεδίο, το άρθρο μας για τι άλλαξε για τα cookies το 2026 και τι να κάνετε γι’ αυτό καλύπτει την ίδια γενική μετατόπιση: λιγότερη αόρατη παρακολούθηση, πιο σκόπιμες ροές δεδομένων.
Ο συμβιβασμός στα analytics
Το noreferrer μπορεί να σπάσει την απόδοση προέλευσης για τον ιστότοπο στον οποίο συνδέεστε. Τα analytics τους μπορεί να ταξινομήσουν την επίσκεψη ως direct traffic αντί για referral traffic.
Αυτό δεν είναι το πρωτεύον δικό σας πρόβλημα, αλλά μπορεί να έχει σημασία σε συνεργασίες, affiliate σχέσεις, διαδρομές πελατών και εσωτερικά cross-domain οικοσυστήματα. Αν η ομάδα marketing σας αναμένει από συνεργαζόμενους ιστότοπους να βλέπουν referral traffic από το domain σας, το καθολικό noreferrer μπορεί να δημιουργήσει σύγχυση.
Για πολλούς συνηθισμένους editorial συνδέσμους, η καλύτερη προσέγγιση είναι να ορίσετε ένα site-wide header Referrer-Policy αντί να προσθέτετε noreferrer παντού. Για παράδειγμα:
Referrer-Policy: strict-origin-when-cross-origin
Αυτή η πολιτική στέλνει το πλήρες URL για πλοήγηση same-origin, στέλνει μόνο το origin σε ασφαλείς cross-origin προορισμούς και δεν στέλνει referrer κατά τη μετάβαση από HTTPS σε HTTP. Είναι μια πρακτική προεπιλογή για πολλούς ιστότοπους.
Αν χρειάζεται να ελέγξετε πώς συμπεριφέρονται τα headers σε production, ένας ακατέργαστος HTTP έλεγχος είναι συχνά πιο καθαρός από το να μαντεύετε από dashboards analytics. Η ροή εργασίας στο ένα μικρό toolkit για debugging redirects και HTTP headers σε production εφαρμόζεται άμεσα στο debugging του referrer-policy.
Το rel=nofollow είναι για μηχανές αναζήτησης, όχι για browsers
Το rel="nofollow" λέει στις μηχανές αναζήτησης ότι δεν θέλετε να υπονοήσετε έγκριση της συνδεδεμένης σελίδας.
<a href="https://external.example" rel="nofollow">
User-submitted link
</a>
Αρχικά, το nofollow εισήχθη για την αντιμετώπιση του comment spam. Η ιδέα ήταν απλή: αν οι σύνδεσμοι στα σχόλια δεν μετέφεραν ranking credit, οι spammers είχαν λιγότερο κίνητρο να πλημμυρίζουν blogs και forums.
Σήμερα, η Google αντιμετωπίζει το nofollow ως hint και όχι ως απόλυτη directive. Αυτή η διάκριση έχει σημασία. Σημαίνει ότι οι μηχανές αναζήτησης μπορεί να χρησιμοποιήσουν τον σύνδεσμο για discovery ή συστήματα κατάταξης σε ορισμένα πλαίσια, αλλά εσείς σηματοδοτείτε ξεκάθαρα ότι ο σύνδεσμος δεν πρέπει να αντιμετωπίζεται ως κανονική editorial έγκριση.
Πότε να χρησιμοποιείτε nofollow
Χρησιμοποιήστε το nofollow όταν συνδέεστε αλλά δεν θέλετε να εγγυηθείτε για τον προορισμό.
Λογικά παραδείγματα περιλαμβάνουν:
- μη αξιόπιστους συνδέσμους που δημιουργούνται από χρήστες;
- συνδέσμους σε δημόσια σχόλια ή προφίλ;
- συνδέσμους προς ιστότοπους που αναφέρονται ως παραδείγματα κακής συμπεριφοράς;
- συνδέσμους που περιλαμβάνονται για αναφορά αλλά όχι για έγκριση;
- συνδέσμους σε περιοχές όπου το moderation είναι περιορισμένο.
Για πληρωμένους ή sponsored συνδέσμους, προτιμήστε το rel="sponsored". Για user-generated content, προτιμήστε το rel="ugc". Μπορείτε να συνδυάσετε τιμές αν χρειάζεται:
<a href="https://example.com" rel="ugc nofollow">
User profile link
</a>
Αν διαχειρίζεστε δημόσιες φόρμες, σχόλια, καταλόγους ή σελίδες προφίλ, τα attributes συνδέσμων είναι μόνο ένα μέρος του προβλήματος κατάχρησης. Το spam συνήθως ξεκινά νωρίτερα στη ροή υποβολής. Έχουμε μια ξεχωριστή ανάλυση για γιατί η φόρμα επικοινωνίας σας είναι η μεγαλύτερη ευθύνη σας ως προς το spam, και το ίδιο μάθημα ισχύει εδώ: μην περιμένετε από το nofollow να αντισταθμίσει το αδύναμο moderation.
Τι δεν κάνει το nofollow
Το nofollow δεν εμποδίζει τους χρήστες να κάνουν κλικ στον σύνδεσμο. Δεν εμποδίζει τον browser να στείλει referrer. Δεν κρύβει τον προορισμό από την προβολή. Δεν ασφαλίζει το target="_blank".
Επίσης δεν εγγυάται ότι ένα URL δεν θα γίνει ποτέ crawled. Αν οι μηχανές αναζήτησης βρουν το URL αλλού, μπορούν ακόμη να το κάνουν crawl. Αν χρειάζεται να αποτρέψετε την ευρετηρίαση, χρησιμοποιήστε τους κατάλληλους robots controls στη σελίδα προορισμού, όπως noindex, όχι ένα attribute nofollow στον σύνδεσμο κάποιου άλλου.
Συνηθισμένοι συνδυασμοί
Εξωτερικός σύνδεσμος που ανοίγει σε νέα καρτέλα
<a href="https://external.example" target="_blank" rel="noopener">
External resource
</a>
Αυτή είναι η βάση. Αντιμετωπίζει το ζήτημα ασφάλειας που δημιουργείται από το άνοιγμα ενός νέου browsing context.
Αν επίσης δεν θέλετε να στείλετε δεδομένα referrer:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External resource
</a>
Πληρωμένη τοποθέτηση
<a href="https://sponsor.example" rel="sponsored">
Sponsor site
</a>
Μπορείτε να προσθέσετε noopener αν ανοίγει σε νέα καρτέλα:
<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
Sponsor site
</a>
Μη χρησιμοποιείτε το nofollow ως ασαφές υποκατάστατο για τη δήλωση πληρωμένων συνδέσμων. Οι μηχανές αναζήτησης έχουν πλέον μια πιο συγκεκριμένη τιμή γι’ αυτό: sponsored.
Σύνδεσμος που δημιουργήθηκε από χρήστη
<a href="https://user-submitted.example" rel="ugc nofollow">
User-submitted site
</a>
Αυτό λέει στις μηχανές αναζήτησης ότι ο σύνδεσμος συνεισφέρθηκε από χρήστη και δεν πρέπει να αντιμετωπίζεται ως κανονική editorial ψήφος.
Εσωτερικοί σύνδεσμοι
Οι περισσότεροι εσωτερικοί σύνδεσμοι δεν χρειάζονται καμία από αυτές τις τιμές.
Μην προσθέτετε nofollow σε εσωτερικούς συνδέσμους ως συνηθισμένη τακτική sculpting. Συνήθως δημιουργεί περισσότερη σύγχυση παρά όφελος. Αν μια σελίδα δεν πρέπει να ευρετηριαστεί, χειριστείτε το άμεσα. Αν μια σελίδα δεν πρέπει να γίνει crawled, σκεφτείτε προσεκτικά τους κανόνες robots, τον έλεγχο ταυτότητας, το canonicalization και την αρχιτεκτονική του ιστότοπου.
Για εσωτερικούς συνδέσμους που ανοίγουν σε νέα καρτέλα, το noopener παραμένει ακίνδυνο και μπορεί να είναι κατάλληλο. Αλλά η καλύτερη ερώτηση είναι γιατί ο εσωτερικός σύνδεσμος χρειάζεται εξαρχής νέα καρτέλα.
Μια πρακτική πολιτική για ομάδες
Ένα απλό house style αποτρέπει τα περισσότερα λάθη:
- Προσθέστε
rel="noopener"σε συνδέσμους μεtarget="_blank", ειδικά σε εξωτερικούς συνδέσμους. - Προσθέστε
noreferrerμόνο όταν η απόκρυψη του source URL είναι σκόπιμη. - Προσθέστε
nofollowμόνο όταν δεν εγκρίνετε τον προορισμό. - Χρησιμοποιήστε
sponsoredγια πληρωμένους συνδέσμους καιugcγια συνδέσμους που υποβάλλονται από χρήστες. - Μη χρησιμοποιείτε attributes συνδέσμων ως υποκατάστατο για access control, moderation ή κανόνες ευρετηρίασης.
Το σημαντικό μέρος είναι η πρόθεση. Κάθε token στο rel πρέπει να απαντά σε μια συγκεκριμένη ερώτηση:
- Ασφάλεια: πρέπει η νέα σελίδα να απομονωθεί από το opener;
- Ιδιωτικότητα: πρέπει ο προορισμός να λάβει πληροφορίες referrer;
- SEO: εγκρίνουμε αυτόν τον σύνδεσμο ως editorial αναφορά;
Αν κανείς στην ομάδα δεν μπορεί να απαντήσει σε αυτές τις ερωτήσεις, το attribute είναι πιθανότατα cargo cult HTML.
Πώς να ελέγξετε τι συμβαίνει
Για το noopener, ανοίξτε τον σύνδεσμο και ελέγξτε αν ο προορισμός μπορεί να έχει πρόσβαση στο window.opener. Σε μια ελεγχόμενη δοκιμαστική σελίδα, το window.opener πρέπει να είναι null όταν το noopener είναι ενεργό.
Για το noreferrer, επιθεωρήστε το network request στην πλευρά του προορισμού ή χρησιμοποιήστε έναν request logger σε δοκιμαστικό περιβάλλον. Τα Browser DevTools μπορούν να δείξουν εξερχόμενα request headers, αλλά τα server-side logs είναι συχνά πιο αξιόπιστα.
Για το nofollow, ο έλεγχος είναι λιγότερο άμεσος επειδή πρόκειται για ερμηνεία μηχανής αναζήτησης, όχι για συμπεριφορά browser. Ο καλύτερος έλεγχος είναι η επιθεώρηση του source: επιβεβαιώστε ότι το rendered HTML περιέχει την αναμενόμενη τιμή rel. Αν το frontend framework σας ξαναγράφει συνδέσμους, επιθεωρήστε το τελικό DOM, όχι μόνο το template.
Η ουσία
Αυτά τα attributes είναι μικρά, αλλά βρίσκονται στη διασταύρωση ασφάλειας, ιδιωτικότητας και SEO. Το να τα αντιμετωπίζετε ως εναλλάξιμα δημιουργεί κακές συνήθειες.
Χρησιμοποιείτε γενναιόδωρα το noopener με συνδέσμους νέας καρτέλας. Χρησιμοποιείτε το noreferrer συνειδητά όταν έχει σημασία η ιδιωτικότητα του referrer. Χρησιμοποιείτε το nofollow όταν κάνετε μια δήλωση προς τις μηχανές αναζήτησης σχετικά με την έγκριση. Και όταν ένας σύνδεσμος είναι πληρωμένος ή user-generated, χρησιμοποιείτε τις πιο συγκεκριμένες σύγχρονες τιμές: sponsored και ugc.
Αυτό αρκεί για τους περισσότερους ιστότοπους. Ο στόχος δεν είναι να διακοσμήσετε κάθε σύνδεσμο. Ο στόχος είναι κάθε σύνδεσμος να λέει στον browser και στις μηχανές αναζήτησης ακριβώς ό,τι χρειάζεται να γνωρίζουν.