Por favor, considere o seguinte código marcado com atributos para fornecer microdados:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Normal version</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<img alt="" itemprop="image" src="http://placehold.it/200x200" />
<div itemprop="description">This is the product description.</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta content="in_stock" itemprop="availability" />
<span content="GBP" itemprop="priceCurrency">£</span><span itemprop="price">100.00</span>
</div>
</div>
</body>
</html>
O uso da Ferramenta de teste de dados estruturados do Google fornece resultados positivos.
Isso é bom no exemplo de teste, no entanto, queremos implementar microdados em uma variedade de sites cuja estrutura HTML varia muito. Para implementar os atributos dessa maneira, será necessário que alguém edite manualmente a marcação HTML em cada um dos sites individualmente.
De preferência, gostaríamos de poder chamar uma única função que empacota todos os microdados em um único local; tecnicamente, isso é possível usando metatags da seguinte maneira:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Meta tag version</title>
</head>
<body>
<meta itemscope itemtype="http://schema.org/Product" itemref="microName microImage microDescription microOffer" />
<meta id="microName" itemprop="name" content="Product name" />
<link id="microImage" itemprop="image" href="http://placehold.it/200x200" />
<meta id="microDescription" itemprop="description" content="This is the product description." />
<meta id="microOffer" itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="microCurrency microPrice microAvail" />
<meta id="microAvail" itemprop="availability" content="in_stock" />
<meta id="microCurrency" itemprop="priceCurrency" content="GBP" />
<meta id="microPrice" itemprop="price" content="100.00" />
<div>
<h1>Product name</h1>
<img alt="" src="http://placehold.it/200x200" />
<div>This is the product description.</div>
<div>£100.00</div>
</div>
</body>
</html>
O uso da Ferramenta de teste de dados estruturados do Google fornece os mesmos resultados positivos do primeiro teste.
Para referência (nunca faríamos isso em um site real), a Ferramenta de teste de dados estruturados do Google retornará um erro se você tentar passar microdados ocultos por CSS.
Portanto, a marcação normal e a meta tag produzem os mesmos resultados, no entanto, tenho algumas preocupações devido às seguintes declarações do Google e Schema.org:
https://support.google.com/webmasters/answer/146750 declara:
Em geral, o Google usará apenas dados marcados que são visíveis para o usuário. Dados ocultos serão ignorados. No entanto, em algumas circunstâncias, pode ser útil fornecer uma versão legível por máquina e legível por humanos do seu conteúdo. Por exemplo, embora a sequência de texto "o aniversário de Elvis" seja significativa para muitos leitores humanos, não é tão significativa para os mecanismos de pesquisa quanto o 08-08-1935. Da mesma forma, os leitores humanos podem inferir o significado do símbolo $, mas pode ser útil informar especificamente aos mecanismos de pesquisa se seus preços estão em pesos ou dólares.
http://schema.org/docs/gs.html estados (em relação ao uso de metatags):
Essa técnica deve ser usada com moderação. Use apenas meta com conteúdo para informações que não podem ser marcadas.
http://schema.org/docs/faq.html#13 declara:
Como regra geral, você deve marcar apenas o conteúdo visível para as pessoas que visitam a página da Web e não o conteúdo em divs ocultos ou outros elementos da página oculta.
Minhas perguntas são:
- Embora nenhum erro seja retornado, seríamos penalizados pelos mecanismos de pesquisa pelo uso de metatags dessa maneira (por exemplo, conteúdo duplicado, ocultação de informações etc.)?
- Se isso não for adequado, você pode sugerir alguma maneira de separar os microdados dos dados reais ou teremos que concordar e implementar isso em HTML, caso a caso?