ax.SEO
🐱 🦊 🐼 🦝 🐰 🦉
Кто сегодня с нами? 🐾

Животные меняются при загрузке страницы

Главная / Блог / Как добавить микроразметку BreadcrumbList на сайте и повысить CTR в SERP

Как добавить микроразметку BreadcrumbList на сайте и повысить CTR в SERP

Добавьте BreadcrumbList в JSON‑LD, проверьте через Rich Results Test, и увидьте повышение CTR в SERP для вашего сайта.
🐱
Читать проще с подсказками

Карточки, чек-листы, таблицы и примеры помогают быстро найти нужный ответ.

✅ чек-листы 📈 SEO-практика ⚡ быстро

Микроразметка BreadcrumbList помогает поисковым системам лучше понимать структуру сайта и отображать цепочку навигации в SERP. Это повышает удобство пользователей и может улучшить кликабельность. В статье рассматриваются подготовка, реализация, проверка и измерение результатов.

Добавьте JSON‑LD разметку BreadcrumbList, проверьте её через Rich Results Test, убедитесь, что структура соответствует требованиям Schema.org, а затем отслеживайте изменения CTR в Search Console. Избегайте дублирования, некорректных URL и ошибок синтаксиса.

1. Что такое BreadcrumbList и зачем он нужен

BreadcrumbList – это структурированный тип данных из Schema.org, описывающий иерархию страниц, через которую пользователь пришёл к текущему URL. Внутри разметки указывается список объектов ListItem, каждый из которых содержит position (порядковый номер), name (название категории) и item (URL). Google использует эту цепочку для формирования «хлебных крошек» в SERP, которые показываются под заголовком результата.

Наличие BreadcrumbList в выдаче повышает удобство навигации: пользователь видит, где находится текущая страница в структуре сайта, и может быстро перейти в более общий раздел. Это снижает показатель отказов и увеличивает среднее время на странице.

Для поисковых систем BreadcrumbList сигнализирует о логической структуре контента. Когда Google видит чёткую иерархию, он может лучше индексировать страницы и определять релевантность запросов. Кроме того, хлебные крошки часто отображаются в виде отдельного сниппета, который занимает дополнительное место над обычным описанием, привлекая внимание и повышая кликабельность.

Исследования показывают, что страницы с хлебными крошками в результатах Google получают в среднем 1–3 % больше кликов по сравнению с аналогичными страницами без разметки. Это особенно заметно в мобильных результатах, где ограниченное пространство делает визуальную иерархию более важной.

Итак, BreadcrumbList – это не просто «декоративный» элемент. Это структурированный сигнал, который улучшает восприятие сайта как пользователем, так и поисковыми системами, и напрямую влияет на CTR в SERP.

2. Как проверить готовность сайта к микроразметке

Перед тем как внедрить микроразметку BreadcrumbList, убедитесь, что техническая база сайта готова к её корректной обработке поисковыми системами. Это включает в себя проверку файлов robots.txt и sitemap.xml, поддержку JavaScript‑SEO и отсутствие дублирующих страниц с некорректными canonical‑тегами. Если эти элементы не настроены должным образом, разметка может не индексироваться, а даже привести к штрафам.

  • robots.txt: разрешён доступ к страницам, где будет BreadcrumbList; исключить /? и /page, если они генерируют контент.
  • sitemap.xml: актуальный, содержит все целевые URL, без дублирующих записей.
  • JavaScript‑SEO: если сайт использует CSR, включить SSR, prerendering или динамическую рендеринг‑сервис; убедиться, что JSON‑LD вставляется в серверный рендер.
  • Canonical‑теги: на каждой странице один canonical, указывающий на канонический URL; 301‑перенаправления для дублей.
  • Проверка дублирующих страниц: использовать инструмент Search Console или Screaming Frog для выявления 200‑страниц с одинаковым контентом.
  • HTTPS: все страницы обслуживаются по HTTPS, чтобы избежать смешанного контента.

3. Технические требования и ограничения

Для BreadcrumbList в JSON‑LD структура выглядит так: { "@context":"https://schema.org", "@type":"BreadcrumbList", "itemListElement":[ … ] }. Каждый элемент массива – объект @type:"ListItem" с обязательными полями: position (целое число, порядок в цепочке), name (текст, который пользователь видит в хлебных крошках) и item (абсолютный URL страницы).

Обязательные поля: position – от 1 до N, name – строка, item – корректный HTTPS‑URL.

Ограничения: Google рекомендует не более 10 элементов в списке. Глубина навигации не должна превышать 5 уровней, иначе часть крошек может быть обрезана в SERP. URL‑ы должны быть доступными поисковым ботам и не содержать параметров, которые меняются при каждом запросе.

При превышении лимита Google может отобразить только первые 10 крошек, а при глубине более 5 уровней часть пути будет скрыта. Поэтому лучше держать структуру короткой и логичной: Главная → Категория → Подкатегория → Товар.

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

После внедрения проверяйте разметку через Тестер структурированных данных – он покажет ошибки и предупреждения. Если все поля заполнены правильно, BreadcrumbList будет виден в SERP и повысит кликабельность.

4. Реализация BreadcrumbList в популярных фреймворках

  1. Встроенная разметка в чистом HTML – вставьте itemListElement прямо в разметку.
  2. React (Next.js) – подключите useEffect и dynamic для отложенной загрузки скрипта.
  3. Vue (Nuxt) – используйте серверный рендеринг в asyncData и head для генерации JSON‑LD.
  4. WordPress – добавьте хуки wp_head и wp_footer либо примените готовый плагин.
// 1. Чистый HTML
<nav aria-label="Breadcrumb">
  <ol itemscope itemtype="https://schema.org/BreadcrumbList">
    <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
      <a itemprop="item" href="/">
        <span itemprop="name">Главная</span>
      </a>
      <meta itemprop="position" content="1" />
    </li>
    <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
      <a itemprop="item" href="/category">
        <span itemprop="name">Категория</span>
      </a>
      <meta itemprop="position" content="2" />
    </li>
  </ol>
</nav>

// 2. Next.js (React)
import { useEffect } from 'react';
import dynamic from 'next/dynamic';

const Breadcrumb = () => {
  useEffect(() => {
    const script = document.createElement('script');
    script.type = 'application/ld+json';
    script.text = JSON.stringify({
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Главная", "item": "https://example.com/" },
        { "@type": "ListItem", "position": 2, "name": "Категория", "item": "https://example.com/category" }
      ]
    });
    document.head.appendChild(script);
    return () => document.head.removeChild(script);
  }, []);
  return null;
};

export default dynamic(() => Promise.resolve(Breadcrumb), { ssr: false });

// 3. Nuxt (Vue)
// In asyncData or setup
export default {
  async asyncData({ route }) {
    const breadcrumbs = [
      { name: 'Главная', url: '/', position: 1 },
      { name: 'Категория', url: '/category', position: 2 }
    ];
    return { breadcrumbs };
  },
  head() {
    const jsonLd = {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": this.breadcrumbs.map(b => ({
        "@type": "ListItem",
        "position": b.position,
        "name": b.name,
        "item": `https://example.com${b.url}`
      }))
    };
    return {
      script: [
        { type: 'application/ld+json', json: jsonLd }
      ]
    };
  }
};

// 4. WordPress – PHP hook
add_action('wp_head', function() {
  $breadcrumbs = [
    ['position' => 1, 'name' => 'Главная', 'item' => home_url('/')],
    ['position' => 2, 'name' => 'Категория', 'item' => site_url('/category')]
  ];
  $json = [
    '@context' => 'https://schema.org',
    '@type' => 'BreadcrumbList',
    'itemListElement' => array_map(function($b) {
      return [
        '@type' => 'ListItem',
        'position' => $b['position'],
        'name' => $b['name'],
        'item' => $b['item']
      ];
    }, $breadcrumbs)
  ];
  echo '';
});

5. Проверка разметки и отладка

  • Запустите Google Rich Results Test, вставьте URL и убедитесь, что BreadcrumbList отображается без ошибок.
  • Проверьте Yandex Search Console → Структурированные данные → Ошибки, чтобы убедиться, что Yandex видит BreadcrumbList.
  • В DevTools откройте вкладку Network, найдите запрос к странице, убедитесь, что статус 200 и скрипт
  • В консоли DevTools проверьте, нет ли ошибок парсинга JSON‑LD (SyntaxError, Unexpected token).
  • Перейдите в Sources → Найдите файл с JSON‑LD, убедитесь, что он не обфусцирован и содержит валидный JSON.
  • Используйте валидатор JSON‑LD (https://jsonlint.com/) для проверки синтаксиса скрипта.
  • Убедитесь, что в скрипте присутствует @context "https://schema.org" и @type "BreadcrumbList".
  • Проверьте, что в itemListElement указаны правильные url и названия, соответствующие реальному пути страницы.
  • Убедитесь, что количество элементов в BreadcrumbList не превышает 6, иначе Google может обрезать.
  • Проверьте, что скрипт не находится внутри
  • Убедитесь, что robots.txt не блокирует доступ к странице, где размещён скрипт.
  • После внедрения повторите тесты и убедитесь, что в обоих сервисах (Google, Yandex) ошибок нет.

6. Как измерить влияние на CTR

После внедрения BreadcrumbList важно отслеживать, как изменяется CTR и позиция страниц. В Google Search Console откройте Performance, отфильтруйте по URL и сравните периоды до и после. Обратите внимание на метрики: Impressions, Clicks, CTR, Avg. Position. Если BreadcrumbList повышает видимость, CTR должно вырасти минимум на 1–2 %. Аналогично в Yandex Webmaster в разделе «Трафик» смотрите CTR и позицию. Для более глубокого анализа подключите Data Studio, создайте дашборд, где графики CTR и позиции обновляются каждые 24 ч. Кроме того, проверяйте наличие ошибок в разделе «Structured data» GSC – наличие «BreadcrumbList» без ошибок повышает шансы на отображение в SERP.

  • SEO‑риск: некорректный JSON‑LD, дублирование, неверные типы – приводит к ошибкам в GSC и потере индексации.
  • UX‑риск: слишком длинные цепочки, несогласованные стили Breadcrumbs создают визуальный шум и снижают удобство.
  • Технический риск: Service Worker может кэшировать старую разметку, что приводит к разночтениям в поисковом индексе.
  • Снижение риска: валидируйте разметку в Structured Data Testing Tool, проверяйте в GSC, обновляйте JSON‑LD при изменении структуры сайта, используйте «noindex» только при необходимости, проверяйте кэш в devtools и очищайте его при релизе.

7. Частые ошибки и как их избежать

  • Неправильные URL‑адреса и дублирование — если в BreadcrumbList указываются относительные пути, которые не совпадают с фактическими адресами страниц, поисковые боты не могут сопоставить элементы с контентом. Это приводит к игнорированию разметки и потере возможности отображения хлебных крошек в SERP. Чтобы избежать, всегда проверяйте, что каждый itemListElement содержит корректный @id и url, и что страницы не дублируются (например, одна и та же категория доступна по разным путям).
  • Синтаксические ошибки в JSON‑LD — лишние запятые, пропущенные кавычки, неверный тип данных (строка вместо числа) ломают парсинг скрипта. Бот не распознаёт структуру, и BreadcrumbList не учитывается. Используйте валидатор Schema.org или JSON‑LD Playground, чтобы убедиться, что скрипт валиден до публикации.
  • Несоответствие структуры BreadcrumbList требованиям Schema.org — например, отсутствие обязательного свойства position в каждом элементе, или неверный тип item (должен быть Thing с name и url). Это приводит к тому, что разметка считается некорректной, и Google может игнорировать её полностью. Следуйте официальной схеме: каждый ListItem должен содержать position, item с name и url, а сам BreadcrumbList@context и @type.
  • Дублирование BreadcrumbList на одной странице — если скрипт вставлен дважды (например, один раз в шаблоне, второй — вручную), поисковый бот может конфликтовать с данными, что приведёт к игнорированию разметки. Убедитесь, что скрипт присутствует только один раз, и удалите все дубли.
  • Несоответствие URL‑адресов в BreadcrumbList и реальному пути страницы — если в разметке указан URL, который не соответствует текущей странице (например, ссылка на старую версию), это создаёт путаницу для бота и пользователя. Проверяйте, что url в каждом элементе совпадает с location.href страницы.
  • Отсутствие @id в item — без уникального идентификатора Google не может связать элементы списка с конкретными страницами, что снижает шанс отображения хлебных крошек в SERP. Добавляйте @id в каждый item, используя полные URL.

8. План внедрения и сроки

План внедрения BreadcrumbList разбивается на пять ключевых фаз. Для каждой фазы обозначаем ориентировочное время, контрольные точки и ответственных.

  1. Подготовка (2 дня) – SEO‑аналитик собирает карту сайта, проверяет наличие CMS‑доступа, формирует список страниц, где будет применяться микроразметка. Ключевой контроль: подтверждение доступа к файловой системе и прав доступа в CMS.
  2. Код (3 дня) – Front‑end разработчик внедряет JSON‑LD в шаблон, учитывая структуру BreadcrumbList. Контроль: валидность схемы через validator.google.com, отсутствие синтаксических ошибок.
  3. Проверка (2 дня) – QA‑специалист запускает Structured Data Testing Tool на 10‑15 страницах, проверяет, что данные видны поисковым ботам. Контроль: отсутствие предупреждений, корректный вывод всех элементов.
  4. Релиз (1 день) – DevOps деплоит изменения на продакшн, проверяет статус 200, отсутствие ошибок в логах. Контроль: отсутствие 500‑ошибок, корректный отклик браузера.
  5. Мониторинг (4 недели) – SEO‑специалист отслеживает Search Console, CTR, позиции. Контроль: сравнение метрик до и после, корректировка микроразметки при необходимости.
  • Подтверждение доступа к файловой системе и CMS.
  • Валидация JSON‑LD в Google Structured Data Testing Tool.
  • Проверка индексации в Search Console после релиза.
  • Отслеживание CTR в SERP в течение 2 недель.
  • Сравнение позиций и CTR до и после внедрения.

Вопросы и ответы

Как быстро увидеть эффект от BreadcrumbList в CTR?

Эффект обычно проявляется через 2–4 недели после индексации, но зависит от объёма трафика и конкуренции. В Search Console сравните CTR до и после внедрения, учитывая сезонность.

Можно ли использовать BreadcrumbList в мобильных приложениях?

Да, если контент приложения отображается в SERP как веб‑страница. Внутри приложения BreadcrumbList не влияет на CTR, но можно добавить JSON‑LD в HTML‑страницы, которые открываются из приложения.

Что такое BreadcrumbList и зачем он нужен?

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

Как реализовать BreadcrumbList на WordPress?

Включите в тему функцию wp_nav_menu() с аргументом 'items_wrap' и добавьте JSON‑LD через hook wp_head. Плагин Yoast SEO автоматически генерирует BreadcrumbList, если включён параметр 'Breadcrumbs'.

Как проверить валидность BreadcrumbList?

Используйте инструмент проверки структурированных данных Google. Введите URL страницы, посмотрите, что выводится в разделе BreadcrumbList, и исправьте ошибки, если они есть.

Какой формат данных предпочтительнее: JSON‑LD, Microdata, RDFa?

JSON‑LD считается самым простым и надёжным, так как не вмешивается в разметку страницы и легко обновляется. Microdata и RDFa требуют вставки атрибутов в каждый элемент.

Какой вид BreadcrumbList лучше: с изображениями?

Изображения в хлебных крошках не повышают CTR, но могут улучшить визуальное восприятие в SERP. Если они релевантны и не перегружают страницу, можно добавить атрибут 'image' в JSON‑LD.

Как BreadcrumbList влияет на поиск в Google?

Google использует BreadcrumbList для улучшения сниппетов, показывая путь к странице в результатах. Это повышает прозрачность и может увеличить кликабельность, но не гарантирует рост позиций.

Можно ли использовать BreadcrumbList на страницах с динамическим контентом?

Да, но нужно генерировать разметку сервером или через JavaScript, чтобы поисковый бот видел актуальный путь. Убедитесь, что данные доступны до рендеринга.

Как добавить BreadcrumbList в шаблон сайта?

Вставьте блок JSON‑LD в верхнюю часть шаблона, используя переменные для названия и URL. При переходе по крошкам обновляйте массив items, чтобы он отражал реальный путь.

Важно

Материал носит информационный характер. Перед внедрением рекомендаций учитывайте нишу, регион, конкурентов, текущее состояние сайта и бизнес-цели проекта.

Редакционная проверка

Материал подготовлен и проверен редакцией AX.SEO

Проверено
AX
Автор Редакция AX.SEO
Digital-редактор 7 лет опыта

Редакция AX.SEO готовит материалы о SEO, разработке, AI, аналитике, маркетинге и росте digital-проектов.

Проверил Александр SEO
SEO-специалист 10 лет опыта

Проверяет практическую применимость рекомендаций, корректность терминов и соответствие материала digital-тематике.

AX.SEO объясняет digital простым языком: без магии, пустых обещаний и “секретных кнопок роста”.