Thuộc tính rel="noopener" là một trong những thuộc tính HTML quan trọng nhất cần biết vì nó ảnh hưởng trực tiếp đến bảo mật liên kết ngoài trên các liên kết anchor dùng target="_blank".
target="_blank" làm liên kết mở trong tab trình duyệt mới.
Ví dụ liên kết với rel="noopener":
<a href="https://www.youtube.com" rel="noopener" target="_blank" >Liên kết đến youtube.com</a >
Cách rel="noopener" hoạt động
Khi thêm rel="noopener" vào liên kết ngoài (với target="_blank"), nó ngăn trang web bạn liên kết truy cập trang của bạn qua đối tượng window (qua thuộc tính window.opener).
Dịch: nếu trang bạn tham chiếu chứa mã độc, nó có thể dùng cửa sau (window.opener) đến trang web của bạn để chiếm đoạt trình duyệt người dùng, ví dụ chuyển hướng đến trang lừa đảo nguy hiểm đánh cắp thông tin hoặc cài malware.
Đây là lý do WordPress tự động thêm rel="noopener" trên mọi liên kết ngoài mở tab mới (dùng target="_blank") — vì lý do bảo mật.
Tôi khuyên bạn làm tương tự, bất kể loại trang web, vì lợi ích hơn bất lợi.
rel="noopener" và SEO
Tin tốt: rel="noopener" không ảnh hưởng SEO.
Nhược điểm của noopener
Nhược điểm duy nhất: rel="noopener" không hỗ trợ Internet Explorer 11.
Tôi không lo vì:
- IE11 sắp bị loại (Microsoft bỏ nó).
- Khách dùng IE11 vẫn nhấp liên kết,
rel="noopener"chỉ không có tác dụng.
Bên cạnh đó, là chủ trang web có trách nhiệm, bạn nên cẩn trọng về trang web tham chiếu. Đừng giới thiệu người dùng đến trang không tin cậy, vấn đề bảo mật gần như không tồn tại.
Lựa chọn 1: dùng "noreferrer"
Nếu lo người dùng IE, thêm giá trị noreferrer (được hỗ trợ) vào anchor link:
<a href="https://www.youtube.com" rel="noopener noreferrer" target="_blank" >Liên kết đến youtube.com</a >
Thuộc tính "noreferrer" ngăn người giới thiệu (bạn) gửi thông tin đến trang đích (bạn liên kết) bằng cách xóa info referral từ header HTTP.
rel="noreferrer" ảnh hưởng analytics vì trang bạn liên kết không biết bạn liên kết đến họ, có thể làm hỏng thỏa thuận kinh doanh.
Làm tại rủi ro của bạn.
rel="noreferrer" và SEO
Trái ngược niềm tin nhiều người, rel="noreferrer" không ảnh hưởng trực tiếp SEO, ít nhất không có bằng chứng. Nhưng như trên, sẽ can thiệp thu thập dữ liệu/analytics, có thể hại gián tiếp tùy tình huống.
Đừng nhầm noreferrer hoặc noopener với nofollow (100% ảnh hưởng SEO).
Lựa chọn 2: không dùng target="_blank"
Có thể ngừng dùng target="_blank" trên anchor link, thì không lo vấn đề này.
Không có target="_blank", mọi liên kết sẽ chuyển người dùng khỏi trang bạn đến trang bạn liên kết ngay khi nhấp.
Tuy nhiên, không dùng target="_blank" có thể ảnh hưởng SEO tiêu cực, cụ thể tỷ lệ thoát (bounce rate).
Tôi thấy đây đặc biệt là ý tưởng tồi trong hướng dẫn, nơi người dùng có thể bị phân tâm bởi trang bạn tham chiếu và quên trang bạn.
Bạn có thể lập luận nếu chỉ cần một liên kết ngoài để người đọc quên nội dung, nội dung có thể không tốt. Có thể đúng, nhưng cũng có thể mọi người dễ bị phân tâm, và thường không lợi cho họ.
Chủ đề không trắng đen, tôi mở lòng với quan điểm khác.
Tài nguyên
Đọc thêm về vấn đề bảo mật liên kết ngoài