JSON-LD и микроданные на одной странице?

У меня есть как Micro Data, так и JSON-LD на моих страницах продуктов электронной коммерции, описывающие одно и то же (продукты в моем случае). По причинам, выходящим за рамки этого вопроса, я не могу удалить ни один из двух форматов. Мне интересно:

  1. Является ли это проблемой для Google? Инструмент тестирования структурированных данных действительно отображает два элемента (продукта) вместо одного.

  2. Если одно свойство, скажем, название продукта, немного отличается в двух форматах, будет ли какой-либо из двух форматов, например JSON-LD, иметь приоритет?


person Milen Kovachev    schedule 08.12.2016    source источник


Ответы (1)


Проблема в том, что потребитель будет думать, что описаны разные вещи (или, точнее, потребитель не будет знать, одинаковые вещи или нет).

Есть способ предотвратить это¹: назначьте каждой вещи свой URI, и, если вещи одинаковые, тот же URI.

Это можно сделать с помощью @id в JSON-LD и с помощью itemid в микроданных.

Итак, простой случай может быть:

<!-- markup on the product page, 
     so the fragment "#this" results in an absolute URI like 
     "http://example.com/products/foo#this" -->

<!-- JSON-LD -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Product",
  "@id": "#this",
  "name": "Foo"
}
</script>

<!-- Microdata -->    
<article itemscope itemtype="http://schema.org/Product" itemid="#this">
  <h1 itemprop="name">Foo</h1>
</article>

В случае, если такое свойство, как name, имеет разные значения, очевидный способ, с помощью которого потребитель мог бы справиться с этим, — дать объекту несколько имен. Для функции, где потребителю требуется ровно одно имя (например, в расширенном результате), не определено, какое из name значений будет использоваться. Если потребителем является поисковая система, она, скорее всего, будет использовать свои уже существующие проприетарные алгоритмы для обработки таких случаев.


¹ Конечно, неясно, поддерживают ли его различные потребители и каким образом. Но это правильный способ сделать это, и это единственный явный способ сделать это. Неявные способы включают надежду на то, что потребитель понимает, что одинаковые значения типично (но не обязательно) уникальных свойств (например, url, email, productID и т. д.) означают, что вещи одинаковы. Но такой неявный способ, конечно, можно использовать вместе с явным.

person unor    schedule 08.12.2016
comment
Есть способ предотвратить это¹: дать каждой вещи URI, а в случае, если вещи одинаковые, один и тот же URI. не будет работать для Google, см. stackoverflow.com/a/59771262/565110 - person David Riccitelli; 16.01.2020
comment
@DavidRiccitelli Пожалуйста, не могли бы вы предоставить какие-либо доказательства или ссылку на ваше заявление о несовместимости с Google? - person Katapofatico; 07.01.2021
comment
См. это stackoverflow.com/questions/33756091/ - person David Riccitelli; 08.01.2021
comment
Также попробуйте скопировать и вставить JSON-LD и микроданные, используя тот же @id/item, что и в SDTT: они не сливаются. Ваше здоровье - person David Riccitelli; 08.01.2021