Нещодавно ми отримали помилку "data-vocabulary.org schema deprecated and not supported by Google anymore. Please migrate to using schema.org types." під час валідації однієї зі сторінок нашого веб-сайту. Таку ж саму помилку, ми отримали і в Google Search Console.
Ця помилка "data-vocabulary.org schema deprecated" пов'язана з даними про структуру бредкрампів (breadcrumbs). Ми використовували схему "data-vocabulary.org/Breadcrumb" для структурованих даних, але Google більше її не підтримує.
Ви також можете отримати цю помилку, починаючи з 6 квітня 2020 року, якщо ви не конвертували свою структуровану схему даних з data-vocabulary.org на schema.org.
Перш ніж ми дійдемо до того, як виправити помилку "data-vocabulary.org schema deprecated", давайте прояснимо декілька речей.
Що таке структуровані дані?
Це специфічний HTML або JSON код на веб-сторінці, який допомагає роботам пошукових систем простіше аналізувати сторінку та краще структурувати іі вміст. Коли на вашій сторінці багато елементів, пошуковим системам (наприклад, Google) важко дізнатись, де саме знаходиться бредкрамп або інший елемент.
Структуровані дані вирішують цю проблему. З їх допомогою ви можете безпосередньо повідомити Google робота, де знаходяться бредкрампи, назва товару, ціна, SKU, опис чи інші елементи.
Що таке data-vocabulary.org та schema.org?
Data-vocabulary.org та schema.org - це набори розширених схем (форматів структурованих даних), що використовуються для "побудови" веб-сторінки таким чином, щоб пошукові системи могли її краще аналізувати та розуміти.
Чому Google вирішив підтримувати лише schema.org structured data?
21 січня 2020 року Google оголосив про припинення підтримки data-vocabulary. Є дві основні причини, чому Google вирішив припинити підтримку data-vocabulary.org:
- Schema.org є більш популярною і використовуваною
- Google хоче зосередити свій розвиток на єдиній SD схемі
Ось чому Google вирішив використовувати лише одну структуровану дату (SD) для функцій та покращень результатів пошуку та зосередити увагу на schema.org.
Після того, як Google оголосив про припинення підтримки data-vocabulary.org, він розпочав розсилку повідомлень, щоб заохотити власників веб-сайтів переструктурувати свої дані в schema.org. Зразу ж після цього оголошення люди почали бачити попередження про поламані бредкрампи в Search Console. Однак після 6 квітня вони почали отримувати помилки.
Як виправити помилку “data-vocabulary.org schema deprecated”?
Як вже було сказано, структуровані дані - це спеціальний код на вашому веб-сайті, тому вам просто потрібно оновити шаблон breadcrumb на своєму веб-сайті, щоб виправити помилку “data-vocabulary.org schema deprecated”. Ми покажемо вам, як ми це зробили на magefan.com, який побудований на Magento 2.
По-перше, вам потрібно знайти відповідний файл шаблону. Якщо ви використовуєте Magento 2 як ми, тоді template path hints допоможуть вам це зробити.
До змін файл шаблону breadcrumb виглядав так, і містив схему "data-vocabulary.org":
<?php if ($crumbs && is_array($crumbs)) : ?>
<div class="breadcrumbs clearfix">
<ul class="items pull-right">
<?php foreach ($crumbs as $crumbName => $crumbInfo) : ?>
<li class="item <?php /* @escapeNotVerified */ echo $crumbName ?>" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<?php if ($crumbInfo['link']) : ?>
<a href="<?php /* @escapeNotVerified */ echo $crumbInfo['link'] ?>" title="<?php echo $block->escapeHtml($crumbInfo['title']) ?>" itemprop="url">
<span itemprop="title"><?php echo $block->escapeHtml($crumbInfo['label']) ?></span>
</a>
<?php elseif ($crumbInfo['last']) : ?>
<strong><?php echo $block->escapeHtml($crumbInfo['label']) ?></strong>
<?php else: ?>
<?php echo $block->escapeHtml($crumbInfo['label']) ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
Використовуючи документацію schema.org/BreadcrumbList ми змінили його на:
<?php if ($crumbs && is_array($crumbs)) : ?>
<?php $position = 1; ?>
<div class="breadcrumbs clearfix">
<ul class="items pull-right" itemscope itemtype="https://schema.org/BreadcrumbList">
<?php foreach ($crumbs as $crumbName => $crumbInfo) : ?>
<li class="item <?php /* @escapeNotVerified */ echo $crumbName ?>" <?php if ($crumbInfo['link']) { ?>itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"<?php } ?>>
<?php if ($crumbInfo['link']) : ?>
<a href="<?php /* @escapeNotVerified */ echo $crumbInfo['link'] ?>" title="<?php echo $block->escapeHtml($crumbInfo['title']) ?>" itemprop="item">
<span itemprop="name"><?php echo $block->escapeHtml($crumbInfo['label']) ?></span>
<meta itemprop="position" content="<?= $position++ ?>" />
</a>
<?php elseif ($crumbInfo['last']) : ?>
<strong><?php echo $block->escapeHtml($crumbInfo['label']) ?></strong>
<?php else: ?>
<?php echo $block->escapeHtml($crumbInfo['label']) ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
Ось так зміни виглядають в GIT:
Щоб переконатися, що проблему вирішено, скористайтеся Structured Data Testing Tool від Google. Ось як виглядає наша сторінка після того, як ми застосували виправлення (без помилок):
Пам’ятайте: чим краще структуровані дані на вашому веб-сайті, тим простіше Google їх аналізувати. Отже, бажано виправити помилку "data-vocabulary.org schema deprecated", перш ніж вона вплине на SEO вашого веб-сайту.