Online educational courses and lessons
Applicable sites
Sites offering courses and other educational services that are held online.
What is added to the search results
A response with a selection of courses, information about the source site and the training price. A user who is looking for information about educational services can compare several courses and take the one that interests them.
How to set it up
To include your offers in such responses, send information about them to Yandex. To do this, prepare a feed in the YML format. The YML standard was developed by Yandex and is based on the XML standard. A feed is a file which you send information about your products in. It describes the offers
combined into sets
and categories
, to which the offer refers.
A response with information from the offers is generated in the search results.
Offers can also be automatically included in the response based on the processing of data from the Yandex search robot.
Feed requirements
-
The feed contains detailed information about properties of the site and the online training held. Each course must refer to a category in the unified course rubricator.
Feed restrictions
YML file size
200 MB
Total number of images
50,000
Number of images in one
offer
element200
Number of
offer
elements30,000. Data from a feed containing more offers will not be used for additional representation. The feed itself will load with an error. To have offers participate in the search, split the feed into several parts.
Don't duplicate offers with the same URL in multiple feeds, and also don't move offers from one feed to another — data from the moved offer may temporarily disappear from the search.
Number of elements
set
1 million
The total number of all YML files (product feeds, service and offer feeds, RSS for content Turbo pages) for the site and its subdomains
1000
You can also describe sets of courses from a random list of site courses.
Feed elements
The minimum set of feed elements. Mandatory ones are marked with an asterisk.
Site description elements (shop)
Element
Note
name
*Short site name. Up to 30 characters.
url
*The site URL.
email
*Email address for contact about online courses.
picture
*The site logo. Requirements:
- The minimum size is 100 × 100 pixels (square).
- PNG or SVG format.
- The logo can be on the background of any color. You don't have to additionally fit the logo into the circle.
If the logo is on a white background, fill the image area with the logo as much as possible. It helps increase the site brand awareness.
description
Site description for displaying on the site card.
currencies
*The list of currencies that the course prices are given in.
By default, prices are given in rubles (
currency id="RUR" rate="1"
). To transfer other currencies, indicate the exchange rate you are using as therate
attribute.sets
Sets of courses that are described using the name and
url
. To indicate the courses included in the set, use the set-ids element inside theoffer
element.Offer elements
Element
Note
name
*The name of the offer. Must be unique. If the courses have the same name, specify the difference between them in
name
, for example, "Java course. Level 1, Java course. Level 2".url
*The URL of the offer. Must be unique among all offers within all feeds of the same region. Tags (for example, UTM, Openstat, from) don't make the URL unique.
categoryId
*ID of the main course category from the unified rubricator of courses.
param name="Additional category"
ID of the additional course category from the unified course rubricator, if needed.
set-ids
Set IDs. You can list several sets separated by commas, for example:
s1,s2,s3
.price
*Price for the entire course. If there is no fixed price per course, then the value is
0
. If the value is0
and the monthly price isn't specified, then the course is considered free.currencyId
*Currency ID. For example,
RUR
for rubles.param name="Link to course content"
URL of course content. The internal course page where training is held. Can't be the same as url. Use the link to evaluate the quality of courses when ranking them in search results.
For example, the course
url
ishttps://example.com/courses/python-beginners
. After purchasing the course, the user is trained onhttps://example.com/education/python-beginners/home
. Specify this URL inparam name="Link to course content"
.If the course has many internal pages, then you can specify many values
param name=“Link to course content”
.param name="Price with a discount"
Number.
param name="Discount end date"
Date in the ISO 8601 format.
param name="Subscription price"
true
orfalse
(by default). Specifytrue
if the course is available on a subscription basis. The subscription price must be specified in theprice
element.param name="Payment by installments"
Number. Specifies the installment period, if any. By default, the parameter value is specified in months. Use the
unit
attribute to specify: day or month.param name="Monthly price"
Number. Fill it only to specify the monthly payment amount and not the monthly payment amount by installments. Availability of installments is indicated through the price for the entire course in the
price
element, and the installment period in theparam name="Payment by installments"
value.param name="Monthly price with a discount"
Number. Specify if a discount is available for the monthly course payment. Don't use a discount on the monthly course payment by installments.
param name="Monthly discount end date"
Date in the ISO 8601 format.
Param name="Nearest date"
Date in the ISO 8601 format. The value is mandatory for training formats:
independently with a mentor
andin a group with a mentor
.param name="Duration"
*Number. Use the
unit="unit"
attribute to specify hours, days, or months.param name="Plan"
*String. Describes the training program stages. The element must be repeated several times. 3 or more elements must be specified for the course. If there are less than three strings with
name="Plan"
, they are ignored.The program stage name is indicated in the
unit
attribute. The stage duration in hours is indicated in thehours
attribute. Theparam
value must describe the program stage content.param name="Plan"
strings are processed in a random order. You must explicitly specify the stage order in theorder
attribute. If the text value of the stage content is specified viaCDATA
text data, then it is split into strips using thestrip()
function for display.param name=“Training format"
Possible values:
Independently
(by default).Independently with a mentor
.In a group with a mentor
.With a teacher
.
param name="Has video tutorials"
true
orfalse
(by default). Specify the list of training methods.param name="Has text lessons"
true
orfalse
(by default). Specify the list of training methods.param name="Has webinars"
true
orfalse
(by default). Specify the list of training methods.param name="Has homework"
true
orfalse
(by default). Specify the list of training methods.param name="Has training simulators"
true
orfalse
(by default). Specify the list of training methods.param name="Has a community"
true
orfalse
(by default). Specify the list of training methods.param name="Complexity"
Possible values:
For beginners
(by default).For the experienced
.
param name="Training type"
Possible values:
Course
(by default).Profession
.
param name="Has a free part"
true
orfalse
(by default).param name="With employment"
true
orfalse
(by default). Based on the course results, assistance is provided from the employment platform. Must only be used for theprofession
training type.param name="Training result"
Possible values:
Сертификат
(Certificate).Diploma
.Identification
.
param name="Hours per week"
Number. The expected intensity of lessons.
param name="Classes"
String. The list of classes for which the course is intended. Used for educational school courses. You can specify comma-separated classes and class ranges. For example,
1,2,5-7,9
.picture
Link to the course logo.
description
*The course description: what it is about and who is the intended audience.
If important course parameters or parameter values are missing in the format description, contact support. The Search team will consider your feedback.
Category rubricator
Users can see your courses in search results by categories specified in the search query or choose the appropriate course in the generated result if you specify the category ID from the category rubricator for each course. The course can relate to different categories, so you can specify an additional course category using param name="Additional category".
Users are more likely to find a course in the narrow category “Web development” than in the root category “Programming”. Specify the ID of the narrow category for
categoryId
.View example
<categories> <category id="100">Programming</category> <category id="101" parentId="100">Web development</category> <category id="102" parentId="100">Android development</category> <category id="103" parentId="100">iOS development</category> <category id="104" parentId="100">Python development</category> <category id="105" parentId="100">Go development</category> </categories>
Guide for migration from the old feed version
Below is a description of the differences between the old feed format and the new one.
Added
The following elements were added:
Site description elements (shop)
Element
Note
name
*Short site name. Up to 30 characters.
picture
*The site logo. Requirements:
- The minimum size is 100 × 100 pixels (square).
- PNG or SVG format.
- The logo can be on the background of any color. You don't have to additionally fit the logo into the circle.
description
Site description for displaying on the site card.
Offer elements
param name="Additional category"
ID of the additional course category from the unified course rubricator, if needed.
param name="Link to course content"
URL of the internal course page where training takes place. May coincide with url. Use the link to evaluate the quality of courses when ranking them in search results.
For example, the course
url
ishttps://example.com/courses/python-beginners
. After purchasing the course, the user is trained onhttps://example.com/education/python-beginners/home
. Specify this URL inparam name="Link to course content"
.If the course has many internal pages, then you can specify many values
param name=“Link to course content”
.param name="Subscription price"
bool
field to support sites that provide courses by subscription.param name="Payment by installments"
The field that indicates that there is course payment by installments and contains the number of installment months (or days).
param name="Monthly discount end date"
The field to specify the monthly discount end date.
param name=“Training format"
Possible values:
Independently
(by default).Independently with a mentor
.In a group with a mentor
.With a teacher
.
param name="Has video tutorials"
The list of
bool
fields about training methods.param name="Has text lessons"
The list of
bool
fields about training methods.param name="Has training simulators"
The list of
bool
fields about training methods.param name="Has a community"
The list of
bool
fields about training methods.param name="Has a free part"
The field about availability of free classes.
param name="Classes"
The list of classes for which the course is intended. Used for educational school courses. You can specify comma-separated classes and class ranges. For example,
1,2,5-7,9
.Changed
Offer elements changed:
Element
Note
categoryId
*The course category rubricator is the same for all sites. Users apply it to find the course after specifying the course category in the search query or selecting it in the search results (the general “Programming” and “Android development” category inside it).
set-ids
Field became optional.
param name="Monthly price"
Fill it only to specify the monthly payment amount and not the monthly payment amount by installments. Availability of installments is indicated through the price for the entire course in the
price
element, and the installment period in theparam name="Payment by installments"
value.param name="Monthly price with a discount"
Specify if a discount is available for the monthly course payment. Don't use a discount on the monthly course payment by installments.
Param name="Nearest date"
The value is mandatory for training formats:
independently with a mentor
andin a group with a mentor
. Specify the start date of the next cohort in the course.param name="Duration"
*The available measurement units were reduced to the following values: hours, days, months.
If there is a start and end date of the cohort in the course, the approximate course duration in months or days must be calculated and specified.
param name="Plan"
*The element format changed.
String. Describes the training program stages. The element must be repeated several times. 3 or more elements must be specified for the course. If there are less than three strings with
name="Plan"
, they are ignored.The program stage name is indicated in the
unit
attribute. The stage duration in hours is indicated in thehours
attribute. Theparam
value must describe the program stage content.param name="Plan"
strings are processed in a random order. You must explicitly specify the stage order in theorder
attribute. If the text value of the stage content is specified viaCDATA
text data, then it is split into strips using thestrip()
function for display.param name="Has webinars"
The list of
bool
fields about training methods.param name="Has homework"
The list of
bool
fields about training methods. orfalse
(by default). Specify the list of training methods.param name="Complexity"
The element is no longer a random string. Specify a value from the list.
Possible values:
For beginners
(by default).For the experienced
.
param name="Training type"
The list of allowed values was reduced.
Possible values:Course
(by default).Profession
.
param name="Training result"
Instead of
Assigned qualification
andCertificate on completion
values there is one field with the list of allowed values.Possible values:
Сертификат
(Certificate).Diploma
.Identification
.
picture
Field became optional.
Removed
Offer elements removed:
param name="Flexible dates"
;param name="Flexible deadlines"
;param name="Has a trial period"
param name="Has a video"
;param name="Has tests"
;param name="Has practical tasks"
;param name="Has a teacher"
;param name="Assigned qualification"
;param name="Certificate on completion"
;param name="Course subscription link"
;param name="Link to the source"
.
How to send a feed
-
You can upload your feed:
In Yandex WebmasterBy using Yandex Webmaster APILog in to Yandex. Add the site to Yandex Webmaster and verify your management rights, or get access for your account from the site owner.
-
Go to the Services and offers in search → Feeds and errors page in Yandex Webmaster.
-
Click Upload feed.
-
Select the Education business category if the information is related to educational courses or lessons that are held online. For example, programming courses.
-
Specify the region. For example, if offers in the feed are available on the same terms in all regions, select Russia.
-
In the Link to file with offers field, enter the URL that looks like
https://example.com/feed.yml
.If your site has authorization configured to access the YML file, you can send the username and password along with the URL which it's available at. For example:
http://yandex:WE9h4FfBml@example.com/feed.yml
. -
Click Done.
For more information, see documentation.
Yandex Webmaster will check the feed. If it contains errors, a message about errors will appear in Yandex Webmaster on the Services and offers in search → Feeds and errors page. To learn more, click Errors next to the feed. Fix the errors, and Yandex Webmaster will check the feed again after a certain amount of time.
Also, the site and offers information will be checked by the quality control service within a few days. The feed can be rejected for violations of the rules.
-
Terms
The site must ensure that the data is correct and the offers match the subject. It is also responsible for dissemination of illegal information. In the event the terms are violated, Yandex has the right not to use the site data for changing the display in the search results.
The response position in the search results is determined by the general ranking principles: the pages that are most relevant to the query get higher positions. The order of the cards within the response is determined using research into user interaction with the cards to maximize conversion and surplus.
We strive to show information in search results that will be useful to a particular user. To take into account conversion data for ranking offers within the responses described on this page, we recommend installing Yandex Metrica on your service. This will make search results personalization more efficient.
Learn more about events in Yandex Metrica.
Page updated: August 31, 2023.
Change history
- Added more info about the
description
parameter in the table of offer elements.
Subscribe to updates
Element
Set IDs. You can list several sets separated by commas, for example: s1,s2,s3
.
Element
ID of the additional course category from the unified course rubricator, if needed.
Element
The URL of the offer. Must be unique among all offers within all feeds of the same region. Tags (for example, UTM, Openstat, from) don't make the URL unique.