把外部連結一律補上 nofollow noopener noreferrer 一整串,是我們稽核時最常看到、也最花冤枉錢的設定。這三個值各自解決完全不同的問題:一個管 SEO、一個管安全、一個管隱私,混在一起用,等於三把鑰匙開錯了鎖。更糟的是,這種一鍵套用常常把該傳的權重擋掉、把不必隱藏的來源藏起來,甚至順手複製到內部連結上,悄悄削弱整站的權重流動。這篇我們把 nofollow、noopener、noreferrer 各自的時機講清楚,順帶談外部連結的安全,以及內部連結誤加 nofollow 會付出什麼代價,讓你下次設定連結時能逐條判斷,而不是靠一串貼上去的屬性碰運氣。

1. 三個 rel 屬性各自解決不同的問題

先把觀念釘牢:這三個值一個管 SEO、一個管安全、一個管隱私,彼此獨立。你要先問自己「我想解決哪個問題」,再決定加哪一個,而不是三個一起貼上去圖個安心。理解了這層分工,後面所有的取捨都會變得簡單,因為你不再是在背規則,而是在對症下藥。

1.1 nofollow 是給搜尋引擎看的訊號

rel="nofollow" 告訴搜尋引擎「這個連結我不替它背書,別把權重傳過去」。它處理的是 SEO 層面的問題,和使用者體驗、安全完全無關。典型用途是你無法為對方內容負責的連結,例如使用者留言裡貼的網址、付費置入的連結。要理解的是,它的作用對象是排名訊號的傳遞,不是頁面能不能被開啟、安不安全。把它當成安全設定來用,是最常見的誤會之一。它不會保護使用者,也不會影響頁面在瀏覽器裡的行為,它只對搜尋引擎說話。

1.2 noopener 是堵一個安全漏洞

rel="noopener" 處理的是安全問題。當你用 target="_blank" 在新分頁開啟連結,被開啟的頁面在某些情況下能透過 JavaScript 反過來操控你的原分頁,把它導去釣魚頁。加上 noopener 就切斷這條反向存取的路,讓對方碰不到你的視窗。它和權重傳不傳遞一點關係都沒有,所以即使你希望把權重傳給對方,也完全可以、而且應該加上它。換句話說,noopener 幾乎是零副作用的防護,該裝就裝,不用擔心它會拖累任何 SEO 或分析數據。

1.3 noreferrer 是隱藏來源資訊

rel="noreferrer" 讓瀏覽器在跳往目標頁時,不要送出「使用者是從哪一頁來的」這個來源資訊。它同時也有 noopener 的安全效果,但多帶了隱藏來源這個副作用。這個副作用有代價:對方的分析工具會把這批流量歸類成無來源,你在對方眼中就消失了。如果你連的是合作夥伴、希望對方的後台能看到「這批流量來自你」,加了 noreferrer 反而幫了倒忙。所以它不是預設就該加的東西,而是真的基於隱私考量、不想讓對方知道來源時才用。

rel 值 解決的問題 典型使用時機 對 SEO 的影響
nofollow 權重傳遞(SEO) 不願背書的外部連結、留言、付費連結 不傳遞權重
noopener 新分頁的反向操控(安全) 凡是 target="_blank" 的連結 無
noreferrer 來源資訊外洩(隱私) 需要隱藏來源時才用 無,但對方看不到來源流量

1.4 為什麼會養成一鍵全套的習慣

會有一鍵套用三個值的習慣,通常不是因為誰想錯,而是工具與模板的慣性。很多編輯器或外掛在插入外部連結時,預設就把整串屬性帶上,久而久之大家以為這就是標準寫法;也有人是看到別人的原始碼這樣寫,照抄過來圖個保險。問題是這串屬性一旦進了模板或共用區塊,就會無差別地套在每一條連結上,連內部連結都不放過。我們的建議是回到源頭處理:與其一條條事後清,不如先檢查產生連結的那個環節,把預設值改成只帶真正需要的屬性,之後新增的連結就乾淨了。理解每個值在解決什麼,才有辦法判斷預設該留哪個、拿掉哪個。

2. 外部連結的安全:noopener 與 noreferrer 的時機

外部連結最該優先顧的其實是安全,而不是急著擋權重。這一節談新分頁的風險,以及兩個安全相關的值怎麼取捨,讓你在保護使用者和保留合作數據之間找到平衡。

2.1 target=_blank 帶來的反向操控風險

用新分頁開啟外部連結很常見,但這個動作在沒有防護時會留下一個縫:新開的頁面可以透過瀏覽器提供的視窗參照,反過來把你的原分頁導向別處。使用者切回來時,看到的可能已經是一個偽裝的登入頁。這類攻擊不需要很高的技術門檻,卻能造成實際的帳號竊取。對一個有會員登入、有金流的網站來說,這個縫不是理論上的風險,而是真的被利用過的攻擊面。正因為門檻低、傷害大,我們會把它列為外部連結檢查的第一順位,寧可多花幾分鐘補齊,也不要留著這個縫。

2.2 只要開新分頁,就補上 noopener

我們的原則很單純:凡是 target="_blank",就配 rel="noopener"。它切斷反向操控的路,又不影響任何 SEO 或分析數據,幾乎沒有副作用。現代瀏覽器多半已經預設這個行為,但我們不依賴預設,該寫的還是明白寫出來,免得哪天環境不同就破功。依賴瀏覽器預設的風險在於,你無法控制每一個訪客用的是什麼版本、什麼設定,把防護寫進程式碼裡,才是你能掌握的底線。標準寫法是這樣:

<a href="https://example.com/" target="_blank" rel="noopener">外部資源</a>

2.3 noreferrer 要不要加,看你在不在乎被對方看見

noreferrer 除了安全效果,還會把來源資訊一起藏掉。如果你連向的是合作夥伴、希望對方的分析後台能看到「這批流量來自你」,那就不要加 noreferrer,只用 noopener 就好。反過來,若基於隱私考量不想讓對方知道使用者從哪來,才加上它。我們實務上偏好保留來源,因為那份「我替你導了多少流量」的紀錄,常常是後續談合作、談交換資源時最有力的籌碼。把來源藏掉看似保守,卻等於主動放棄了一個能被對方看見、被記住的機會。

2.4 開新分頁本身也要節制,別每條外連都開新分頁

順帶一提,target="_blank" 不是非加不可。有些團隊為了「不讓使用者離開網站」而把每一條外部連結都設成新分頁,結果使用者桌面開了一堆分頁,體驗反而變差。我們的建議是依情境判斷:如果連結是讓使用者參考、看完還會回來的,開新分頁合理;如果只是內容裡順帶一提的引用,用同分頁其實更自然。這和安全無關,但和使用者體驗有關,而體驗本身也是搜尋引擎在意的訊號之一。每多開一個新分頁,就多一個要記得補 noopener 的地方,少開不必要的新分頁,連檢查的負擔都跟著輕。

3. nofollow 該加在哪、不該加在哪

nofollow 是三者裡最常被濫用的一個。用對地方它幫你把關,用錯地方它反而堵住自己的權重流動。這一節把該加與不該加的情境分清楚,尤其是內部連結這個最常出事的地方。

3.1 適合加 nofollow 的外部連結

當你連向一個無法為其內容負責、或不想替它背書的頁面時,就適合加 nofollow。例如留言區使用者自行貼的網址、你無法控管品質的外部來源、或是你引用但不完全認同的頁面。這是在告訴搜尋引擎:這條連結的存在有它的功能,但我不為它的內容站台。關鍵判準是「你願不願意替它背書」,而不是「它是不是外部連結」。很多人把所有外站連結都加上 nofollow,其實是過度防衛,真正值得你背書、主動引用的權威來源,讓它自然傳遞信任反而對雙方都好。連出去並不會讓你「漏權重」到失血,適度引用可信來源,本身就是內容品質的一部分,搜尋引擎也樂見一篇文章有紮實的參考依據。

3.2 付費與使用者內容,用更精準的值

除了 nofollow,還有兩個更精準的值可以取代它:付費、贊助性質的連結用 rel="sponsored",使用者自行產生的內容例如留言、論壇貼文用 rel="ugc"。它們讓搜尋引擎更清楚這條連結的來歷,而不是一律用 nofollow 含糊帶過。能標得更準,就別偷懶用同一個值。這麼做的好處是,搜尋引擎對你整站的連結結構理解得更完整,長期而言更容易信任你其他自然傳遞的訊號。標註愈誠實,你在演算法眼中的可信度愈穩。

3.3 內部連結不要加 nofollow

這是我們要特別提高音量的一點:內部連結不要加 nofollow。內部連結的價值就在於讓權重與主題訊號在自己的網站裡流動,你替它加上 nofollow,等於親手把這條管道封起來。我們看過不少網站在導覽列、頁尾連結上不明所以地加了 nofollow,結果權重卡在首頁流不出去,深層頁面長期弱勢。根據我們的服務經驗,光是把內部連結上這些多餘的 nofollow 清掉,深層頁面的收錄與名次往往就會慢慢回穩,因為權重終於能順著連結往下走了。

4. 內部連結誤加 nofollow 的代價

內部連結誤加 nofollow 是個安靜的錯誤,它不會報錯、頁面照常運作,但你的站內權重分配已經悄悄壞掉。這種問題不容易被發現,因為表面上一切正常,往往要等到名次長期上不去,才回頭查出根源。

4.1 權重無法在站內流動

搜尋引擎依賴 <a href> 在頁面之間傳遞權重與關聯。一旦內部連結被加上 nofollow,這條傳遞路徑就被切斷,首頁累積的權重送不到分類頁、分類頁也帶不動詳情頁。整個網站的權重分配會變得頭重腳輕,深層的重要內容拿不到它應得的支持。這種結構性的失衡,往往比單一頁面的問題更難察覺,因為每一頁看起來都正常,只是整體的力氣傳不下去。你會發現明明內容寫得不錯的深層頁,排名卻遲遲起不來,根源常常就在這裡。

4.2 最常見的誤加,是想省抓取預算

我們遇過最多的情境,是有人想減少爬蟲去抓登入、購物車、篩選參數這類頁面,於是在指向它們的內部連結上加 nofollow。動機可以理解,但工具用錯了。nofollow 現在比較像是一個提示而非硬性指令,不保證爬蟲就不去抓,反而把權重傳遞的訊號弄亂。我們處理過一個站,負責人好意地把所有功能性連結都加了 nofollow 想省預算,結果連帶影響了站內權重的正常流動,把它拆掉之後,整體收錄反而更順。想達到的目的沒達到,副作用倒是實實在在發生了。

4.3 想控制抓取或收錄,用對的工具

要控制爬蟲要不要抓某些路徑,該用的是 robots.txt 的 Disallow;要控制某頁不出現在搜尋結果,該用的是頁面上的 noindex。這兩個才是為抓取與收錄設計的工具,各司其職。nofollow 管的是權重背書,把它拿來當抓取控制,是把三件不同的事情混為一談。工具對上問題,設定才不會互相打架。把這三者的分工記清楚,你就不會再用一個屬性去硬扛三種需求,然後納悶為什麼哪個都沒做好。

4.4 先止血,再全面盤點

發現內部連結被誤加 nofollow 時,處理順序我們會分成兩步。第一步是止血:先把導覽列、頁尾、麵包屑這些出現在每一頁、影響範圍最大的共用區塊檢查一遍,因為這些地方一旦誤加,等於全站每一頁都在漏權重,修掉它們的效益最立即。第二步才是全面盤點,用爬蟲把所有內部連結的 rel 撈出來逐一核對。這個順序的好處是,你不必等到整站盤點完才開始受益,修掉幾個關鍵模板,站內的權重流動往往當下就鬆開了一大半。我們在服務案例裡通常一天之內先把共用區塊處理掉,剩下的長尾慢慢清。

5. 我們檢查 rel 屬性的三個動作

rel 的問題大多藏在細節裡,肉眼一頁頁看很難抓全。我們用三個固定動作把它系統化地檢查完,照著跑一遍,大部分的設定錯誤都會浮出來。

5.1 掃出所有 target=_blank,確認都配了 noopener

先用爬蟲工具把全站帶 target="_blank" 的連結抓出來,逐一確認有沒有配上 noopener。這是安全的底線,漏掉的就補上。這一步和 SEO 無關,但它保護的是使用者的帳號安全,我們一向排在最前面做。把安全的事先做完,後面調整 SEO 相關的設定時才不會心裡有個缺口。這也是我們向客戶交付檢查清單時,永遠列在第一項的理由:其他問題頂多影響排名,這個問題影響的是訪客會不會被騙走帳號。

5.2 檢查內部連結有沒有多餘的 nofollow

把指向自己網域的連結全部拉出來,搜尋裡面有沒有 nofollow。內部連結原則上都不該有,找到就要追它為什麼被加,通常都是複製外部連結設定時順手帶過來的。拆掉這些多餘的 nofollow,是恢復站內權重流動最直接的一步。我們通常會一邊拆、一邊記錄它原本出現在哪種模板上,因為這類錯誤常常是整批由同一個區塊或外掛產生的,找到源頭一次改掉,比一條條手動清有效率得多。

5.3 把外部連結分類,套上對的 rel

最後檢視外部連結,依性質分類:一般引用只需要 noopener;不背書的來源加 nofollow;付費置入用 sponsored;使用者貼的內容用 ugc。分類做完再套值,你會發現真正需要 nofollow 的比想像中少很多,而每一條連結傳遞的訊號也變得清楚。與其一鍵全套,不如花這點功夫分門別類,結果對搜尋引擎和對你自己都更乾淨。這個動作做過一輪之後,之後新增連結時你也會自然養成先問「這條是什麼性質」的習慣,不再無腦複製同一串屬性。

6. 常見問題

6.1 所有外部連結都加 nofollow noopener noreferrer 有沒有問題

有,這是把三個不同用途的值不分青紅皂白貼在一起。noopener 顧安全通常該加,nofollow 只在你不願背書時才需要,noreferrer 會連帶隱藏來源、讓對方看不到你導去的流量。逐條依需求判斷,比一鍵全套更妥當,也能避免把該傳的權重或該保留的來源白白擋掉。

6.2 noopener 和 noreferrer 有什麼差別

noopener 只切斷新分頁反向操控原分頁的路,不影響其他東西;noreferrer 除了同樣有這個安全效果,還會把來源資訊一起藏掉。如果你希望對方的分析後台看得到流量來自你,就用 noopener 就好。兩者的安全效果重疊,差別只在要不要連來源一起隱藏。多數一般外部連結,用 noopener 就足夠,noreferrer 留給你真的有隱私顧慮、刻意不想被對方追蹤來源的少數情況再用。

6.3 內部連結加了 nofollow 會怎樣

它會切斷權重在站內的傳遞,讓首頁的權重送不到深層頁面,整站的權重分配變得失衡。內部連結原則上都不該加 nofollow,發現有就該追查並移除。這類錯誤不會讓頁面壞掉,所以很容易被忽略,但它對深層頁面排名的拖累是長期而實在的。要特別留意的是導覽列與頁尾這類出現在每一頁的共用區塊,一旦誤加,影響的不是單頁而是全站,修掉它們的效益也最立即。

6.4 想讓爬蟲別抓某些頁面,用 nofollow 對嗎

不對。nofollow 管的是權重背書,不是抓取控制,而且它比較像提示而非硬性指令,不保證爬蟲就不去。要控制抓取用 robots.txt 的 Disallow,要控制收錄用 noindex,工具要對上問題。用 nofollow 去擋抓取,通常是想達到的目的沒達到,卻把權重訊號弄亂了。

6.5 sponsored 和 ugc 一定要用嗎,還是 nofollow 就夠

nofollow 仍然有效,但 sponsored 和 ugc 能更精準地告訴搜尋引擎連結的來歷:付費置入用 sponsored,使用者產生的內容用 ugc。能標得更清楚就用它們,對搜尋引擎理解你的連結結構有幫助,也讓你整站的標註看起來更一致可信。換個角度想,把判斷材料完整交給搜尋引擎,遠比含糊帶過讓它自己猜來得穩當。

6.6 舊文章裡一堆一鍵套用的 rel,需要全部回頭改嗎

不必逐條手動改。比較務實的做法是先從流量高、連結多的重點頁面改起,同時檢查是不是某個模板或外掛在統一產生這串屬性,找到源頭一次調整,效果比一篇篇清快得多。舊文裡的多餘屬性雖然不理想,但它的急迫性通常低於內部連結誤加 nofollow 這種會持續漏權重的問題,排修復順序時可以往後放。