Паттерн · TypeScript
BreadcrumbList в JSON-LD для внутренних страниц
Единый хелпер для хлебных крошек в разметке, согласованный с UI.
·
Уровень: базовыйОценка времени: ~15 мин
Один массив данных кормит и Breadcrumb, и itemListElement в JSON-LD — без рассинхрона имён и URL.
- Совпадение порядка снижает риск ошибок в rich results
- объект готов для вставки в @graph
- после смены маршрутов прогоните валидатор
Хлебные крошки в интерфейсе и в
application/ld+jsonдолжны совпадать по порядку и названиям.
Код
export function buildBreadcrumbListLd(items: { name: string; url: string }[]) {
return {
'@type': 'BreadcrumbList' as const,
itemListElement: items.map((item, index) => ({
'@type': 'ListItem' as const,
position: index + 1,
name: item.name,
item: item.url,
})),
}
}
Проверка
- В UI и в JSON-LD одинаковые подписи пунктов и канонические URL со слэшем в конце, если так принято на сайте.
- Rich Results Test / валидатор Schema.org без ошибок по
ListItem.
Первоисточники
Другие паттерны
- Next.js
Канонический URL и метаданные страницы в Next.js App Router
Паттерн generateMetadata с canonical и Open Graph — основа SEO-гигиены.
Открыть паттерн - JSON-LD
Расширение JSON-LD Organization и WebSite в корневом layout
Связанные @id в @graph: организация, персона, сайт — основа для остальных сущностей.
Открыть паттерн
Материалы блога
- Процесс
Чеклист приёмки сайта: скорость, доступность и базовый техSEO до подписания акта
Зачем до акта смотреть PageSpeed Insights и WAVE, чем лабораторные метрики отличаются от полевых, и какой минимум техSEO снижает сюрпризы после запуска.
Читать статью - SEO
SEO-архитектура: почему сайт не продает без структуры
Разбираем, как правильная структура сайта влияет на продажи и позиции в поиске. Почему дизайн вторичен, а семантика первична.
Читать статью
Нужно внедрить под ваш домен и стек?
Короткая форма: имя, телефон и сайт. После отправки — ответ с порядком работ и ориентиром по этапам; задачу уточняют при контакте.