a
標簽的rel
屬性用於指定當前文檔與被鏈接文檔的關系,僅在 href
屬性存在時使用。為了讓搜索引擎更好的識別頁面中個鏈接的作用,更加有利於SEO,提升網站收錄與排名,可以在網站鏈接中添加合適的rel屬性。
常用的rel屬性如下:
1. external
此屬性的意思是告訴搜索引擎,這個鏈接不是本站鏈接,其實作用相當於 target="_blank"。
為什么要這樣寫呢?因為有些網站因為是采用嚴格的 DOCTYPE 聲名的,如果你在網頁源碼中的第一行看到:在這種情況下 target="_blank" 會失效,因此采用 rel='external 這個參數來替代。
2. nofllow
它是告訴搜索引擎,不要將該鏈接計入權重。因此多數情況下,我們可以將一些不想傳遞權重的鏈接進行nofllow處理;例如一些非本站的鏈接,不想傳遞權重,但是又需要加在頁面中的像 統計代碼、備案號鏈接、供用戶查詢的鏈接等等。
nofollow 有兩種用法:
1.用於meta元標簽:<meta name="robots" content="nofollow" />
,告訴爬蟲該頁面上所有鏈接都無需追蹤。
2.用於a標簽:<a href="login.aspx" rel="nofollow">登錄</a>
,告訴爬蟲該頁面無需追蹤。
3. noopener
a 標簽的target="_blank"時,會打開一個新的頁面,此時新的窗口的 window 對象上有一個 opener 屬性,新的頁面獲得了前一個頁面控制權,就會出現安全問題,noopener 就可以解決這個問題,設置后,新頁面的window.opener 就為 null 了。
nofollow主要有三個作用:
1.防止不可信的內容,最常見的是博客上的垃圾留言與評論中為了獲取外鏈的垃圾鏈接,為了防止頁面指向一些拉圾頁面和站點。
2.付費鏈接:為了防止付費鏈接影響Google的搜索結果排名,Google建議使用nofollow屬性。
3.引導爬蟲抓取有效的頁面:避免爬蟲抓取一些無意義的頁面,影響爬蟲抓取的效率
4. noreferrer
在老的瀏覽器中,可以使用 rel=noreferrer 禁用HTTP頭部的 Referer 屬性,使用下面 JavaScript 代替 target="_blank" 的解決此問題。
var otherWindow = window.open('http://www.baidu.com');
otherWindow.opener = null;
otherWindow.location = url;
5. alternate
alternate是一個移動屬性,如果權威(canonical)網頁有對應的移動版變體,就要為其添加 rel="alternate" 鏈接,並使其指向此網頁的移動版:
<link rel="alternate" media="only screen and (max-width: 640px)" href=http://m.example.com/about/ >
簡而言之,當你擁有單獨的移動和桌面網站時,你需要將這兩者之間的關系清楚地表達到搜索引擎,以幫助他們了解向其用戶提供的網站以及防止出現重復內容問題。
6. bookmark
意思是這個鏈接用於一個代表書簽的永久性鏈接,由於rel只能使用在a超鏈接里面,通俗的講使用rel="bookmark"就是說明該超鏈接是一個書簽並且是永久性的。
rel 屬性詳細如下:
alternate
鏈接到文檔的替代版本(例如打印頁、翻譯或鏡像)。
archives
鏈接到文檔集或歷史數據。
author
鏈接到文檔的作者。
bookmark
用作書簽的永久 URL。
external
鏈接到外部文檔。
first
鏈接到集合中的首個文檔。
help
鏈接到幫助文檔。
index
鏈接到文檔的索引。
last
鏈接到集合中最后的文檔。
licence
鏈接到文檔的版權信息。
next
集合中下一個文檔。
nofollow
鏈接到未認可的文檔,比如付費鏈接。Google 使用 "nofollow" 來規定其搜索蜘蛛不跟蹤該鏈接。
noreferrer
規定當用戶跟隨該超鏈接時,瀏覽器不應發送 HTTP referer 頭。
prev
集合中的前一個文檔。
search
鏈接到文檔的搜索工具。
sidebar
鏈接到應該在瀏覽器邊欄中顯示的文檔。
tag
當前文檔標簽(關鍵詞)。
up
提供指向一個文檔的鏈接。該文檔提供當前文檔的上下文關系。