2012-04-23 20 views
54

He buscado durante mucho tiempo a través de Internet y stackoverflow una respuesta a esta pregunta, y he encontrado enlaces que decir que usted no debe poner etiquetas meta en el cuerpo:¿Pone metaetiquetas de Schema Microdata en el cuerpo html?

mientras que el sitio schema.org muestra claramente las etiquetas meta que se anidan directamente en el cuerpo http://schema.org/AggregateRating

basta con ver el ejemplo que se haya publicado

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 se va a mantener las etiquetas meta en el <head>, entonces ¿cómo se relacionan estas dos fechas a sus comentarios? <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.

Respuesta

67

Si un elemento de meta

  • tiene un atributo itemprop y un atributo content, y
  • no tiene name atributo, no http-equiv atributo, y no charset atributo,

entonces es válido tener este meta en el body. (Si el valor es una URL, usted must use link instead.)

¿Por qué? Porque the Microdata specification changes HTML5.

(Tenga en cuenta que en algunos casos RDFa also changes HTML5 by allowing meta in the body.)


Si se va a mantener las etiquetas en el meta<head>, entonces ¿cómo se relacionan estas dos fechas a sus comentarios?

Usted podría 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 toma una lista separada por espacios de id valores, por lo que incluso puede hacer referencia a dos o más elementos. Simplemente agregue el 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".

+0

Gracias, responde mi pregunta. –

+2

Guau, esa cosa 'itemref' es increíble. Definitivamente usaré eso! –

+0

@unor: ¿puedes echarle un vistazo a: http://stackoverflow.com/questions/36083028/microdata-how-to-correctly-reference-item-from-meta-tag-in-header? – juFo

3

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"> 
+1

acuerdo con Schema.org, cuando se utiliza en itemprop etiqueta meta u debe omitir el nombre y ... y sólo utilizar itemprop Contenido :) –

+2

Es [No válido] (http://stackoverflow.com/a/22415563/1591669) para tener los atributos 'itemprop' * y * a' name' en 'meta'. Es o bien o bien (Y esto viene directamente de Microdata, no (solo) del vocabulario de Schema.org.) – unor

3

La primera vez que se trabaja con los microdatos de schema.org, he añadido las etiquetas meta en la etiqueta de la cabeza de mi página web, pero cuando me encontré con esa página contra Google's Rich Snippets Testing Tool, los datos no fue extraído Luego moví las metaetiquetas al cuerpo de la página y los datos se mostraron como extraídos.

8

Lo que puedo leer de whatwg.org que es correcto para utilizar en el cuerpo: http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element

que utilizan etiquetas meta en el cuerpo de mi blogg para especificar el "datePublished" y propiedades "dateUpdated". Google Rich Snippets Testing Tool me dice que es correcto y w3c valida el código.

+0

La experiencia de Erik refleja la mía. Tuve que moverlos al cuerpo para que la herramienta de prueba de fragmentos enriquecidos los reconociera. Nuestros resultados de búsqueda en Google muestran que se extraen correctamente, ya que estamos viendo esos atributos en los resultados. – TMC

+0

'dateUpdated' ya no existe en esta página [http://schema.org/docs/full.html](http://schema.org/docs/full.html) –

4

Se puede utilizar:

<meta itemprop=""> 

en el cuerpo de la página para hacer el marcado semántico schema.org que es de lectura mecánica (por robots, para el SEO, por ejemplo), incluso si no quiere 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 podría ser valiosa para marcar , pero la información no pueda ser marcado a causa de la forma en que aparece en la página. La información puede ser transportada en una imagen (por ejemplo, , una imagen usada para representar una calificación de 4 de 5) o un objeto Flash (por ejemplo, la duración de un video clip), o puede ser implícita pero no declarado explícitamente en la página (por ejemplo, la moneda de un precio).

+3

no nos olvidemos de usar el contenido en la metaetiqueta también !

6

Recuerde también que es posible evitar totalmente el formato HTML y utilizar JSON-LD marcado enteramente contenida en el <head>anywhere in the HTML document (even dynamically injected!) así:

<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> 

echar un vistazo a los ejemplos de schema.org, que por lo general contienen Marcaciones de ejemplo JSON como esta https://schema.org/Restaurant.

Aquí es otro buen artículo sobre el tema http://www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/

+0

muy interesante –

Cuestiones relacionadas