Программа и запуск — разные сущности
Курс как учебная программа и конкретный набор на него с датами и преподавателем — разные вещи. Программа существует постоянно, а запусков может быть много. В разметке им соответствуют два типа.
| Тип | Что описывает | Пример свойств |
|---|---|---|
Course | Учебную программу как таковую | Название, описание, провайдер, уровень |
CourseInstance | Конкретный запуск курса | Формат, даты, преподаватель, место |
Как устроена разметка
Основные свойства
nameиdescription— название и краткое описание курса.provider— организация, которая проводит обучение.hasCourseInstance— запуск курса: формат (courseMode), даты, преподаватель.offers— стоимость обучения.- Дополнительно: язык (
inLanguage), уровень подготовки, требуемое время.
Пример разметки
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Основы технического SEO",
"description": "Курс о том, как подготовить сайт к индексации.",
"provider": {
"@type": "Organization",
"name": "Школа Пример",
"sameAs": "https://example.ru/"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"startDate": "2026-10-05",
"endDate": "2026-11-30",
"instructor": { "@type": "Person", "name": "Анна Иванова" }
},
"offers": {
"@type": "Offer",
"price": "15000",
"priceCurrency": "RUB"
}
}
</script>
Формат обучения
Свойство courseMode сообщает, как проходит обучение: очно, онлайн или смешанно. Значение должно соответствовать тому, что написано на странице курса.
Правила
- Описание курса должно быть содержательным: система не любит разметку с пустыми или шаблонными текстами.
- Даты запуска обновляйте: прошедший запуск без актуальной даты вводит в заблуждение.
- Для каждого курса — отдельная страница со своей разметкой.
Связь: организацию-провайдера описывайте один раз и ссылайтесь на неё по идентификатору — этому посвящена статья про @id и связывание сущностей.
Значения формата обучения
Свойство courseMode сообщает, как проходят занятия. Обычно используют такие значения:
| Значение | Что означает |
|---|---|
Online | Обучение проходит онлайн |
Onsite | Занятия проходят очно |
Blended | Смешанный формат: часть онлайн, часть очно |
Несколько запусков одного курса
Когда курс проводится регулярно, программа описывается один раз, а запуски добавляются отдельными описаниями CourseInstance. Так удобно поддерживать данные:
- описание курса остаётся неизменным;
- новый запуск добавляется отдельным элементом с датами и преподавателем;
- завершившийся запуск убирается или заменяется актуальным.
Дата старта должна совпадать с датой на странице набора — иначе разметка вводит в заблуждение.
Курсы и отзывы учеников
Если у курса есть отзывы выпускников, их можно описать теми же типами Review и AggregateRating, о которых шла речь в отдельной статье про отзывы и рейтинг. Требования те же: отзывы настоящие, видны на странице, а итоговая оценка соответствует им. Не используйте отзывы, собранные на сторонних площадках, если пользователь не может увидеть их на вашей странице.
Частые вопросы
Чем Course отличается от CourseInstance?
Course описывает учебную программу в целом, а CourseInstance — её конкретный запуск с датами, форматом и преподавателем.
Нужно ли указывать стоимость курса?
Не обязательно, но если цена есть на странице, её лучше отразить в разметке типом Offer с валютой.
Что делать после завершения набора?
Обновить данные запуска или заменить их на следующий набор, чтобы разметка не содержала устаревших дат.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.