Назад в блог
Разработка

Микроразметка Schema.org: как научить поисковые системы понимать ваш сайт

Author
Яна
Frontend developer
Author
Даша
Frontend developer
16 минут
Preview
Содержание

Что такое Schema.org

Давайте представим карточку товара. Для пользователя страница понятна. Но поисковый робот видит только DOM-дерево с текстом внутри div-ов. Он не знает, что 79 990 — это цена, 4.7 — рейтинг, а 234 — количество отзывов. Это просто строки.

Микроразметка Schema.org добавляет семантический слой поверх HTML. Она явно указывает поисковику: «это товар, вот его цена, вот рейтинг». Данные становятся структурированными и машиночитаемыми.

Schema.org — словарь стандартизированных типов данных, созданный в 2011 году совместно Google, Microsoft, Yahoo и Яндексом. Вместо того чтобы каждый поисковик придумывал свой формат разметки, они договорились об общем стандарте. На данный момент его использует более 45 миллионов доменов.

Что это даёт на практике

Rich Snippets — расширенные сниппеты в выдаче

Главный эффект микроразметки — изменение внешнего вида результата в поиске.

Обычный результат:

Смартфон Example Pro 256GB — купить в Example Shop
Флагманский смартфон с камерой 108 МП. Доставка по всей России.

С микроразметкой Product + Offer + AggregateRating:

Смартфон Example Pro 256GB — Example Shop
★★★★★ 4.7 (234 отзыва) · 79 990 ₽ · В наличии
Флагманский смартфон с камерой 108 МП. Доставка по всей России.

Второй вариант занимает больше места, содержит ключевую информацию (цена, наличие, рейтинг) и выделяется на фоне конкурентов.

Рост кликабельности

Google приводит конкретные кейсы в документации:

  • Rotten Tomatoes: +25% CTR на страницах с разметкой
  • Food Network: +35% визитов после внедрения structured data
  • Rakuten: пользователи проводят в 1.5 раза больше времени на страницах с разметкой

Цифры варьируются, но паттерн устойчивый: rich snippets повышают кликабельность на 20–30% по сравнению с обычными результатами.

AI-поиск и голосовые ассистенты

Поисковики всё активнее используют LLM для генерации ответов. Structured data помогает этим моделям точнее интерпретировать контент.

Фабрис Канель, Principal Product Manager в Microsoft Bing, на конференции SMX Munich (март 2025): «Schema Markup helps Microsoft's LLMs understand content».
Google в документации Search Central: «You can help us by providing explicit clues about the meaning of a page to Google by including structured data on the page».

Чем лучше поисковик понимает контент, тем выше шанс попасть в AI-генерируемые ответы и сниппеты.

В каких форматах можно использовать Schema.org

Schema.org — это словарь, но «разговаривать» на нем с поисковыми роботами можно на разных «языках» (синтаксисах). Google, Яндекс и Bing поддерживают три основных формата, но их значимость сильно различается.

Microdata (микроданные)

Cамый старый и классический способ разметки, при котором атрибуты Schema.org внедряются прямо в HTML-теги с помощью itemscope, itemtype, itemprop.Как это выглядит:

<div itemscope itemtype="https://schema.org/Article">
  <h1 itemprop="headline">Как работает микроразметка</h1>
  <span itemprop="author">Иван Петров</span>
</div>

Плюсы: поисковик гарантированно видит связь между кодом и текстом, который видит пользователь.

Минусы: громоздко. Любое изменение дизайна заставляет переписывать разметку. Повышается риск «сломать» верстку при редактировании данных.

RDFa

Во многом похож на Microdata, но основан на стандартах W3C для Semantic Web и использует атрибуты vocab, typeof, property.

Статус: В современном вебе практически вытеснен. Встречается в старых проектах или специфических XML-документах. Для новых сайтов использовать его не рекомендуется.

JSON-LD (JavaScript Object Notation for Linked Data)

Формат передачи структурированных данных в виде обычного JSON-объекта. В отличие от Microdata и RDFa, он не смешивается с HTML-разметкой, а размещается внутри тега <script>.

Как это выглядит:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Как работает микроразметка",
  "author": {
    "@type": "Person",
    "name": "Иван Петров"
  }
}
</script>

Плюсы:

  • Чистота кода: структурированные данные отделены от визуальной верстки.
  • Гибкость: разметку легко генерировать динамически — на сервере или на клиенте.
  • Рекомендации поисковиков: Google официально называет JSON-LD предпочтительным форматом. 
Google рекомендует именно JSON-LD. Из документации: «We recommend using JSON-LD for structured data whenever possible» и «JSON-LD is the easiest solution for website owners to implement and maintain at scale».

Минусы: Требует аккуратности при работе с вложенными объектами и соблюдения корректной JSON-структуры.

На практике JSON-LD — это стандарт для Schema.org в современном вебе. Microdata и RDFa остаются поддерживаемыми, но используются всё реже — в основном в легаси-проектах или при жёсткой привязке данных к HTML.

Из чего состоит разметка Schema.org (JSON+LD) 

Любая разметка, независимо от её сложности, строится по единой логике. Это обычный JSON-объект, в котором есть зарезервированные ключи, понятные поисковым роботам.

1. Контекст (@context)

Это обязательное поле, которое указывает поисковику, какой словарь используется для интерпретации данных. Контекст указывается один раз в корневом объекте. Вложенные объекты его наследуют.

"@context": "https://schema.org"

2. Тип объекта (@type)

"@type": "Organization"

Определяет, что именно описывает разметка: организацию, товар, статью или событие. Тип задаёт набор доступных свойств и логику интерпретации данных поисковиками.

Schema.org содержит более 800 типов, организованных в иерархию. Например:

Thing
  └── Organization
        ├── Corporation
        ├── LocalBusiness
        │     ├── Restaurant
        │     ├── Store
        │     └── ...
        └── ...

LocalBusiness наследует все свойства Organization, но добавляет специфичные: openingHours, priceRange, geo. Чем точнее выбран тип, тем лучше поисковик понимает контент. 

3. Свойства (Properties)

Пары «ключ-значение», описывающие объект. Набор полей зависит от типа: для товара это price, для статьи — datePublished.

Каждый тип имеет свой набор свойств. Они делятся на:

  • Обязательные — без них разметка не пройдёт проверку (например, name для Product)
  • Рекомендуемые — улучшают качество rich snippets (например, description, image)
  • Опциональные — дополнительная информация. Сюда же относятся enums — строгие URL-константы из словаря, например "availability":

Полный список свойств для каждого типа — на schema.org. Например, для Product: schema.org/Product.

4. Вложенные объекты

Свойства могут содержать не только строки и числа, но и другие объекты со своим @type:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Смартфон Example Pro",
  "brand": {
    "@type": "Brand",
    "name": "Example"
  },
  "offers": {
    "@type": "Offer",
    "price": "79990",
    "priceCurrency": "RUB",
    "availability": "https://schema.org/InStock"
  }
}

Здесь brand — не строка, а объект типа Brand, offers — объект типа Offer с ценой и наличием. Такая вложенность позволяет передать поисковику больше структурированной информации.

5. Связи через @id

Уникальный идентификатор (обычно URL с хэштегом), который позволяет связывать объекты между собой.

Зачем это нужно: Представьте, что у вас на странице есть товар и организация-продавец. Вместо того чтобы внутри каждого товара заново описывать все данные компании (адрес, логотип, соцсети), можно:

  • Описать организацию один раз и присвоить @id:
{
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "Example Shop",
  "logo": "https://example.com/logo.png"
}
  • В схеме товара сослаться на этот @id:
{
  "@type": "Product",
  "name": "Смартфон Example Pro",
  "offers": {
    "@type": "Offer",
    "price": "79990",
    "seller": { 
      "@id": "https://example.com/#organization" 
    }
  }
}

6. Несколько объектов на странице

На одной странице часто нужно разместить несколько схем: информацию о компании, хлебные крошки, данные о товаре.

Несколько <script> тегов — валидный вариант, но @graph позволяет явно показать связи между сущностями и избежать дублирования:

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "Example Shop"
    },
    {
      "@type": "Product",
      "name": "Смартфон",
      "offers": {
        "@type": "Offer",
        "seller": { "@id": "https://example.com/#organization" }
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [...]
    }
  ]
}

Где искать информацию

При работе с микроразметкой есть два основных источника.

Google Search Central — схемы, которые гарантированно поддерживают rich results в Google, с жёсткими требованиями к обязательным полям. Для большинства бизнес-задач достаточно этой галереи.

Schema.org — полный словарь стандарта (800+ типов). Полезен, когда нужно найти специфический тип, которого нет у Google, или изучить все доступные свойства сущности.

Архитектура работы с микроразметкой в Next.js приложении

При внедрении структурированных данных Schema.org на сайт возникает вопрос: как организовать код так, чтобы он был переиспользуемым, поддерживаемым и масштабируемым?

Подход основан на разделении ответственности на четыре уровня:

  1. Базовый компонент рендеринга — отвечает только за вывод JSON-LD
  2. Функции-генераторы — формируют структуру отдельных типов схем
  3. Компоненты-схемы страниц — комбинируют несколько схем для конкретных страниц
  4. Использование в страницах — декларативное размещение схем

Уровень 1: Базовый компонент JsonLd

Единственный компонент, который непосредственно работает с DOM и отвечает за корректный вывод JSON-LD разметки в HTML.

import React from 'react';
import { JsonLdSchema } from '../types';

type Props = {
  data: JsonLdSchema | JsonLdSchema[] | null;
};

export default function JsonLd({ data }: Props) {
  if (!data) return null;
  
  const schema = Array.isArray(data)
    ? { '@context': 'https://schema.org', '@graph': data.filter(Boolean) }
    : { '@context': 'https://schema.org', ...data };
  
  return (
    <script 
      type="application/ld+json" 
      dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }} 
    />
  );
}

Компонент принимает либо один объект схемы, либо массив схем (в этом случае автоматически оборачивает их в @graph), что позволяет размещать несколько связанных схем на одной странице.

Уровень 2: Функции-генераторы схем

Функции инкапсулируют логику построения конкретных типов Schema.org разметки.

import { CreateBreadcrumbListSchemaParams } from '../types';
export function createBreadcrumbListSchema({
  items,
  baseUrl = '',
}: CreateBreadcrumbListSchemaParams): JsonLdSchema {
  const itemListElement = items.map((item, index) => ({
    '@type': 'ListItem',
    position: index + 1,
    name: item.name,
    item: {
      '@type': 'Thing',
      '@id': `${baseUrl}${item.link}`,
    },
  }));
  
  return {
    '@type': 'BreadcrumbList',
    itemListElement,
  };
}

Уровень 3: Компоненты-схемы страниц

Компоненты комбинируют несколько типов схем для конкретных страниц.

import { createOrganizationSchema } from '../creators/createOrganizationSchema';
import { createWebSiteSchema } from '../creators/createWebSiteSchema';
import { JsonLdSchema } from '../types';
import JsonLd from './JsonLd';

export function HomePageSchema() {
  const schemas: JsonLdSchema[] = [];
  
  const organization = createOrganizationSchema({
name: 'Company Name',
 	url: 'https://example.com',
 	logo: 'https://example.com/logo.png',
 	description: 'Company description',
...//остальные свойства применимы к вашему проекту
  });
  schemas.push(organization);
  
  const website = createWebSiteSchema({
name: 'Site Name',
url: 'https://example.com',
...//остальные свойства применимы к вашему проекту
  });
  schemas.push(website);
  
  return <JsonLd data={schemas} />;
}

Уровень 4: Использование в страницах

Размещение компонентов-схем на страницах веб-приложения.

// app/page.tsx
import { HomeSchema } from '@/components/schema-org';

const Home = async () => {
  return (
    <>
      <HomeSchema />
      {/* Контент страницы */}
    </>
  );
};

export default Home;

Микроразметка может жить как в Server, так и в Client компонентах (в зависимости от источника данных).

Когда этот подход оправдан

Подходит для:

  • Сайтов с множеством страниц и типов контента (e-commerce, медиа, каталоги)
  • Проектов, где микроразметка нужна на 10+ страницах
  • Команд из нескольких разработчиков
  • Случаев, когда важна типобезопасность и долгосрочная поддержка

Избыточно для:

  • Простой лендинг с 2-3 страницами
  • Микроразметка нужна только на одной странице
  • MVP или одноразовый проект

Можно использовать альтернативный подход для простых случаев - прямая вставка JSON:

export default function Home() {
  return (
    <>
      <script type="application/ld+json">
        {JSON.stringify({
          '@context': 'https://schema.org',
          '@type': 'Organization',
          name: 'Company Name',
        })}
      </script>
      {/* Контент страницы */}
    </>
  );
}

Проверка микроразметки: как убедиться, что всё работает

После добавления Schema.org важно проверить, что разметка действительно читается поисковыми системами. Даже небольшая опечатка — лишняя запятая или неверный формат даты — может привести к тому, что поисковик полностью проигнорирует разметку. Чтобы этого не произошло, используйте три этапа проверки.

 Инструменты проверки «здесь и сейчас»

Для разовой проверки конкретной страницы или куска кода используйте два дополняющих друг друга сервиса:

  • Schema Markup Validator (стандарт качества). Это официальный инструмент от Schema.org. Проверяет общую логику и семантическую корректность: правильность типов, связи между вложенными элементами, синтаксические ошибки в JSON-LD.
Совет: Используется для проверки общей логики и вложенности, особенно при работе с редкими типами разметки, которые Google пока не поддерживает официально.

Важно: Этот инструмент не гарантирует появление «звездочек» в поиске — он лишь подтверждает, что JSON-LD написан без ошибок.

case image

Разметку страницы в Schema Markup Validator можно проверить следующими способами:

По фрагменту кода:

По URL вашей страницы:

  • Google Rich Results Test  (билет в выдачу). Специализированный инструмент для оценки пригодности разметки к формированию расширенных результатов в Google.
Совет: Инструмент умеет анализировать разметку, сгенерированную через JavaScript (React, Vue или Next.js).

Важно: Если здесь есть «Критическая ошибка» (красный значок), Google гарантированно не покажет расширенный сниппет.

case image

Разметку страницы в Google Rich Result Test можно проверить следующими способами:

По фрагменту кода:

По URL вашей страницы:

 Мониторинг после публикации: Google Search Console

Если валидаторы проверяют одну страницу, то Google Search Console  следит за всем сайтом в динамике.

  • Раздел «Улучшения» (Enhancements): Здесь автоматически появятся отчеты по всем типам разметки (Product, FAQ, Breadcrumbs и др.).
  • Контроль ошибок: Если шаблон сломается и разметка «поедет» на множестве страниц, Search Console немедленно пришлет уведомление на почту.
  • Аналитика: В отчете «Эффективность» можно отфильтровать данные по «Виду в поиске», чтобы увидеть, сколько кликов принесли именно расширенные результаты.
case image

Быстрая проверка через консоль браузера

Если разметка реализована через JSON-LD, её можно проинспектировать прямо в браузере, не копируя код в сторонние сервисы.

  1. Открыть нужную страницу
  2. Нажать F12 → вкладка Console

Вставить код:

document.querySelectorAll('script[type="application/ld+json"]').forEach(script => { console.log(JSON.parse(script.innerText)); });

Все схемы страницы отобразятся в виде раскрывающихся объектов. Если в коде есть ошибка, консоль подсветит её.

Чек-лист перед релизом

Корректность данных

  • Тип разметки соответствует смыслу страницы (для статьи в блоге лучше BlogPosting, а не универсальный Article)
  • Цена, рейтинг, даты в JSON-LD совпадают с тем, что видит пользователь на странице

Формат данных

  • Даты в формате ISO 8601 (2026-02-12 или 2026-02-12T14:30:00+03:00)
  • Цена указывается без валюты и символов: "price": "1500" или "price": 1500. Валюта — в отдельном поле priceCurrency

Техническая доступность

  • robots.txt не запрещает доступ к страницам с разметкой
  • JSON-LD отдаётся через SSR. Хотя Google справляется с JavaScript, другие системы (Яндекс, Pinterest, мессенджеры) могут проигнорировать разметку, если она подгружается только в браузере

Проверка инструментами

  • Schema Markup Validator — используйте в процессе разработки, чтобы убедиться в чистоте кода и правильной вложенности объектов.
  • Google Rich Results Test — используйте непосредственно перед деплоем, чтобы подтвердить, что Google одобряет ваши данные для формирования расширенного сниппета.
  • Google Search Console — используйте после индексации, чтобы отслеживать разметку в масштабах всего сайта и вовремя узнавать о сбоях.
Даже если все валидаторы показывают статус «Valid», это не гарантия появления расширенного сниппета. Поисковик сам решает, полезна ли разметка пользователю. Главное требование: данные в коде должны соответствовать контенту, который видит пользователь.
Дарья Я.
Дарья Я.
Frontend Developer

Ошибки и мифы: почему микроразметка может не работать

Разметка не совпадает с контентом: нельзя указывать цены, рейтинги или хлебные крошки, которых пользователь не видит. Несоответствие может привести к ручным санкциям (manual action) и полному исчезновению rich snippets для всего сайта.

Несуществующие свойства: Schema.org — это строгий словарь. Свойства пишутся в camelCase. Частые ошибки:

  • Придуманные поля (productColor вместо color)
  • Опечатки (avalability вместо availability)
  • Неверный регистр (PriceCurrency вместо priceCurrency)

Валидатор покажет warning, но поисковик просто проигнорирует некорректные поля.

Дублирование разметки: не используйте Microdata и JSON-LD для одного и того же объекта на одной странице. Это путает роботов.

Битая связность (@id): если используются идентификаторы @id для связи объектов (например, автора и статьи), но сами объекты не описаны полностью, Google выдаст ошибку связности данных.

Переизбыточность: не пытайтесь заполнить все 40 полей, которые предлагает Schema. Лучше 5–7 ключевых и точных свойств, чем полотно из лишней информации.

Бесполезные страницы: нет смысла размечать корзину, личный кабинет, страницы регистрации или страницы, закрытые в robots.txt (noindex). Роботы туда либо не зайдут, либо не выведут их в поиск.

Завышенные ожидания: чего НЕ стоит ждать от Schema.org

Микроразметка — это мощный инструмент, но не «волшебная таблетка». Важно понимать её ограничения:

  • Это не фактор ранжирования. Schema.org не поднимет сайт в топ. Она влияет на кликбейтовость (CTR), но не на позицию в списке.
  • Не гарантирует показ rich snippets. Даже идеально валидная разметка — это лишь запрос к поисковику. Google сам решает, когда и для какого пользователя показать расширенный сниппет, а когда оставить обычную ссылку.
  • Не заменяет качественный контент. Если сам текст на странице слабый или бесполезный, никакая разметка не заставит пользователя на него нажать.

Заключение

Микроразметка — это не просто «дополнительные теги», это прямой канал связи с алгоритмами поисковых систем и нейросетей. В мире, где за внимание пользователя борются миллионы ссылок, структурированные данные становятся вашим главным невидимым преимуществом.

Ключевые моменты:

  • JSON-LD — стандарт де-факто. Забудьте про раздутый HTML. Используйте чистые, читаемые скрипты, которые легко масштабировать в любом современном фреймворке.
  • CTR вместо позиций. Сама по себе разметка не поднимет вас в топ-1, но она сделает ваш сниппет «звездным». В поиске выигрывает не тот, у кого больше текста, а тот, на кого хочется кликнуть.
  • Связи важнее ключей. Помогайте роботам объединять сущности: автора со статьей, товар с брендом. Чем понятнее ваш «граф данных», тем выше доверие поисковой системы.
  • Валидация обязательна. Одна лишняя запятая может «погасить» ваши звезды в выдаче. Проверяйте код до релиза и мониторьте Search Console после.
Микроразметка — это инвестиция в долгосрок. Пока конкуренты надеются на «магию ключевых слов», вы создаете цифровой паспорт своего контента. Начните с базовых сущностей и постепенно расширяйте карту данных вашего сайта.
Яна К.
Яна К.
Frontend Developer

И помните в эпоху AI-поиска выигрывает тот, чей контент лучше структурирован для машин и полезнее для людей. Сделайте свой сайт понятным для ИИ уже сегодня, и завтра вы станете для него первоисточником.

Примеры конкретных схем с готовым кодом — в следующей статье.

Блог

Читайте также

Все материалы
Как мы обновили библиотеки под новую архитектуру React Native

Разработка

Как мы обновили библиотеки под новую архитектуру React Native

Рассказываем о миграции на новую архитектуру React Native и о том, почему откладывать больше было нельзя.

Live Activities в фудтехе: как одна фича решает три бизнес-проблемы

Разработка

Live Activities в фудтехе: как одна фича решает три бизнес-проблемы

Разберём по фактам, когда это действительно работает, а когда — просто красивая игрушка.

На что мы потратили 100 часов дизайна, чтобы в итоге спасти год разработки

Разработка

На что мы потратили 100 часов дизайна, чтобы в итоге спасти год разработки

Что помогло нам не утонуть в постоянных изменениях, а спокойно перестраивать интерфейс и бизнес-логику под новые вводные

Один репозиторий, чтобы править всеми: как переиспользование кода экономит недели разработки

Разработка

Один репозиторий, чтобы править всеми: как переиспользование кода экономит недели разработки

Рассказываем, как отказ от «универсального» продукта помогает запускать новые приложения за два дня

Разработчики тоже умеют слушать: как мы проводим кастдев для заказчиков

Разработка

Разработчики тоже умеют слушать: как мы проводим кастдев для заказчиков

Расскажем, как проводим кастдев в реальных проектах и как с его помощью не просто проверить гипотезы, а выстроить продукт, который действительно работает

Внедрение .cursor/rules в Admiral для быстрой разработки административных панелей

Разработка

Внедрение .cursor/rules в Admiral для быстрой разработки административных панелей

Расскажем, как внедрение .cursor/rules обеспечивает стандартизацию и качество кода

Как настроить баннер cookie-согласия по требованиям GDPR, Google Consent Mode и законодательства разных стран

Разработка

Как настроить баннер cookie-согласия по требованиям GDPR, Google Consent Mode и законодательства разных стран

Рассказываем, как обеспечить соответствие баннера стандартам