open - ¿Coloca metaetiquetas de Schema Microdata en el cuerpo html?
og image metatag (6)
He buscado durante mucho tiempo en Internet y stackoverflow para obtener una respuesta a esta pregunta, y he encontrado enlaces que dicen que no debes poner metaetiquetas en el cuerpo:
- Usar la etiqueta <meta> de HTML5 + Microdata en el <cuerpo>
- pasando metadatos en la parte del cuerpo
- Meta Tags en el cuerpo
mientras que el sitio web schema.org muestra claramente las metaetiquetas anidadas directamente en el cuerpo http://schema.org/AggregateRating
Solo mira el ejemplo que está publicado allí
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>
Si tuviera que mantener las metaetiquetas en <head>
, ¿cómo relacionaría estas dos fechas con sus reseñas? <meta itemprop="datePublished" content="2011-04-01">
<meta itemprop="datePublished" content="2011-03-25">
Esto está causando confusión y me gustaría saber cómo hacerlo correctamente.
Cuando trabajé por primera vez con los microdatos de schema.org, agregué las etiquetas meta en la etiqueta principal de mi página web, pero cuando ejecuté esa página contra la herramienta de prueba de fragmentos enriquecidos de Google , no se extrajeron los datos. Luego moví las metaetiquetas al cuerpo de la página y los datos se mostraron como extraídos.
Lo hago de esta manera:
<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">
Lo que puedo leer en whatwg.org es correcto para usar en el cuerpo: http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element
Utilizo etiquetas meta en el cuerpo de mi blog para especificar las propiedades "datePublished" y "dateUpdated". La herramienta de prueba de fragmentos enriquecidos de Googles me dice que es correcta y w3c valida el código.
Puedes usar:
<meta itemprop="">
en el cuerpo de la página hacer el marcado semántico schema.org que es legible por máquina (por robots, para SEO, por ejemplo) incluso si no desea mostrar el texto real (nombre del producto, por ejemplo) en la página.
ver: http://schema.org/docs/gs.html#advanced_missing
A veces, una página web tiene información que sería valiosa para marcar, pero la información no se puede marcar debido a la forma en que aparece en la página. La información puede transmitirse en una imagen (por ejemplo, una imagen utilizada para representar una calificación de 4 de 5) o un objeto Flash (por ejemplo, la duración de un videoclip), o puede estar implícita pero no expresarse explícitamente en la página (por ejemplo, la moneda de un precio).
Recuerde también que es posible evitar por completo el marcado HTML y usar el marcado JSON-LD contenido por completo en en cualquier parte del documento HTML (¡incluso dinámicamente inyectado!) De esta manera: <head>
<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>
eche un vistazo a los ejemplos en schema.org , generalmente contienen marcas de ejemplo JSON como esta https://schema.org/Restaurant .
Aquí hay otro buen artículo al respecto http://www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/
Si un meta
elemento
- tiene un atributo
itemprop
y un atributo decontent
, y - no tiene ningún atributo de
name
, ningún atributohttp-equiv
y ningún atributocharset
,
entonces es válido tener esta meta
en el body
. (Si el valor es una URL, debe usar el link
lugar ).
¿Por qué? Porque la especificación Microdata cambia HTML5 .
(Tenga en cuenta que RDFa también cambia HTML5 al permitir meta
en el body
en algunos casos).
Si tuviera que mantener las
meta
en<head>
, ¿cómo relacionaría estas dos fechas con sus reseñas?
Puede usar el atributo itemref
:
<!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
toma una lista de valores de id
separados por espacios, por lo que incluso puede hacer referencia a dos o más elementos. Simplemente agregue la id
de todos los elementos (que contienen atributos itemprop
) que se deben agregar al elemento a su atributo itemref
, por ejemplo: itemref="date author rating"
.