⚠️ Актуальность 2026 — пункт под удалением: Google никогда не использовал SiteNavigationElement для rich-результатов. Эксперты 2026 (Soar Agency, WebFX) рекомендуют отказаться — это лишний JSON-LD в исходнике. Функционал перекрывают BreadcrumbList Schema и корректная HTML-навигация через <nav>.
Зачем настраивать SiteNavigationElement Schema
SiteNavigationElement Schema — это структурированная разметка Schema.org, которая сообщает поисковой системе структуру навигации сайта. Разметка описывает основное меню: какие разделы есть на сайте, как они связаны, какие страницы являются ключевыми. Это помогает поисковому роботу лучше понять иерархию сайта и правильно определить важность разных страниц.
Зачем это нужно, если поисковая система и так обходит ссылки в меню? Потому что ссылки — это просто ссылки. Робот видит 20 ссылок в шапке и не знает: это основное меню, вспомогательная навигация, ссылки в рекламном блоке или что-то ещё. SiteNavigationElement явно говорит: «Это навигационное меню сайта, вот его структура, вот главные разделы».
Для крупных сайтов с разветвлённой структурой это особенно важно. Интернет-магазин с сотнями категорий, информационный портал с десятками рубрик — поисковая система тратит краулинговый бюджет на обход все�� ссылок. Структурированная разметка навигации помогает роботу понять, какие разделы являются корневыми, и расставить приоритеты обхода.
Влияние на Sitelinks
Sitelinks — дополнительные ссылки под основным результатом в поисковой выдаче. Когда пользователь ищет бренд или название сайта, Google и Яндекс могут показать 4-8 ссылок на ключевые разделы сайта прямо в сниппете. SiteNavigationElement Schema помогает поисковым системам определить, какие страницы являются ключевыми разделами и заслуживают попадания в Sitelinks.
Google подчёркивает: Sitelinks генерируются автоматически алгоритмом, и Schema не гарантирует их появление. Но структурированная разметка навигации — один из сигналов, которые алгоритм учитывает при формировании Sitelinks.
Пошаговая инструкция
Шаг 1. Определите структуру навигации для разметки
Не нужно размечать каждую ссылку на сайте. SiteNavigationElement описывает основное навигационное меню — то, которое отображается на всех страницах в шапке сайта. Определите пункты:
- Главные разделы первого уровня: Услуги, Блог, Кейсы, Инструменты, О себе, Контакты.
- Ключевые подразделы (опционально): основные услуги, основные категории.
Не включайте в SiteNavigationElement: ссылки в футере, ссылки в боковой панели, хлебные крошки (для них есть BreadcrumbList Schema), ссылки в контенте страницы.
Шаг 2. Создайте JSON-LD разметку
Базовый пример SiteNavigationElement для сайта услуг:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "SiteNavigationElement",
"position": 1,
"name": "Услуги",
"url": "https://example.ru/uslugi/"
},
{
"@type": "SiteNavigationElement",
"position": 2,
"name": "Блог",
"url": "https://example.ru/blog/"
},
{
"@type": "SiteNavigationElement",
"position": 3,
"name": "Кейсы",
"url": "https://example.ru/cases/"
},
{
"@type": "SiteNavigationElement",
"position": 4,
"name": "Инструменты",
"url": "https://example.ru/catalog-of-tools/"
},
{
"@type": "SiteNavigationElement",
"position": 5,
"name": "О себе",
"url": "https://example.ru/about/"
},
{
"@type": "SiteNavigationElement",
"position": 6,
"name": "Контакты",
"url": "https://example.ru/contacts/"
}
]
}
</script>
Шаг 3. Добавьте вложенную навигацию (опционально)
Если меню содержит подразделы — их тоже можно разметить. Это особенно полезно для сайтов с несколькими услугами или категориями:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "SiteNavigationElement",
"position": 1,
"name": "Услуги",
"url": "https://example.ru/uslugi/",
"hasPart": [
{
"@type": "SiteNavigationElement",
"name": "SEO-продвижение",
"url": "https://example.ru/uslugi/seo-prodvizhenie/"
},
{
"@type": "SiteNavigationElement",
"name": "SEO-аудит",
"url": "https://example.ru/uslugi/seo-audit/"
},
{
"@type": "SiteNavigationElement",
"name": "Контент-маркетинг",
"url": "https://example.ru/uslugi/kontent-marketing/"
}
]
},
{
"@type": "SiteNavigationElement",
"position": 2,
"name": "Блог",
"url": "https://example.ru/blog/"
}
]
}
</script>
Используйте свойство hasPart для вложенных элементов навигации. Это передаёт поисковой системе иерархическую связь между разделами.
Шаг 4. Реализуйте динамическую генерацию для WordPress
В WordPress меню управляется через «Внешний вид → Меню». Чтобы SiteNavigationElement Schema автоматически обновлялась при изменении меню, генерируйте JSON-LD программно.
Добавьте в functions.php дочерней темы:
function generate_site_navigation_schema() {
// Получаем основное меню
$menu_name = 'primary'; // имя зоны меню
$locations = get_nav_menu_locations();
if (!isset($locations[$menu_name])) return;
$menu = wp_get_nav_menu_object($locations[$menu_name]);
$menu_items = wp_get_nav_menu_items($menu->term_id);
if (!$menu_items) return;
$items = [];
$position = 1;
foreach ($menu_items as $item) {
if ($item->menu_item_parent == 0) { // только первый уровень
$nav_item = [
'@type' => 'SiteNavigationElement',
'position' => $position,
'name' => $item->title,
'url' => $item->url
];
// Ищем дочерние элементы
$children = [];
foreach ($menu_items as $child) {
if ($child->menu_item_parent == $item->ID) {
$children[] = [
'@type' => 'SiteNavigationElement',
'name' => $child->title,
'url' => $child->url
];
}
}
if (!empty($children)) {
$nav_item['hasPart'] = $children;
}
$items[] = $nav_item;
$position++;
}
}
$schema = [
'@context' => 'https://schema.org',
'@type' => 'ItemList',
'itemListElement' => $items
];
echo '<script type="application/ld+json">'
. json_encode($schema, JSON_UNESCAPED_UNICODE
| JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)
. '</script>' . "n";
}
add_action('wp_head', 'generate_site_navigation_schema');
Этот код автоматически генерирует SiteNavigationElement Schema на основе текущего WordPress-меню. При добавлении или удалении пунктов меню — разметка обновляется автоматически.
Шаг 5. Разместите разметку на всех страницах
SiteNavigationElement Schema размещается на всех страницах сайта, потому что навигационное меню присутствует на всех страницах. Если вы используете wp_head хук, как в примере выше, — разметка автоматически появится на каждой странице.
Е��ли размещаете вручную — убедитесь, что JSON-LD добавлен в общий шаблон (header.php), а не на отдельной странице.
Шаг 6. Согласуйте Schema с HTML-навигацией
Текст пунктов и URL в SiteNavigationElement должны совпадать с реальным HTML-меню на странице. Если в HTML-меню пункт называется «Услуги» и ведёт на /uslugi/, а в Schema указано «Наши услуги» и URL /services/ — это расхождение. Поисковая система может расценить несоответствие как попытку манипуляции.
Проверьте:
- Названия пунктов в Schema совпадают с текстом ссылок в HTML-меню.
- URL в Schema совпадают с href ссылок в меню (с учётом протокола и trailing slash).
- Порядок элементов совпадает.
- Все пункты основного меню представлены в Schema, лишних пунктов нет.
Шаг 7. Валидируйте и мониторьте
После добавления разметки:
- Проверьте через Schema Markup Validator (
validator.schema.org) — убедитесь в синтаксической корректности. - Проверьте через Google Rich Results Test — SiteNavigationElement не генерирует Rich Results, но тест покажет, что разметка корректно распознана.
- Проверьте через Яндекс Вебмастер → Валидатор микроразметки.
- Откройте исходный код страницы (Ctrl+U) и найдите блок JSON-LD — убедитесь, что все пункты на месте, URL корректны.
При изменении структуры меню (добавление раздела, переименование, удаление) — проверяйте, что Schema обновилась. Если используете динамическую генерацию через functions.php — обновление автоматическое. Если вручную — обновляйте каждый раз.
Шаг 8. Комбинируйте с другими навигационными Schema
SiteNavigationElement — часть навигационной экосистемы Schema.org. Для полного описания структуры сайта комбинируйте:
- SiteNavigationElement — основное меню.
- BreadcrumbList — хлебные крошки на каждой странице.
- WebSite + SearchAction — описание сайта с внутренним поиском (для Sitelinks Searchbox).
- Organization / Person — информация о владельце сайта.
Вместе эти разметки формируют полную картину для поисковой системы: кто владеет сайтом, какие разделы есть, как по ним навигировать, как устроена иерархия страниц.
Типичные ошибки
- Разметка всех ссылок на сайте. В SiteNavigationElement включены ссылки из футера, боковой панели, контента — 50+ элементов. Это не навигация, это каталог ссылок. Размечайте только основное меню: 5-10 пунктов верхнего уровня с ключевыми подразделами.
- Несовпадение Schema и HTML-меню. В разметке одни пункты, в реальном меню — другие. Проверяйте соответствие после каждого изменения структуры меню.
- Размещение разметки только на главной странице. Навигационное меню присутствует на всех страницах — Schema тоже должна быть на всех. Используйте wp_head хук или общий шаблон.
- Относительные URL вместо абсолютных.
"url": "/uslugi/"вместо"url": "https://example.ru/uslugi/". Schema.org требует абсолютных URL. - Дублирование с BreadcrumbList. SiteNavigationElement и BreadcrumbList — разные типы разметки для разных целей. Не путайте их: BreadcrumbList описывает путь к текущей странице, SiteNavigationElement — структуру основного меню.
- Ручная разметка при динамическом меню. Меню управляется через WordPress, но Schema захардкожена вручную. При добавлении нового раздела Schema не обновляется. Используйте динамическую генерацию из WordPress-меню.
- Включение утилитарных пунктов. «Войти», «Корзина», «Язык» — это не навигационные разделы сайта, это утилитарные элементы интерфейса. Не включайте их в SiteNavigationElement.
Что проверить в итоге
- SiteNavigationElement Schema добавлена на все страницы сайта в формате JSON-LD.
- Размечены пункты основного навигационного меню (5-10 элементов верхнего уровня).
- Для разделов с подменю добавлена вложенная структура через hasPart.
- Названия пунктов и URL в Schema совпадают с HTML-меню.
- URL указаны в абсолютном формате (с протоколом и доменом).
- Указаны position для каждого элемента верхнего уровня.
- Для WordPress — генерация автоматическая через functions.php на основе данных меню.
- Не включены утилитарные элементы (вход, корзина, язык).
- Разметка прошла валидацию в Schema Markup Validator и Яндекс Вебмастере.
- Schema обновляется при изменении структуры меню — вручную или автоматически.
- SiteNavigationElement не дублирует BreadcrumbList — это разные типы разметки.