Cодержимое Турбо-страницы не соответствует оригинальной версии

в Программирование

Cодержимое Турбо-страницы не соответствует оригинальной версии

Cодержимое Турбо-страницы не соответствует оригинальной версии (в содержимом тега <![CDATA[]]> найдены закодированные символы). Такое сообщение возникает у многих пользователей, которые настроили Яндекс Турбо-страницы на своем сайте. Давайте разберемся как исправить данную ошибку.

Как сделать вывод Турбо-страниц

Что такое Яндекс Турбо-страницы я описывал в данной статье – «Яндекс» запустил в поиске «турбо-страницы» — аналог Google AMP.

Для генерации Турбо-страниц в WordPress есть несколько плагинов. Свой выбор я сделал в пользу Yandex.News Feed by Teplitsa. Данный плагин легко настраивается, поэтому смысла в его описании нет.

Причина ошибки “Cодержимое Турбо-страницы не соответствует оригинальной версии”

Проанализировав предупреждения “Cодержимое Турбо-страницы не соответствует оригинальной версии” в Yandex.Вебмастер с помощью раздела Отладка Турбо-страниц, можно легко определить, что валидатору не нравятся экранированные теги. Вероятнее всего Яндекс не хочет, чтобы в ленте экранировали html теги. Поэтому данное предупреждение возникает на всех страницах, где в тексте есть исходный код.

Cодержимое Турбо-страницы не соответствует оригинальной версии

На моем сайте исходники и куски кода встречаются часто, например, в статье  “Добавить Яндекс Карты на сайт для построения маршрута”.

Избавляемся от “Cодержимое Турбо-страницы не соответствует оригинальной версии”

Мы выяснили в чем проблема, теперь давайте ее решать. Для этого нам необходимо отредактировать плагин, который у нас генерирует Турбо-страницы.

Дальше описываю способ решения для плагина “Yandex.News Feed by Teplitsa“.

В WordPress переходим в Плагины – Редактор. Выбираем наш плагин и в редакторе открываем файл yandexnews-feed-by-teplitsa/inc/tst-yandex-feed-core.php.

Ищем строчку:

$turbo_content = preg_replace('/[\x00-\x1F\x7F]/u', '', $turbo_content);

И вставляем после нее следующий код:

$turbo_content = preg_replace('/&#171;/', '"', $turbo_content);
$turbo_content = preg_replace('/&#187;/', '"', $turbo_content);
$turbo_content = preg_replace('/&#8221;/', '"', $turbo_content);
$turbo_content = preg_replace('/&#39;/', '\'', $turbo_content);
$turbo_content = preg_replace('/&nbsp;/', ' ', $turbo_content);
$turbo_content = preg_replace('/&#160;/', ' ', $turbo_content);
$turbo_content = preg_replace('/&mdash;/', '-', $turbo_content);
$turbo_content = preg_replace('/&#8211;/', '–', $turbo_content);
$turbo_content = preg_replace('/&amp;/', '&', $turbo_content);
$turbo_content = preg_replace('/&lt;/', '<', $turbo_content);
$turbo_content = preg_replace('/&gt;/', '>', $turbo_content);

Сохраняем изменения.

Проверяем новую генерацию в Отладчике Турбо-страниц и радуемся результату.

Надо быть внимательным, потому что теперь html теги не конвертируются и появляется опасность XSS уязвимостей.

Избавляемся от "Cодержимое Турбо-страницы не соответствует оригинальной версии"

Хочу заметить, что после очередного обновления плагина придется делать данные изменения заново, если конечно разработчик не внесет решение данной проблемы в обновление плагина.

Можно не исправлять данные предупреждения, т.к. страницы все равно попадают в индекс Яндекса. Для проверки Турбо-страницы можно воспользоваться ссылкой вида: https://yandex.ru/turbo?text=<url>, где <url> – адрес вашей страницы.

Например, https://yandex.ru/turbo?text=https://pogrommist.ru/2018/10/dobavit-yandex-maps-na-site-dlja-postroenija-marshruta/

Полезный текст? Поделись с друзьями!

Оставить комментарий

Комментарии

  1. Сделал. Для проверки Турбо-страницы можно воспользоваться ссылкой . Решил проверить. Вставляю ссылку, свой УРЛ. Пишет: ошибка.

    • Тут либо ошибка на стороне сервиса (временно не работает), либо страница у вас новая и еще не попала в индекс Турбо-страниц.