2012-04-23 13 views
54

Szukałem przez długi czas w internecie i stackoverflow na odpowiedź na to pytanie, a ja znalazłem linki, które mówią, że nie powinno się umieścić meta tagi w organizmie:Umieszczasz metatagi Schema Microdata w treści html?

natomiast strona schema.org wyraźnie pokazuje, że meta tagi są zagnieżdżone bezpośrednio w organizmie http://schema.org/AggregateRating

Wystarczy spojrzeć na przykład, że jest zamieszczona tam

Customer reviews: 

    <div itemprop="reviews" itemscope itemtype="http://schema.org/Review"> 
    <span itemprop="name">Not a happy camper</span> - 
    by <span itemprop="author">Ellie</span>, 
    <meta itemprop="datePublished" content="2011-04-01">April 1, 2011 
    <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> 
     <meta itemprop="worstRating" content = "1"> 
     <span itemprop="ratingValue">1</span>/ 
     <span itemprop="bestRating">5</span>stars 
    </div> 
    <span itemprop="description">The lamp burned out and now I have to replace 
    it. </span> 
    </div> 


<div itemprop="reviews" itemscope itemtype="http://schema.org/Review"> 
    <span itemprop="name">Value purchase</span> - 
    by <span itemprop="author">Lucas</span>, 
    <meta itemprop="datePublished" content="2011-03-25">March 25, 2011 
    <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> 
     <meta itemprop="worstRating" content = "1"/> 
     <span itemprop="ratingValue">4</span>/ 
     <span itemprop="bestRating">5</span>stars 
    </div> 
    <span itemprop="description">Great microwave for the price. It is small and 
    fits in my apartment.</span> 
    </div> 

Jeśli było utrzymać metatagów w <head>, to w jaki sposób odnoszą się te dwie daty na ich opinie? <meta itemprop="datePublished" content="2011-04-01"> <meta itemprop="datePublished" content="2011-03-25">

To powoduje zamieszanie i chciałbym wiedzieć, jak to zrobić poprawnie.

Odpowiedz

67

Jeżeli meta elementem

  • posiada atrybut itemprop oraz atrybut content i
  • ma name atrybut nie http-equiv atrybutu a nie charset atrybutu

następnie to ważne, aby mieć ten meta w body. (Jeśli wartością jest URL, musisz must use link instead.)

Dlaczego? Ponieważ the Microdata specification changes HTML5.

(Należy pamiętać, że w niektórych przypadkach RDFa also changes HTML5 by allowing meta in the body.)


Jeśli było utrzymać meta tagi w <head>, to w jaki sposób odnoszą się te dwie daty na ich opinie?

Mogłabyś use the itemref attribute:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Using itemref for meta in the head</title> 
    <meta itemprop="datePublished" content="2011-03-25" id="date"> 
</head> 
<body> 

    <div itemscope itemtype="http://schema.org/Review" itemref="date"> 
    <span itemprop="name">…</span> 
    </div> 

</body> 
</html> 

itemref pobiera listę oddzielonych spacjami id wartości, więc można nawet odwoływać się dwóch lub więcej elementów. Wystarczy dodać id wszystkich elementów (zawierających atrybuty itemprop), które powinny zostać dodane do elementu do jego atrybutu itemref, np .: itemref="date author rating".

+0

Dziękuję, odpowiada na moje pytanie. –

+2

Wow, rzeczy 'itemref' są niesamowite. Z pewnością to wykorzystam! –

+0

@unor: możesz rzucić okiem na: http://stackoverflow.com/questions/36083028/microdata-how-to-correctly-reference-item-from-meta-tag-in-header? – juFo

3

zrobić to w ten sposób:

<meta id="md_course" itemprop="course" name="course" content="..."/> 
<meta id="md_lang" itemprop="language" content="eng"/> 
<title id="md_title" itemprop="title" >Motivation and Course Overview</title> 
</head> 
<body itemscope itemtype=".../Presentation" itemref="md_course md_lang md_title md_field"> 
+1

według schema.org podczas korzystania itemprop na znaczniku meta u powinien pominąć nazwę i ... i tylko użyć itemprop & zawartość :) –

+2

To [nieważne] (http://stackoverflow.com/a/22415563/1591669) aby mieć atrybuty 'itemprop' * i * a' name' na 'meta'. To albo albo. (I to pochodzi bezpośrednio z Microdata, nie tylko ze słownika Schema.org.) – unor

3

Kiedy pierwszy pracuje z mikrodanych schema.org za dodałem metatagów w tagu głowy mojej stronie internetowej, ale kiedy prowadził tę stronę przed Google's Rich Snippets Testing Tool dane nie został wyodrębniony. Następnie przeniosłem metatagi do treści strony, a dane pokazano jako wyodrębnione.

8

Co mogę odczytać z whatwg.org to poprawne użycie w organizmie: http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element

używać znaczników meta w ciele moim blogg określenie „datePublished” i „dateUpdated” właściwości. Googles Rich Snippets Testing Tool mówi, że to jest poprawne, a w3c sprawdza poprawność kodu.

+0

Doświadczenie Erika odzwierciedla moje własne. Musiałem przenieść je do ciała, aby narzędzie do testowania fragmentów mogło je rozpoznać. Nasze wyniki wyszukiwania w Google pokazują, że są prawidłowo wyodrębniane, ponieważ widzimy te atrybuty w wynikach. – TMC

+0

'dateUpdated' już nie istnieje na tej stronie [http://schema.org/docs/full.html](http://schema.org/docs/full.html) –

4

Można użyć:

<meta itemprop=""> 

w treści strony, aby zrobić schema.org semantycznych znaczników nie jest do odczytu maszynowego (przez roboty, SEO, na przykład), nawet jeśli nie chcą wyświetl tekst rzeczywisty (np. nazwę produktu) na stronie.

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

Zdarza się, że strona internetowa zawiera informacje, które byłyby cenne oznaczyć , ale informacja ta nie może być oznaczony ze względu na sposób wydaje się na stronie. Informacje mogą być przenoszone na obrazie (dla przykładu: , obraz używany do reprezentowania oceny 4 na 5) lub obiektu Flash (na przykład czas trwania klipu wideo) lub może to być domniemana, ale nie jest wyraźnie określony na stronie (na przykład waluta o wartości).

+3

pozwala nie zapomnieć użyć treści na metatagu także !

6

Pamiętaj również, że jest to możliwe, aby całkowicie uniknąć znaczników HTML i używać JSON-LD znaczników całkowicie zawarty w <head>anywhere in the HTML document (even dynamically injected!) tak:

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Restaurant", 
    "name": "Fondue for Fun and Fantasy", 
    "description": "Fantastic and fun for all your cheesy occasions", 
    "openingHours": "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00", 
    "telephone": "+155501003333", 
    "menu": "http://example.com/menu" 
} 
</script> 

spojrzeć na przykłady w schema.org, zwykle zawierają Przykładowe znaczniki JSON takie jak ten https://schema.org/Restaurant.

Oto kolejny dobry artykuł o tym http://www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/

+0

bardzo interesujące –

Powiązane problemy