Nova mainEntityOfPage necessária para dados estruturados do artigo

12

Dei uma olhada nos dados estruturados do artigo, conforme proposto pelo Google, e vi que existem novos campos obrigatórios e recomendados, que não estavam lá na semana passada. Aqui está o link:

https://developers.google.com/structured-data/rich-snippets/articles

A primeira propriedade da lista é:

  • mainEntityOfPage. @ id (recomendado)

Não entendo qual deve ser o valor da propriedade? O que é essa propriedade? É um link para:

..ou um link para a postagem atual do blog como:

Eles têm isso em seu código de exemplo:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

Isso que eu tenho atualmente, ainda não está em conformidade com as regras da ferramenta de teste - ainda estou ocupado adicionando todas as propriedades necessárias e ao mesmo tempo tentando adicionar as propriedades recomendadas também:

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

Eu também tenho isso no meu documento:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Isso entrará em conflito com o exemplo de código fornecido pelo Google?

Brendan Vogt
fonte
Acabei de ver a mesma coisa acontecer no meu site nesta manhã e aterrissar nesse segmento.
Dasickle 15/12

Respostas:

14

A mainEntityOfPagepropriedade é usada para fornecer o URL de uma página na qual a coisa é a entidade principal. Pode ficar mais claro se você observar a propriedade inversa mainEntity: isso fornece a entidade principal para uma página ( veja um exemplo ).

Por exemplo, para uma página da web que contém uma única postagem no blog, você pode fornecer um destes:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Essas propriedades são úteis para transmitir qual é o conteúdo principal de uma página (porque as páginas podem conter vários itens, por exemplo, itens ItemListrelacionados WebPage, Persondescrição do autor, descrição de WebSitealguns metadados etc.).

(Veja minha resposta no Stack Overflow para uma explicação mais detalhada.)


Existem duas maneiras de usar mainEntityOfPage:

  • forneça o URL da página
  • incorporar / referenciar o item da página (normalmente a WebPage)

O segundo geralmente não faz muito sentido (você prefere usar a propriedade inversa mainEntity) e, provavelmente, por esse motivo, o Google recomenda / espera o primeiro.

Para fornecer o URL, você pode simplesmente usar um linkelemento:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

A Ferramenta de teste de dados estruturados do Google aceita isso.

No exemplo de rich snippet de artigos , o Google está usando um metaelemento com itemid:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

Microdados HTML5 + inválidos: se o metaelemento tiver um itempropatributo, ele também deverá ter um contentatributo .

unor
fonte
E se nós também fornecemos conteúdo com url na meta, por exemplo, <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> Ele vai validar muito bem e não mostrando erro nos dados estruturados ferramenta de teste
StarWars
@ StarWars: Sim, essa é a maneira de tornar esse metaelemento válido. Observe que o contentvalor seria ignorado, portanto, você poderia fornecer um valor vazio.
Unor
ok, agora adicionei content = "" à metatag.
StarWars
Por que o Google usa em metavez de linkem seus exemplos? ambos são validados na ferramenta de teste de dados estruturados. Embora, a visualização seja diferente. Quando linké usado, tem mainEntityOfPage http://example.com/article-1enquanto, no caso meta, mostra @ide @typeatributos.
StarWars
@ StarWars: Sim, essa é exatamente a diferença: a metamaneira como cria um novo item com um tipo e um URI como identificador, a linkmaneira que apenas vincula a uma página. Não tenho idéia do porquê da documentação do Google meta, principalmente porque acho que o linkcaminho é mais simples.
Unor
2

O que é essa propriedade?

É complementar às propriedades urle sameAs, conforme descrito em mainEntitysegundo plano .

Ele tem um nome idiossincrático, pois pode ser aplicado a todos os itens do tipo Thing. Se aplicado apenas a Articlesele, poderia ter sido chamado mainTopic/ mainTopicOfArticlee ter sido mais claro.

Não entendo qual deve ser o valor da propriedade?

Espera-se que o valor da propriedade seja um item do tipo CreativeWorkou uma URLreferência que funcione de acordo com o Schema.org. Isso significa que também pode ser um Articleou BlogPostingcomo você mencionou. No entanto, se você estiver criando páginas AMP, o valor deve ser um URL.

Isso entrará em conflito com o exemplo de código fornecido pelo Google?

Apesar do que a Ferramenta de teste de dados estruturados do Google diz que a documentação deles não recomenda mais o uso mainEntityOfPagede páginas que não sejam AMP, você pode omitir isso.

Josh Habdas
fonte