Хлебные крошки видны человеку, но поисковому роботу нужен машинный сигнал — структурированная разметка BreadcrumbList по стандарту Schema.org. Именно она превращает строку навигации в путь-цепочку прямо в сниппете выдачи: вместо длинного URL Яндекс и Google показывают «Главная › Каталог › Категория». Эта статья — практическое руководство по самой разметке: как написать корректный JSON-LD, куда его вставить, как протестировать и какие ошибки ломают валидацию. Речь не о пользе крошек как элемента UX (это отдельная тема), а о технике их декларации для поисковых систем.
Что именно размечаем: тип BreadcrumbList
Schema.org предоставляет тип BreadcrumbList — упорядоченный список пунктов навигационной цепочки. Каждый пункт — объект ListItem с тремя свойствами: position (порядковый номер с 1), name (видимый текст) и item (URL страницы). Из этого списка поисковик понимает иерархию: где корень, где промежуточные уровни, где текущая страница.
Различайте два понятия. Сами крошки — HTML-блок в вёрстке, который видит пользователь. Разметка — семантический слой поверх него, понятный роботу. Они должны соответствовать: если в видимой цепочке три уровня, в BreadcrumbList тоже три ListItem. Расхождение — нарушение правил Google и повод для Яндекса проигнорировать данные. О самом блоке навигации и его пользе для перелинковки — в материале хлебные крошки: как внедрить для SEO.
Три способа разметки и почему JSON-LD выигрывает
Объявить BreadcrumbList можно тремя синтаксисами — результат для поисковика одинаков, но различается удобство внедрения и сопровождения.
| Синтаксис | Где живёт | Привязка к вёрстке | Рекомендация Google/Яндекса |
|---|---|---|---|
| JSON-LD | отдельный <script> в <head> или <body> |
не привязан к HTML | предпочтительный |
| Microdata | атрибуты внутри HTML-тегов (itemscope, itemprop) |
жёстко в вёрстке | поддерживается |
| RDFa | атрибуты внутри HTML-тегов (vocab, typeof) |
жёстко в вёрстке | поддерживается |
JSON-LD — выбор по умолчанию: разметка лежит отдельным блоком, не переплетена с вёрсткой, её легко генерировать на бэкенде. Microdata и RDFa приходится «развешивать» по тегам ссылок, и при рефакторинге HTML разметку легко сломать. Поэтому дальше разбираем именно JSON-LD — это согласуется с подходом из руководства по JSON-LD разметке для разных типов контента.
Пошаговая инструкция: собираем JSON-LD
Шаг 1. Определите цепочку для конкретной страницы
Разметка индивидуальна для каждой страницы — у карточки товара, категории и статьи цепочки разные. Зафиксируйте путь от корня до текущей страницы. Например: Главная → Каталог → Памятники → Гранитные памятники. Четыре уровня — значит, четыре ListItem.
Шаг 2. Напишите базовый код
Минимальный валидный JSON-LD для трёхуровневой цепочки выглядит так:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Главная",
"item": "https://example.ru/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Каталог",
"item": "https://example.ru/catalog/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Гранитные памятники"
}
]
}
</script>
Шаг 3. Правильно оформите последний пункт
Обратите внимание: у третьего ListItem нет свойства item. Это не ошибка — последний элемент (текущая страница) можно оставлять без URL, ведь ссылка на саму себя бессмысленна, и Google допускает такой пропуск. Если всё же оставляете item — указывайте канонический адрес страницы.
Шаг 4. Используйте абсолютные URL
В свойстве item указывайте полный абсолютный URL с протоколом и доменом (https://example.ru/catalog/), а не относительный путь (/catalog/) — это частая причина невалидной разметки. Адреса должны отдавать код 200 и совпадать с каноническими версиями страниц (см. канонические URL и rel=canonical).
Шаг 5. Вставьте скрипт в страницу
JSON-LD размещается в <head> или в начале <body> — положение не критично, главное, чтобы скрипт был в HTML, который получает робот. На CMS блок генерируется шаблоном: WordPress — через Yoast SEO или Rank Math, 1С-Битрикс — компонентом «Навигационная цепочка». На самописном движке цепочку формирует бэкенд из той же иерархии, что строит видимые крошки.
Шаг 6. Протестируйте перед публикацией
Перед выкаткой проверьте разметку валидаторами: Schema Markup Validator (validator.schema.org), Google Rich Results Test и в Яндекс.Вебмастере — раздел «Инструменты → Проверка структурированных данных». После публикации отслеживайте отчёт «Хлебные крошки» в Google Search Console — там видно число страниц с валидной разметкой и список ошибок.
⚠️ Типичные ошибки и риски
Большинство проблем сводится к нескольким повторяющимся ошибкам — чек-лист того, что ломает разметку.
| Ошибка | Последствие | Как исправить |
|---|---|---|
Относительные URL в item |
разметка не проходит валидацию | указывать абсолютные адреса с https:// |
position не по порядку или с нуля |
путь читается неверно | нумеровать с 1 по возрастанию без пропусков |
| Разметка не совпадает с видимыми крошками | риск игнорирования / ручных мер Google | синхронизировать HTML и JSON-LD |
URL в item отдаёт 301/404 |
противоречивые сигналы роботу | вести только на канонические страницы с кодом 200 |
| Разметка вставлена через JS после загрузки | робот может не увидеть | отдавать JSON-LD в исходном HTML |
Главный риск — рассинхронизация: разработчик правит видимую навигацию, а шаблон разметки остаётся старым. ⚠️ РИСК: попытка «накрутить» сниппет — указать пункты, которых нет на странице, или подменить названия на ключевые фразы — трактуется Google как спам структурированными данными и грозит ручными санкциями с потерей всех расширенных сниппетов сайта. Разметка должна честно отражать реальную навигацию. И не дублируйте BreadcrumbList с разными цепочками на одной странице — один путь, один блок разметки.
Мини-кейс: разметка каталога памятников
На региональном коммерческом сайте по продаже гранитных памятников крошки в вёрстке были, но машинной разметки не существовало — в сниппетах под заголовком отображался сырой URL вида /catalog/granitnye/model-15/. Для карточек товара и категорий внедрили JSON-LD BreadcrumbList: бэкенд стал собирать цепочку из той же иерархии разделов, что и видимый блок навигации, с абсолютными URL и пропуском item у последнего пункта.
Что проверили после внедрения: разметка прошла Schema Markup Validator без ошибок, в Яндекс.Вебмастере данные распознались, а в отчёте Google Search Console «Хлебные крошки» страницы попали в категорию валидных. Это и есть измеримый результат задачи — корректное распознавание разметки и право на отображение цепочки в сниппете.
FAQ
Влияет ли разметка хлебных крошек напрямую на позиции в выдаче?
Сама по себе BreadcrumbList — не фактор ранжирования, а способ улучшить представление страницы в выдаче и помочь роботу понять структуру сайта. Косвенная польза есть: информативный сниппет повышает кликабельность. Но обещать рост позиций «от внедрения крошек» некорректно.
Нужно ли указывать URL у последнего пункта цепочки?
Google допускает пропуск свойства item у финального ListItem, поскольку это текущая страница. Можно как опускать URL, так и указывать канонический адрес — оба варианта валидны. Главное — не ставить ссылку на несуществующую или неканоническую страницу.
Почему разметка валидна, а в выдаче цепочка не показывается?
Расширенные сниппеты — право, а не обязанность поисковика. Валидность гарантирует, что данные распознаны; покажет ли Яндекс или Google цепочку — решают их алгоритмы под конкретный запрос.
Как проверить, что робот видит разметку?
Используйте Google Rich Results Test и проверку структурированных данных в Яндекс.Вебмастере по конкретному URL. Если JSON-LD добавляется скриптом после загрузки, в исходном HTML его может не быть — отдавайте разметку сразу в ответе сервера. На главной странице цепочка состоит из одного пункта, и BreadcrumbList там не нужен.
Материал подготовлен экспертами Chrome Media — агентства комплексного интернет-маркетинга и технического SEO для рынка РФ.

Добавить комментарий