Настройка микроразметки хлебных крошек (BreadcrumbList Schema) для сайта
BreadcrumbList Schema позволяет Google показывать путь навигации прямо в сниппете — вместо URL отображается иерархия страниц. Это улучшает CTR и помогает пользователям понять структуру сайта.
Разметка хлебных крошек
{
"@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/electronics"
},
{
"@type": "ListItem",
"position": 3,
"name": "Смартфоны",
"item": "https://example.ru/electronics/smartphones"
},
{
"@type": "ListItem",
"position": 4,
"name": "iPhone 15 Pro"
// Последний элемент — item необязателен (текущая страница)
}
]
}
Динамическая генерация в Laravel
class BreadcrumbSchemaGenerator
{
private array $crumbs = [['name' => 'Главная', 'url' => '/']];
public function add(string $name, ?string $url = null): self
{
$this->crumbs[] = ['name' => $name, 'url' => $url];
return $this;
}
public function toSchema(): array
{
return [
'@context' => 'https://schema.org',
'@type' => 'BreadcrumbList',
'itemListElement' => array_map(fn($crumb, $index) => array_filter([
'@type' => 'ListItem',
'position' => $index + 1,
'name' => $crumb['name'],
'item' => $crumb['url'] ? url($crumb['url']) : null
]), $this->crumbs, array_keys($this->crumbs))
];
}
}
// В контроллере
$breadcrumbs = (new BreadcrumbSchemaGenerator())
->add('Электроника', '/electronics')
->add('Смартфоны', '/electronics/smartphones')
->add($product->name);
Синхронизация с визуальными хлебными крошками
Данные схемы должны совпадать с видимыми хлебными крошками на странице. Лучший подход — генерировать схему из того же массива, что и HTML-компонент.
Срок настройки: несколько часов.







