Google неправильно объединяет микроданные и json+ld на одной странице, используя один и тот же идентификатор URI
У меня есть страница продукта с кодами "microdata" и "json+ld". Оба кода ссылаются на один и тот же объект URI @id ( http://www.example.org/product), поэтому я ожидаю "смешать / объединить" оба свойства, но вместо этого инструмент тестирования структурированных данных покажет 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>
1 ответ
Я полагаю, что инструмент тестирования структурированных данных Google не поддерживает это для разных синтаксисов, так как он работает, если использовать один и тот же синтаксис. Но так как они по-прежнему отображают URI правильно (http://www.example.org/product#this
в обоих случаях) можно утверждать, что их объединяет только интерфейс инструмента.
Тем не менее, насколько я знаю, Google не документирует поддержку этих URI в любом случае (но это не обязательно означает, что они не поддерживают его), поэтому для них это может не иметь значения.
Ваш пример работает нормально, если использовать http://linter.structured-data.org/: он создает один элемент с обоими брендами и обоими предложениями.
Хотя технически возможно объединить данные, поступающие из двух разных синтаксисов (чтение микроданных и json-ld), и Structured Data Linter подтверждает это, Google не поддерживает его, что означает, что свойства не будут объединены (и не удовлетворят Rich Требования к сниппетам).
У нас есть окончательное подтверждение от нескольких действующих лиц из мира SEO, включая Дэна Брикли и Ярно ван Дрила.
в общем, вы можете использовать оба синтаксиса бок о бок, но вы не получите детального слияния троек по идентификатору, которое может ожидать чистое приложение RDF (Дэн Брикли в Твиттере, 14 января 2020 г., выделено жирным шрифтом)
-
Я думаю, что @danbri уже был довольно ясным. Сильно сомневаюсь, что вы получите другой ответ от других гуглеров. (Ярно ван Дриэль в Twitter, 14 января 2020 г.)
Предлагаемое решение состоит в том, чтобы проанализировать микроданные и опубликовать их как JSON-LD.