Google неправильно объединяет микроданные и json+ld на одной странице, используя один и тот же идентификатор URI.

У меня есть страница продукта с кодами "микроданные" и "json+ld". Оба кода ссылаются на один и тот же объект URI @id (http://www.example.org/product#this), поэтому я ожидал бы «смешать/объединить» оба свойства, но вместо этого инструмент тестирования структурированных данных показывает 2 «отдельных» продукта, поэтому....

1. Поддерживает ли Google использование двух синтаксиса на одной странице?
2. Хорошо ли это реализовано? Могу ли я сослаться на два кода на один и тот же объект, используя itemId для микроданных и @id для json+ld?
3- Может ли это повредить мою страницу с точки зрения индексации структурных данных?

Спасибо

Вы можете проверить это, используя этот код в инструменте тестирования:

<div itemscope itemtype="http://schema.org/Product" itemid="http://www.example.org/product#this">
    <a itemprop="url" href="http://www.example.org/product">
    <div itemprop="name"><strong>Product Name</strong></div></a>
    <div itemprop="description">Product Description</div>
    <div itemprop="brand" itemscope itemtype="http://schema.org/Organization"><span itemprop="name">Product Brand</span></div>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">        <span itemprop="price">100</span><link itemprop="itemCondition" href="http://schema.org/NewCondition" /> New</div>
</div>
<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@id": "http://www.example.org/product#this",
  "name": "Product Name",
  "@type": "Product",
  "image": "http://www.example.com/anvil_executive.jpg",
  "mpn": "925872",
  "brand": {
    "@type": "Thing",
    "name": "ACME"
  },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "119.99",
    "itemCondition": "http://schema.org/UsedCondition",
    "availability": "http://schema.org/InStock"
  }
}
</script>

person aleksdj    schedule 17.11.2015    source источник


Ответы (2)


Я предполагаю, что инструмент тестирования структурированных данных Google не поддерживает это для разных синтаксисов, поскольку, похоже, он работает при использовании одного и того же синтаксиса. Но поскольку они по-прежнему правильно отображают URI (http://www.example.org/product#this в обоих случаях), вы можете возразить, что просто интерфейс инструмента не объединяет их.
Однако, насколько я знаю, Google не документирует поддержку этих URI темы. в любом случае (но это не обязательно означает, что они его не поддерживают), поэтому для них это может не иметь значения.

Ваш пример отлично работает при использовании http://linter.structured-data.org/: он создает < em>один товар с обоими брендами и обоими предложениями.

person unor    schedule 18.11.2015
comment
Спасибо @unor, вы правы, и кажется, что с linter.structured-data.org это работает ... - person aleksdj; 27.02.2016
comment
Google не поддерживает объединение двух разных синтаксисов. См. stackoverflow.com/a/59747826/565110. - person David Riccitelli; 15.01.2020

Хотя технически возможно объединить данные, поступающие из двух разных синтаксисов (read microdata и json-ld), и линтер структурированных данных подтверждает это, Google не поддерживает это, что означает, что свойства не будут объединены. (и не удовлетворяет требованиям Rich Snippets).

У нас есть окончательное подтверждение от нескольких участников мира SEO, включая Дэна Брикли и Ярно ван Дриэль.

в целом вы можете использовать оба синтаксиса одновременно, но вы не получите мелкозернистого слияния троек по идентификатору, которого можно ожидать от чистого RDF-приложения (Дэн Брикли на Твиттер, 14 января 2020 г., выделено жирным шрифтом)

--

Я думаю, что @danbri уже достаточно ясно выразился. Очень сомневаюсь, что вы получите другой ответ от других сотрудников Google. (Ярно ван Дриэль в Twitter, 14 января 2020 г.)

На данный момент предлагаемое решение состоит в том, чтобы анализировать микроданные и публиковать их как JSON-LD.

person David Riccitelli    schedule 15.01.2020