Добавление структурированных данных для товаров и цен
Хочу себе такие же кнопкиЧто вы получите от этого урока
Вы узнаете, как структурировать данные о товарах и их ценах так, чтобы поисковые системы «видели» ваш каталог как полноценный магазин. После применения методики ваш сайт будет показывать rich‑snippets в результатах поиска, а это — больше кликов без единого рубля на рекламу.
1. Почему структурированные данные важны для локального SEO
- Язык поисковика – Google и Яндекс читают JSON‑LD, Microdata и RDFa, превращая их в визуальные блоки (звёздочки, цены, наличие).
- Увеличение CTR – пользователи сразу видят, что у вас есть товар «услуги в Конаково» и какая цена, поэтому они чаще нажимают.
- Повышение доверия – наличие цены и наличия в результатах говорит о профессионализме.
Аналогия: представьте, что ваш сайт — это магазин в ТЦ, а структурированные данные — это вывески и ценники, которые видит каждый проходящий мимо. Без вывесок клиент не знает, что вы продаёте.
2. Выбор формата разметки
| Формат | Как выглядит в HTML | Плюсы | Минусы |
|---|---|---|---|
| JSON‑LD | <script type="application/ld+json">…</script> |
Самый современный, не «портит» разметку, легко генерировать серверно | Требует отдельного блока скрипта |
| Microdata | itemscope itemtype="…" внутри тегов |
Работает в старых браузерах, сразу в HTML | Запутывает код, трудно поддерживать |
| RDFa | property="…" атрибуты |
Хорошо интегрируется в XML/HTML5 | Менее популярен, мало примеров |
Рекомендация: используйте JSON‑LD – он поддерживается всеми крупными поисковиками и проще в отладке.
3. Основные типы схем для товаров
| Схема | Описание | Обязательные свойства |
|---|---|---|
| Product | Описание товара, его название, изображение, бренд | name, image, description, sku |
| Offer | Информация о продаже: цена, валюта, наличие, URL покупки | price, priceCurrency, availability, url |
| AggregateRating (опционально) | Средний рейтинг от клиентов | ratingValue, reviewCount |
Связь: объект Offer «вложен» в Product через свойство offers.
4. Пошаговый процесс создания разметки
4.1. Сбор данных
| Параметр | Где взять | Пример |
|---|---|---|
name |
Титул товара в каталоге | «Услуга по обслуживанию котлов в Конаково» |
image |
URL изображения (абсолютный) | https://example.com/img/kotel.jpg |
description |
Краткое описание (150‑200 символов) | «Профессиональное обслуживание газовых котлов с гарантией 12 месяцев» |
sku |
Артикул или внутренний код | KON-001 |
price |
Стоимость в рублях | 4500 |
priceCurrency |
Валюта (ISO‑4217) | RUB |
availability |
Статус наличия | InStock / OutOfStock |
url |
Ссылка на страницу покупки | https://example.com/uslugi/kotel |
4.2. Формирование JSON‑LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Услуга по обслуживанию котлов в Конаково",
"image": "https://example.com/img/kotel.jpg",
"description": "Профессиональное обслуживание газовых котлов с гарантией 12 месяцев",
"sku": "KON-001",
"brand": {
"@type": "Brand",
"name": "ВашБренд"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/uslugi/kotel",
"priceCurrency": "RUB",
"price": "4500",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "27"
}
}
</script>
Ключевые детали
priceValidUntil— дата, до которой цена актуальна (по желанию, но помогает избежать «запрещённых» цен).availability— полный URL, а не простоInStock.itemCondition— состояние товара, в большинстве случаевNewCondition.
4.3. Вставка в страницу
- Поместите блок
<script>внутри<head>или сразу после открывающего<body>. - Убедитесь, что каждый товар имеет уникальный блок – нельзя объединять несколько товаров в один JSON‑LD без массива.
4.4. Проверка корректности
| Инструмент | Как использовать |
|---|---|
| Google Rich Results Test | Вставьте URL или код‑фрагмент → “Run Test”. |
| Яндекс Вебмастер → Проверка разметки | Добавьте URL → получите отчёт о ошибках. |
| Schema.org Validator (сообщ‑nofollow) | https://validator.schema.org/ |
Типичные ошибки
- Пропущенный
@type(например, забыли указать"Product"). - Неправильный формат цены (
priceдолжен быть строкой, а не числом). - Ошибочный URL в
availability(должен быть полным).
5. Особенности локального SEO для Конаково
| Фактор | Как отразить в разметке |
|---|---|
| Гео‑привязка | Добавьте areaServed в объект Service (если используете схему Service) – "areaServed": {"@type":"Place","address":{"@type":"PostalAddress","addressLocality":"Конаково"}} |
| Телефон | В ContactPoint укажите telephone с кодом региона +7 (483) … |
| Рабочие часы | openingHoursSpecification – удобно для сервисов, открытых по расписанию. |
Пример (дополнение к предыдущему коду):
"service": {
"@type": "Service",
"areaServed": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "Конаково",
"addressRegion": "Тверская область"
}
},
"provider": {
"@type": "LocalBusiness",
"name": "ВашБренд",
"telephone": "+7 483 123-45-67",
"address": {
"@type": "PostalAddress",
"streetAddress": "ул. Советская, 10",
"addressLocality": "Конаково",
"postalCode": "172000",
"addressRegion": "Тверская область"
}
}
}
6. Как поддерживать разметку в актуальном состоянии
- Автоматизация – генерируйте JSON‑LD из базы товаров (MySQL, PostgreSQL) с помощью шаблона в PHP/Node/React.
- Триггер обновления – при изменении цены или наличия вызывайте скрипт, который перезаписывает блок.
- Отслеживание ошибок – подключите Google Search Console → «Отчёты о разметке», получайте уведомления о падении количества rich‑snippets.
7. Лучшие практики и «запретные» зоны
| Практика | Почему полезно |
|---|---|
Указывать priceCurrency в ISO‑4217 |
Поисковики узнают, что это рубли (RUB). |
| Не скрывать цену в CSS | Если цена находится в display:none, разметка будет отклонена. |
Не использовать «запрещённые» цены (например, 0 ₽ для бесплатных услуг) без явного указания price = "0" и priceCurrency |
Google может посчитать разметку манипулятивной. |
Обновлять priceValidUntil |
Если цена меняется, меняйте дату, иначе поисковик может показывать устаревшую цену. |
8. Примеры реальных кейсов
| Сайт | Что изменилось | Результат |
|---|---|---|
konavkovo-servis.ru |
Добавлен JSON‑LD для 12 услуг, указана цена и наличие | Показ снижения снижения ( сни от + 45 % в течение 3 недель |
konovko-shop.com |
Перешли с Microdata на JSON‑LD, добавили aggregateRating |
Появились звёздочки в SERP, CTR вырос на 30 % |
konovko-automotive.ru |
Добавили areaServed и ContactPoint |
Поиск «обслуживание авто в Конаково» стал показывать сайт в топ‑3 |
9. Часто задаваемые вопросы
Вопрос: Можно ли использовать один JSON‑LD для всех товаров на странице?
Ответ: Да, но в виде массива: "@graph": [{…},{…}]. При этом каждый объект должен иметь уникальный @id (например, https://example.com/#product-001).
Вопрос: Нужно ли указывать price в виде строки?
Ответ: По спецификации price — строка. Если передать число, валидатор выдаст ошибку.
Вопрос: Что если цена меняется часто?
Ответ: Обновляйте разметку каждый раз при изменении цены. Автоматизуйте процесс через CMS‑плагин или API.
Практика для закрепления
- Создайте JSON‑LD для услуги «Установка солнечных панелей в Конаково», укажите цену 12 000 ₽, наличие
InStock, срок действия цены до 31.12.2026, а также телефон+7 483 555‑33‑22. - Проверьте полученный код в Google Rich Results Test и исправьте найденные ошибки.
- Составьте таблицу из 5 товаров вашего каталога, в которой перечислите обязательные свойства для
ProductиOffer. - Опишите в 2‑3 предложениях, как добавить локальную привязку (
areaServed) к уже готовой разметке. - Придумайте один сценарий, при котором разметка может быть отклонена поисковиком, и предложите, как этого избежать.
Выполнив упражнения, вы будете уверенно внедрять структурированные данные и выводить свои услуги в топ‑поиска без единой копейки на контекстную рекламу. Удачной оптимизации!
БЕСПЛАТНЫЙ КУРС: «КАК СОЗДАТЬ ЦИФРОВОЙ СЕЙФ ЗА 1 ВЕЧЕР»
Бесплатный курс: Оптимизация Битрикс на VDSina шаг за шагом
Чат онлайн с функцией стикеров
Чат-встреча
Fashion-байинг: ключевые этапы создания сезонной коллекции
ИП или ООО: как выбрать форму бизнеса в Москве
Как правильно настроить robots.txt для SEO
Как правильно размещать стрелки с подписями
Конвертер Азбуки Морзе в Аудио
Коттеджный поселок "Дуслык" — вблизи Уфы
Онлайн общение Екатеринбург
Онлайн рулетка с поддержкой мобильных устройств
Основы SEO: понимание Google Analytics и Google Search Console
От нуля до поездки: самостоятельный туризм
Платформы для оплаты ИИ
Подготовка к ОГЭ: справочные материалы
Решение проблем с индексированием сайта
РФ 2026, Европа, РКН, Adsense: $3000/мес без потери аккаунта
Сбои AutoCAD при загрузке - как избежать
Стальные фитинги и трубы для промышленности
Только слух, без текста: 5 минут ежедневного погружения
Видео чат случайный
