2012-01-18 385 views
19

比方說,我有一些文字很多的html文檔。它是「好的」(〜不壞:))具有包含微數據的元素並隱藏這些元素以便用戶不會真正看到它們?可以用CSS隱藏微數據嗎?

比方說,我有這樣的:

<div style="display:none" itemscope...>some microdata describing div below</div> 
<div> There is actual text that is described by microdata</div> 

的一點是,這種方式可能更容易來形容第2格。您不必在整個文本中進行更改,只需添加一些元素並隱藏它們即可。我想創建一個簡單的HTML編輯器來支持創建微數據,這種方式似乎更容易實現,並且更易於使用(首先創建實際內容,然後對其進行註釋)。

回答

7

用Microdata標記的隱藏內容擊敗了它的意義,它旨在添加關於頁面上已經可見的內容的附加信息。主要觀點是人們總是記得更新可見內容,但經常忘記更新他們看不到的內容,因此隱藏的「元」內容經常過時並且不準確。微數據代替了描述可見內容的方法,所以如果內容改變了它產生的數據改變。就拿這個例子from the spec

<h1 itemprop="fn"> 
    <span itemprop="n" itemscope> 
    <span itemprop="given-name">Jack</span> 
    <span itemprop="family-name">Bauer</span> 
    </span> 
</h1> 

如果你改變了可見的內容沒有微數據標記的實際變化:

<h1 itemprop="fn"> 
    <span itemprop="n" itemscope> 
    <span itemprop="given-name">Tim</span> 
    <span itemprop="family-name">Berners-Lee</span> 
    </span> 
</h1> 

所以微觀數據幾乎肯定不是你想在你的情況下使用什麼。你真正應該使用什麼取決於你想要什麼信息。如果您想添加隱藏數據以便在您的網站上使用腳本進行處理,請改爲使用data-* attributes。如果您想添加並非所有用戶都需要查看的其他描述性信息,請考慮使用ARIA。特別是在你的情況下,aria-describedby

+3

我有同樣的問題;我有4頁。我必須將麪包屑信息添加到頁面,但我不希望這些麪包屑在網頁上可見。但是,這些數據是通過谷歌豐富的代碼片段顯示獲取的。 – user1769790 2013-08-26 21:49:01

1

你打算對隱藏的數據做什麼嗎?我會使用HTML註釋或標題屬性。

HTML註釋:

<!-- This is an HTML Comment --> 
<div>Content</div> 

標題屬性:

<div title="some information describing div">Content of div</div> 

HTML註釋,當然,就像在編程語言註釋,除非他們通過給客戶端。標準標題元素屬性(可用於所有html元素)包含有關元素的額外信息,並且在懸停在元素上時用作工具提示。

例如,HTML爲您的接受率高達有:

<div class="accept-rate cool" title="this user has accepted an answer for 4 of 6 eligible questions">67% accept rate</div> 

,如果你在它懸停它說:「該用戶已經接受了4 6的資格問題的答案」哪。

+0

謝謝,不幸的是,我需要的微觀數據,因爲它們將被用於其他目的和微觀數據(數據或RDFa等)提供了更好的方法添加一些語義信息比標題或評論 – ladar 2012-01-18 00:48:12

29

schema.org有一個實際的方法「藏」的微數據:

http://schema.org/docs/gs.html#advanced_missing

如果你試圖影響SEO然後從用戶「隱藏」的語義標記的數據,但保持它的機器可讀(對於機器人/蜘蛛)完全不能達到目的。

如果您的schema.org標記格式正確,那麼如果您「隱藏」這些值,Google不會懲罰您的索引排名。

+0

你知道Google是否尊重這一點?在我開發的一個網站中,內容的持有者是一個

,它的設計就像一個日曆(想要在Google中有豐富的事件摘要),所以事件在各自的日期/日期內是CONTAINED,因此對用戶來說是隱含的,它不會沒有意義,不能使用 ...否則谷歌正在縮小,因爲你只能以一種方式顯示事件..... – 2013-06-29 20:08:45

+0

我在問,因爲在豐富的格式頁面上,他們明確表示這些豐富的片段內容不應該隱藏起來...... – 2013-06-29 20:09:54

+1

@BrenoSalgado Google完全支持並支持Schema.org :) – Swivel 2013-11-27 23:14:09

7

schema.org,因此谷歌正式在狀態[1],你不應該標記隱藏的內容:

越多越好,除了隱藏的文本。一般來說,你標記的內容越多越好。但是,作爲一般規則,您應該只標記訪問該網頁的人員可見的內容,而不是隱藏的div或其他隱藏頁面元素中的內容。

您可以使用linkmeta HTML標籤也是在身體標記這應該是用戶看不到的內容:

你想用meta標籤隱藏微數據。

例如,

<div itemscope itemtype="http://schema.org/Product"> 
    <span itemprop="name">Funky Skirt</span> 
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <meta itemprop="price" content="100.00" /> 
     <link itemprop="availability" href="http://schema.org/InStock" />In stock 
    </div> 
</div> 

[1] http://schema.org/docs/gs.html

+0

他們的文檔說「一般規則」 - 從來不是 - 他們發出的信號是不要嘗試使用隱藏內容作爲SEO策略的一部分來關鍵字的東西,或者你徘徊在懲罰領域。您仍然可以爲自己的目的使用隱藏的內容,但如果您想要打破「一般規則」,則不要在關鍵字密度排名嘗試中使用。 – 2017-10-07 16:24:20

0

如果我們是在談論谷歌penalities,您對carefuly閱讀豐富網頁摘要的文檔類型,你正在處理。

例如,如果我走產品豐富網頁摘要,文檔(https://support.google.com/webmasters/answer/146750?hl=en#offer_properties)以下唯一指定的字段: 谷歌時隱時現對以下產品標籤不被谷歌忽略識別特定的機器可讀的值:

  • 類別
  • priceValidUntil
  • priceCurrency
  • 價格
  • 標識符
  • 條件

因此,對於這些領域的最好的辦法是在meta標籤使用它們。