Что такое структурированные данные
Структурированные данные (структурированная разметка) - это способ явно описать поисковику, что находится на странице: товар, статья, организация, хлебные крошки, FAQ и т.д. Обычно это делается по стандарту Schema.org.
Важно понимать две вещи:
- разметка не заменяет контент - она лишь помогает поисковику правильно интерпретировать то, что уже есть на странице
- разметка не гарантирует расширенный сниппет - она делает страницу кандидатом на расширенный результат, а решение остается за поисковой системой
Когда структурированные данные действительно нужны
Структурированные данные стоит внедрять, когда есть понятная цель и понятный тип страницы.
1) Чтобы получить более заметный сниппет и повысить CTR
Чаще всего это работает для страниц, где поисковики умеют показывать дополнительные элементы: цена, наличие, рейтинг, хлебные крошки, быстрые ответы и т.п. Даже если позиции не меняются, сниппет может стать кликабельнее.
2) Чтобы снизить неоднозначность для робота
Когда страница сложная или типичный контент можно трактовать по-разному, разметка помогает “подсветить” ключевые сущности:
- что является названием товара, а что - названием категории
- какие изображения являются основными
- что считать брендом, артикулом, SKU
- какой блок на странице является навигацией (breadcrumbs - хлебные крошки)
3) Чтобы стандартизировать данные в шаблонах
На больших сайтах разметка дисциплинирует шаблоны: появляются обязательные поля, единый формат дат, цены, валюты, единая структура хлебных крошек. Это снижает хаос и число ошибок в контенте.
Когда разметка не нужна или опасна
Внедрять разметку “на всякий случай” - плохая идея. Типичные ситуации, где лучше остановиться:
- вы не можете обеспечить совпадение разметки с видимым контентом (данные берутся из базы и часто расходятся с тем, что показано на странице)
- разметка будет дублироваться или конфликтовать (несколько разных Product, несколько Organization, разные значения price)
- есть соблазн размечать то, чего на странице нет (скрытые отзывы, “фейковые” рейтинги, вопросы-ответы без реального блока)
Безопасное правило: размечаем только то, что пользователь реально видит и может подтвердить на странице.
Какие схемы дают максимум пользы в типовых проектах
Ниже - практичный “минимальный набор”, который чаще всего окупается.
| Тип страницы | Что размечать | Зачем | На что обратить внимание |
|---|---|---|---|
| Весь сайт | Organization (или LocalBusiness) | Ясно обозначить бренд и контакты | Не дублировать в десятках вариантов, держать единые данные |
| Любые разделы и карточки | BreadcrumbList | Понятная навигация и структура | Крошки должны совпадать с реальной цепочкой на странице |
| Карточка товара | Product + Offer | Цена, валюта, наличие, бренд | Цена и наличие должны совпадать с тем, что видит пользователь |
| Статья/гайд | Article (или BlogPosting) | Четкая сущность “материал”, авторство, дата | Даты публикации и обновления должны быть корректными |
| Страница FAQ | FAQPage | Структурировать вопросы и ответы | Только если на странице реально есть блок FAQ с полными ответами |
Если сомневаетесь, начните с BreadcrumbList и Organization/LocalBusiness. Обычно это безопаснее, чем сразу идти в отзывы, рейтинги и сложные типы.
Форматы разметки: что выбрать
Есть несколько способов добавить Schema.org:
- JSON-LD (скрипт в коде страницы)
- Microdata (атрибуты прямо в HTML)
- RDFa (похож на microdata, реже используется)
На практике удобнее всего JSON-LD:
- не ломает верстку и не засоряет HTML атрибутами
- проще генерировать в шаблонах и поддерживать
- легче тестировать и обновлять
Дальше в уроке подразумеваем JSON-LD как базовый подход.
Сервисы для SEO-аудита онлайн
Безопасный процесс внедрения: пошагово
Шаг 1. Выберите 1 цель и 1 тип разметки для шаблона
Не пытайтесь “разметить все”. Сначала выберите один тип страницы и одну схему, где результат можно измерить (например, карточки товара или хлебные крошки).
Хорошие стартовые варианты:
- e-com: Product + Offer на карточках товара, BreadcrumbList на категориях и карточках
- инфо-сайт: Article на материалах, BreadcrumbList на всем сайте
- локалка: LocalBusiness, контакты, часы работы (если они реально указаны на странице)
Шаг 2. Определите источник правды для данных
Чтобы разметка не рассинхронизировалась, заранее договоритесь, откуда берутся значения:
- название, описание - из контента страницы или CMS
- цена, наличие - из каталога (и обновляются вместе с тем, что показывается пользователю)
- бренд, SKU - из карточки товара
- дата публикации и обновления берётся либо из CMS (если вы ведёте сайт через админку), либо из служебных полей в начале файла статьи/урока (если контент хранится в .md/.mdx файлах)
Главное - один источник, один формат, одна логика.
Шаг 3. Добавляйте разметку в шаблон, а не руками на каждой странице
Ручная вставка быстро приводит к хаосу. Правильнее:
- создать единый генератор разметки в коде
- подключить его в шаблоне типа страницы
- покрыть разметкой все страницы одного типа автоматически
Так вы уменьшаете риск ошибок и упрощаете поддержку.
Шаг 4. Следите за соответствием “разметка - видимый контент”
Это основной принцип безопасности. Если на странице:
- “в наличии” - в разметке тоже должно быть inStock
- цена изменилась - должна измениться и в разметке
- рейтинг и отзывы не показаны пользователю - не размечайте их
Поисковики воспринимают несоответствие как попытку манипуляции, а не как ошибку верстки.
Шаг 5. Протестируйте разметку до выката
Минимальный набор проверок:
- валидатор разметки (проверка синтаксиса Schema.org) - https://validator.schema.org/
- Тест расширенных результатов Google — покажет ошибки и предупреждения в разметке, из-за которых расширенный сниппет может не появиться. - https://search.google.com/test/rich-results
- проверка через исходный код страницы (разметка реально присутствует в HTML ответа)
Для старта достаточно протестировать 3-5 страниц каждого шаблона.
Шаг 6. Внедряйте постепенно и контролируйте эффекты
Безопасная схема:
- сначала 1 тип страниц и ограниченный процент (или тестовая группа)
- затем расширение на весь тип страниц
- мониторинг в панелях вебмастеров: ошибки разметки, предупреждения, динамика сниппетов
Минимальные примеры: как это выглядит в JSON-LD
Ниже - упрощенные примеры, чтобы понимать формат. Поля и типы подбирайте под вашу страницу и контент.
BreadcrumbList (хлебные крошки)
<script type="application/ld+json">
{
"@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/catalog/"},
{"@type":"ListItem","position":3,"name":"Товар","item":"https://example.com/product/"}
]
}
</script>
Product + Offer (карточка товара)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Название товара",
"image": ["https://example.com/img.jpg"],
"sku": "SKU-123",
"brand": {"@type":"Brand","name":"Бренд"},
"offers": {
"@type": "Offer",
"price": "1990",
"priceCurrency": "RUB",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product/"
}
}
</script>
Примеры специально упрощены. В реальном проекте важно, чтобы значения совпадали с тем, что видит пользователь, а URL и изображения были корректными.
Частые ошибки, из-за которых разметка “не работает”
Ошибка 1. Конфликтующие сущности
Например, на странице есть два блока Product с разными названиями или ценой. Поисковик может проигнорировать разметку или выбрать “не тот” вариант.
Что делать:
- держать одну главную сущность страницы (один Product на карточке)
- не размечать список товаров на категории как набор Product (для списков лучше рассматривать ItemList)
Ошибка 2. Разметка не совпадает с видимым контентом
Классика: в разметке цена 990, на странице 1290, потому что где-то кэш или разные источники данных.
Что делать:
- синхронизировать источник данных
- проверять несколько страниц в разных состояниях (со скидкой, без скидки, разные регионы)
Ошибка 3. Разметка “для поисковика”, а не для пользователя
Фейковые рейтинги, “нарисованные” отзывы, скрытые ответы FAQ, разметка того, чего нет.
Что делать:
- размечать только то, что реально есть на странице
- если контента нет - сначала добавьте его, потом размечайте
Ошибка 4. Дублирование Organization/LocalBusiness на каждой странице разными данными
На одной странице один телефон, на второй другой, где-то разные адреса или названия.
Что делать:
- централизовать данные бренда
- использовать один набор контактов и одинаковую структуру
Нюансы Google и Яндекс
Обе поисковые системы понимают Schema.org, но набор расширенных элементов и требования к ним могут отличаться. Поэтому безопасный подход такой:
- придерживайтесь схем Schema.org и понятных, “честных” полей
- используйте один формат (обычно JSON-LD) и единый генератор в шаблонах
- проверяйте ошибки и предупреждения в инструментах для вебмастеров, а не ориентируйтесь только на “появилось/не появилось” в выдаче
Если вы делаете разметку по принципу “совпадает с контентом, не конфликтует, корректно валидируется”, то она обычно безопасна для обоих поисковиков.
Короткий итог
- структурированные данные нужны там, где есть цель (сниппет, ясность сущностей, стандартизация шаблонов)
- самый безопасный базовый набор - BreadcrumbList и Organization/LocalBusiness, затем Product на карточках и Article на материалах
- внедряйте через шаблоны, держите единый источник данных и следите за совпадением с видимым контентом
- тестируйте валидаторами и мониторьте отчеты об ошибках после выката