Google在索引你的網站頁面後,會在使用者搜尋時,將網站內容選出適當的片段作為「網頁摘要 Snippet」顯示在搜尋結果上。有些時候你的網站上可能有部分的內容並不適合當作網頁摘要,或純粹你只是不想讓 Google這麼做,這個時候你可以使用 data-nosnippet屬性,讓網頁摘要更集中在你的內容上,排除不重要的地方。
data-nosnippet屬於 Google搜尋引擎的屬性,Bing並沒有明確的文件指出是否支援。
一、data-nosnippet、nosnippet與 max-snippet
這三個屬性都是使用在控制網頁摘要上。
data-nosnippet是 HTML標籤,會使用在 Body的內容中,讓被此標籤屬性涵蓋的內容不要被作為摘要。
nosnippet是 meta標籤,使用在 Head區塊中,當網頁有 nosnippet的 meta標籤時,Google不會在搜尋結果顯示文字或影片摘要預覽,不過 Google強調,當頁面內包含有對使用者體驗好的靜態圖片的縮圖時,仍然可能會顯示縮圖。
使用方法為 <meta name="robots" content="nosnippet">
max-snippet也是 meta標籤。舉例來說 max-snippet:20 表示告訴 Google使用 20個字元作為文字摘要;輸入 0 就等於前述 nosnippet的效果;輸入 -1表示讓 Google決定多長的摘要最可能讓使用者造訪你的網站。
使用方法為 <meta name="robots" content="max-snippet:20">
特別要提到的是,如果你在結構化資料中提供了長度更長的文字摘要,那個 Google就會忽略這個設定。
二、你需要 data-nosnippet嗎?
這是我的使用情境,也許你可以作為參考:
我有一個網站經常有許多訪客留言,而訪客留言內容會顯示在每一頁文章的側欄(sidebar)網站上,這可以幫助使用者知道其他人正在談論些什麼話題,不過但這些留言卻經常被 Google收錄在網頁摘要中顯示,事實上這讓網頁摘要變得有些多餘的內容。
另一個情境是,我在部落格側欄上放了文章分類和標籤,但這些分類和標籤的名稱並不需要被放在網頁摘要中,因此我用 data-nosnippet將它們包起來。
也或許如下圖,我覺得永遠都不必出現作為摘要的是我的選單內容,那就可以用 data-nosnippet包起來。
簡單來說,如果頁面中有某個部分的內容不想被顯示在網頁摘要中,用 data-nosnippet包起來就對了。
三、data-nosnippet影響索引頁面內容嗎?
即使你使用 data-nosnippet包起來,這些內容同樣會被 Google索引,只是被包起來的內容不會顯示在網頁摘要中。並非告訴 Google這個區塊不存在。
四、那結構化資料...
也許你發現了,結構化資料的優先權對於 Google是較高的,一個好的網站事實上也應該要是當的撰寫描述(Meta Description)、結構化資料(Structured Data)的各項欄位,這麼一來多少可以讓你的網頁摘要更符合正確的內容。但如果你只是使用 WordPress的各種 SEO外掛並讓系統自動產生結構化資料描述,那其實和沒有填寫的「價值」是差不多的。
即便你撰寫了結構化資料的描述內容,Google仍然可能在搜尋結果中調整你的網頁內容摘要,以便符合使用者搜尋的關鍵字顯示。(甚至會調整你的網站頁面標題)
所以說...不論你有沒有使用結構化資料,只要有某個區塊你是不想被作為網站摘要顯示的,加上 data-nosnippet就對了。
五、實作 data-nosnippet使用
data-nosnippet必須被使用在 span、div或 section標籤中,使用方法如下:
<p>這裡的文字會被顯示在摘要
<span data-nosnippet>這裡的文字不會被顯示在摘要</span>。</p>
<div data-nosnippet>這裡的文字不會被顯示在摘要</div>
<div data-nosnippet="true">這裡的文字也不會被顯示在摘要</div>
<div data-nosnippet>文字內容</html>
<!-- 由於此列沒有正確關閉 div標籤,所以內容仍會顯示在摘要 -->
<mytag data-nosnippet>文字內容</mytag>
<!-- 不正確: 不是使用在 span, div 或 section -->
將你不想要被作為網頁摘要的部分使用如上述的標籤方式包起來,就可以囉!切記!標籤要「有開有關」!
一般來說 Google會轉譯(Render)你的網站後建立索引,轉譯就是把原始碼轉換成如一般使用者所見的網站過程,但這個動作不一定會發生,所以不要使用 JavaScript的方式來為現有節點新增或移除 data-nosnippet屬性;如果是使用 JavaScript 新增 DOM 元素則是依照需來加入 data-nosnippet 屬性。
如果你也在尋找讓某些部份不要作為 Google搜尋結果網頁摘要的方法,以上提供給你參考!相信正確的使用,也可以讓自動產生的網頁摘要變得更精確的!