свойство "позиция", необходимое для ItemList с элементами списка продуктов?

у меня проблема: инструмент тестирования структурированных данных Google дает мне ошибку:

Tag position не существует. Это необходимо.

Tag position doesn't exist

Я добавляю его в разметку. Чем я получаю эту ошибку:

Position свойство недопустимо для объекта типа Product

Position property is not valid for an object of type Product

вот моя разметка:

<table id="sale_table" itemscope="" itemtype="http://schema.org/ItemList">
    <tbody>
            <tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product">
                <td class="sale_art_td" itemprop="productID">10496278</td>
                <td class="sale_brand_td" itemprop="brand"><span itemprop="name ">--</span></td>
                <td class="sale_name_td" itemprop="name">10496278 / Крышка трамблера Daewoo Nexia,Espero DD</td>
                <td class="sale_am_td">1.00</td>
                <td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">341.50</span></td>
                <td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63455914" data-query="10496278">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td>
                <td class="hidden">
                    <meta itemprop="url" content="/partsearch/?q=10496278">
                                        <span itemprop="description">Распродажа: 10496278 / Крышка трамблера Daewoo Nexia,Espero DD по цене 341.50</span>
                </td>
            </tr>
                    <tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product">
                <td class="sale_art_td" itemprop="productID">76202sx0a12</td>
                <td class="sale_brand_td" itemprop="brand"><span itemprop="name ">HONDA</span></td>
                <td class="sale_name_td" itemprop="name">76202SX0A12</td>
                <td class="sale_am_td">1.00</td>
                <td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">704.00</span></td>
                <td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63456060" data-query="76202sx0a12">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td>
                <td class="hidden">
                    <meta itemprop="url" content="/partsearch/?q=76202sx0a12">
                                        <span itemprop="description">Распродажа: 76202SX0A12 по цене 704.00</span>
                </td>
            </tr>
    </tbody>
 </table> 

5 ответов


это не ошибка в коде. Это просто означает, что Google не будет отображать определенный богатый фрагмент (или аналогичную функцию), если вы не предоставите это свойство.

однако position свойства не определен Product тип, так что это не имеет никакого смысла.

похоже, что это новая функция структурированных данных от Google, которая еще не документирована, поскольку она ссылается на страницу 404:Список Страниц Карусели. Возможно, это незавершенная работа, и они еще не собирались публиковать чек в своем инструменте тестирования.

поэтому я бы просто проигнорировал это сейчас.


Я думаю, что это ошибка реализации на стороне Google, вызванная неявной документацией:

https://schema.org/itemListElement ясно заявляет

существующие объекты лучше всего подходят для простого, неупорядоченного списка существующих вещей в ваших данных. ListItem используется с упорядоченными списками когда вы хотите предоставить дополнительный контекст об элементе в этом списке или когда один и тот же элемент может находиться в разных местах в разных списки.

Примечание: порядок элементов в вашей наценке недостаточен для указания порядка или элементов. в таких случаях используйте ListItem со свойством 'position'.

в то же время говорит ожидается, что значения будут одного из этих типов являются:

  • listitem элемент
  • текст
  • вещь

=> Это значит имплицитно, что позиция элемент может потребоваться только для отсортированных списков, которые в свою очередь требуют, чтобы элемент Thing содержался внутри listitem элемент элемент, который предлагает itemprop позиция.

Это также означает имплицитно, что если ItemListElement is текст или вещь, список следует считать ненумерованный.

Это единственный способ документация имеет смысл. Я предполагаю, что неявная связь была упущена.

поэтому я думаю, что соответствующее действие-подать отчет об ошибке для Инструмент Тестирования Структурированных Данных и жить с предупреждениями на данный момент или гнездо продукт внутри listitem элемент элемент как обходной путь.


попробуй такое

'@type': 'ListItem',
'position': 1,
'item':{
   '@type': 'Product',
... product props
}

из моего тестирования malefique находится на правильном решении.

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

{
    "@context": "http://schema.org",
    "@type": "ItemList",
    "itemListOrder": "http://schema.org/ItemListOrderDescending",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@type": "Product",
                "name": "My product",
                "url": "www.example.com",
                "offers": {
                    "@type": "Offer",
                    "availability": "http://schema.org/InStock",
                    "price": "100.00",
                    "priceCurrency": "AUD"
                }
            }
        }
    ]
}

Я нашел http://schema.org/itemListElement

вы должны указать позицию так <meta itemprop="position" content="1" />

в нижней части страницы приведен пример.