Creating the RSS feed for Turbo pages. Description and technical requirements

Description and requirements for the RSS feed for using Turbo pages in the Yandex search results.

Note. After you notify Yandex about the page, you can turn on showing Turbo pages in Yandex.Webmaster. To change the appearance and content of the pages, use the RSS feed.

Turbo pages are generated based on the site's pages. The data for Turbo pages is exported in XML-based RSS 2.0 format.

  1. Description of RSS 2.0 elements
  2. Updating the Turbo page
  3. Export file example

Description of RSS 2.0 elements

The root element of an RSS file is rss, with the version attribute set to 2.0.

<rss
    xmlns:yandex="http://news.yandex.ru"
    xmlns:media="http://search.yahoo.com/mrss/"
    xmlns:turbo="http://turbo.yandex.ru"
    version="2.0">
    ...
</rss>

To generate a Turbo page, send the following information:

...
    <channel><!--Source site (RSS feed) information-->
        ...
        <item turbo="true"><!--Page information-->
            ...
            <turbo:content>...</turbo:content><!--Page content-->
            ...
        </item>
    </channel>
</rss>
  1. Sending information about the source site
  2. Sending the information about the page
  3. Sending the page content
  4. Characters and encodings

Sending information about the source site

The data is passed in the channel element.

ElementDescription
title

The name of the RSS feed.

If you export the content of the whole site, enter the site name. If you export a site section, enter just the section title.

<title>The RSS feed title</title>
link

Domain of the site from which the data is passed.

<link>http://www.example.com</link>
description

Channel description in one sentence. Don't use HTML markup.

<description>Short description of the feed</description>
language
The article language in ISO 639-1 format.
<language>ru</language>
yandex:analytics

Traffic counter for Turbo pages.

You can specify several Yandex.Metrica counters and one counter per every other system.

To count the Turbo pages traffic with multiple web analytics systems, add multiple yandex:analytics elements to the channel element:
yandex:adNetwork

Use it to display Yandex advertising network ad blocks and third-party adverts placed on Turbo pages with ADFOX. Also, use it to track the advertising revenue from Turbo pages. The element is added once.

To set the ad block location on the page, specify alphabetic IDs in the turbo-ad-id attribute. For example, first_ad_place, second_ad_place. To specify the actual location of the ad on the page, add the same attribute to the figure element nested in the turbo:content element.

If the turbo-ad-id attribute is not specified, the ad will be placed at the end of the Turbo page.

item*

Page and content information.

To use the Turbo pages format, add theturbo attribute set to true. To disable the display of a Turbo page, set the value to false. For details, see the Controlling display of Turbo pages section.

...
    <item turbo="true">
        ... 
    </item>

One item element describes one page.

* Required element.

Sending the information about the page

The data is sent in the item element.

ElementDescription
link*

Source page URL.

<link>http://www.example.com/page1.html</link>
Requirements:
  • The link must contain the HTTP or HTTPS prefix.
  • The link domain must be the same as the source site domain.
  • Maximum URL length is 243 ASCII characters.
  • A URL must contain one article.

When the link is clicked, the header and the beginning of the text should fit the first screen at the 1024 × 768 resolution.

pubDate*

The time when the content was published on the source site.

Sent in RFC-822 format.

<pubDate>Tue, 21 Apr 2015 14:15:00 +0300</pubDate>
authorThe author of the article published on the page.
<author>Ivan Ivanov</author>
turbo:content*

Page content.

yandex:related

A section with links to other site pages. Contains the link element. The number of nested elements is unlimited.

To add an image to the article, use the img attribute with the image URL.

The text wrapped into the link element shouldn't contain the HTML elements.
<yandex:related>
<link url="http://www.example.com/page.html" img="http://www.example.com/image.png">Link text</link>
</yandex:related>

* Required element.

Sending the page content

Turbo page content is sent in the turbo:content element. The contents should be wrapped in the <![CDATA[]]> tag.

Characters and encodings

In the export file, specify the encoding sent by your server. The most commonly used encodings are: UTF-8, Windows-1251, KOI8-R.

In all nested elements of channel and item, encode the following characters:

CharacterNameReplacement code
&Ampersand&
>Right angle bracket>
<Left angle bracket<
"Inverted commas"
'Apostrophe'

For example, the link http://example.com/?id=1&page=10 should look like http://example.com/?id=1&page=10.

Updating the Turbo page

To update the information about the Turbo page and its content:
  1. Edit the RSS file on your site server. The Yandex robot downloads the file every hour.
    Note. The file must be accessible via the HTTP or HTTPS protocol. If a robot couldn't download it for 10 seconds, the file is considered unaccessible. In this case, a loading error is displayed in the Turbo pages section of Yandex.Webmaster.
  2. Yandex has several indexing robots. The RSS feed is downloaded by the main robot. To index the file, add the Allow directive to the robots.txt file:

    User-agent: YandexBot
    Allow: /file.rss
    ...
    #the last line must be empty

    You can of the robots.txt file in the Yandex.Webmaster.

    If you use the Crawl-delay directive in the robots.txt file, specify it for the robot separately (with a value from 0.1 to 2).

    User-agent: YandexBot
    Allow: /file.rss
    Crawl-delay: 0.1
    ...
    #the last line must be empty

If you don't want the robot to check the RSS feed, in the Turbo pages section of Yandex.Webmaster, set the option next to the source to the Off position.

Export file example

    <?xml version="1.0" encoding="windows-1251"?>
    <rss
        xmlns:yandex="http://news.yandex.ru"
        xmlns:media="http://search.yahoo.com/mrss/"
        xmlns:turbo="http://turbo.yandex.ru"
        version="2.0"
    >
        <channel>
            <title>Rss feed title</title>
            <link>http://www.example.com/</link>
            <description>Short description of RSS feed</description>
            <yandex:analytics type="Yandex" id="123456"></yandex:analytics>
            <yandex:adNetwork type="AdFox" turbo-ad-id="first_ad_place">
                <![CDATA[
                    <div id="container ID"></div>
                    <script>
                        window.Ya.adfoxCode.create({
                            ownerId: 123456,
                            containerId: 'container ID',
                            params: {
                                pp: 'g',
                                ps: 'cmic',
                                p2: 'fqem'
                            }
                        });
                    </script>
                 ]]>
             </yandex:adNetwork>
             <item turbo="true">
                 <link>http://www.example.com/page1.html</link>
                 <author>Ivan Ivanov</author>
                 <category>Technologies</category>
                 <pubDate>Sun, 29 Sep 2002 19:59:01 +0300</pubDate>
                 <turbo:content>
                     <![CDATA[
                         <header>
                             <figure>
                                 <img src="http://example.com/img.jpg" />
                             </figure>
                             <h1>Page header</h1>
                         </header>
                         <h2>Page header</h2>
                         <p>Text with <b>formatting</b> and a list:</p>
                         <ul>
                             <li>item 1;</li>
                             <li>item 2.</li>
                         </ul>
                         <figure data-turbo-ad-id="first_ad_place"></figure>
                         <figure>
                             <video>
                                 <source src="https://example.com/video.mp4" type="video/mp4" />
                             </video>
                             <img src="http://example.com/img-for-video.jpg" />
                             <figcaption>Video caption</figcaption>
                         </figure>
                      ]]>
                  </turbo:content>
                  <yandex:related>
                      <link url="http://www.example.com/other-page.html" img="http://www.example.com/image.jpg">Link text</link>
                  </yandex:related>
              </item>
          </channel>
      </rss>