I have searched for a long time across the internet and stackoverflow for an answer to this question, and I have found links that say that you should not put meta tags in the body:
while the schema.org website clearly shows the meta tags being nested directly in the body http://schema.org/AggregateRating
Just look at the example that is posted there
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>
If you were to keep the meta tags in the <head>
, then how would you relate these two dates to their reviews?
<meta itemprop="datePublished" content="2011-04-01">
<meta itemprop="datePublished" content="2011-03-25">
This is causing confusion and I would like to know how to do it properly.
Best Answer
If a
meta
elementitemprop
attribute and acontent
attribute, andname
attribute, nohttp-equiv
attribute, and nocharset
attribute,then it’s valid to have this
meta
in thebody
. (If the value is a URL, you must uselink
instead.)Why? Because the Microdata specification changes HTML5.
(Note that RDFa also changes HTML5 by allowing
meta
in thebody
in some cases.)You could use the
itemref
attribute:itemref
takes a space-separated list ofid
values, so you can even reference two or more elements. Just add theid
of all elements (containingitemprop
attributes) that should be added to the item to itsitemref
attribute, e.g.:itemref="date author rating"
.