Турбо-страницы позволяют пользователям посмотреть «легкую» версию сайта, которая загружается быстрее в десятки раз, а ведь это увеличивает вероятность, что посетитель останется на странице и найдет нужную информацию. Также на такие страницы можно добавить рекламные блоки и веб-аналитику.
Полное руководство на yandex.ru/support/webmaster/turbo
Количество символов в элементах <title> , <h1> |
240 |
Общее количество картинок в RSS-канале | 5000 |
Количество картинок в одном элементе <item> |
30 |
Количество элементов <item> |
500 |
Размер RSS-канала | 15 МБ |
Максимальное количество ссылок в элементе <menu> |
10 |
<?php
// Локаль.
setlocale(LC_ALL, 'ru_RU');
date_default_timezone_set('Europe/Moscow');
$url = 'http://site.com';
$out = '<?xml version="1.0" encoding="UTF-8"?>
<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>НАЗВАНИЕ_САЙТА</title>
<link>' . $url . '</link>
<description>ОПИСАНИЕ_САЙТА</description>
<language>ru</language>
<turbo:analytics id="КОД_ЯНДЕКС_МЕТРИКИ" type="Yandex" params=""></turbo:analytics>';
$dbh = new PDO('mysql:dbname=DB_NAME;host=localhost', 'ЛОГИН', 'ПАРОЛЬ');
$sth = $dbh->prepare("SELECT `name`, `text` FROM `articles`");
$sth->execute();
$articles = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($articles as $row) {
$text = $row['text'];
// Удаление лишних тегов.
$text = strip_tags($text, '<p><img><iframe><br><ul><ol><li><b><strong><i><em><sup><sub><ins><del><small><big><pre></pre><abbr><u><a>');
// Замена относительных ссылок.
$text = str_replace('src="/', 'src="' . $url . '/', $text);
$text = str_replace('href="/', 'href="' . $url . '/', $text);
$out .= '
<item turbo="true">
<link>' . $url . '/URL_СТРАНИЦЫ</link>
<turbo:content>
<![CDATA[
<header>
<h1>' . $row['name'] . '</h1>
<menu>
<a href="' . $url . '/">О сайте</a>
<a href="' . $url . '/articles">Статьи</a>
<a href="' . $url . '/news">Новости</a>
</menu>
</header>
' . $text . '
]]>
</turbo:content>
</item>';
}
$out .= '
</channel>
</rss>';
header('Content-Type: text/xml; charset=utf-8');
echo $out;
<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>Snipp.ru</title>
<link>http://snipp.ru</link>
<description/>
<language>ru</language>
<item turbo="true">
<link>http://snipp.ru/view/113</link>
<turbo:content>
<![CDATA[
<header>
<h1>Релевантный поиск c помощью LIKE</h1>
<menu>
<a href="http://snipp.ru/">О сайте</a>
<a href="http://snipp.ru/articles">Статьи</a>
<a href="http://snipp.ru/news">Новости</a>
</menu>
</header>
<p>Например, на сайте статей есть поиск, он ищет ключевое слово по полям:
название статьи, title и основной текст. SQL запрос получается следующим:</p>
]]>
</turbo:content>
</item>
</channel>
</rss>
Далее URL фида нужно добавить в источники Турбо-страниц в Яндекс вебмастере, и после проверки в поисковой выдаче появится у иконка:
А сам сайт и меню будет следующего вида:
![]() |
![]() |
Для удаление статьи из выдачи нужно перевести атрибут turbo
в false
:
<item turbo="false">
...
</item>
Если отключить и удалить в вебмастере источник (ссылку на RSS канал), то в выдаче Яндекса турбо-страницы все равно останутся. Для полного удаления нужно вернуть источник и выставить false
для всех статей.
Подскажите, пожалуйста, как сделать вывод последних 20 новостей?