Cодержимое Турбо-страницы не соответствует оригинальной версии
Cодержимое Турбо-страницы не соответствует оригинальной версии (в содержимом тега CDATA
найдены закодированные символы). Такое сообщение возникает у многих пользователей, которые настроили Яндекс Турбо-страницы на своем сайте. Давайте разберемся как исправить данную ошибку.
Как сделать вывод Турбо-страниц
Что такое Яндекс Турбо-страницы я описывал в данной статье — «Яндекс» запустил в поиске «турбо-страницы» — аналог Google AMP.
Для генерации Турбо-страниц в WordPress есть несколько плагинов. Свой выбор я сделал в пользу Yandex.News Feed by Teplitsa. Данный плагин легко настраивается, поэтому смысла в его описании нет.
Причина ошибки «Cодержимое Турбо-страницы не соответствует оригинальной версии»
Проанализировав предупреждения «Cодержимое Турбо-страницы не соответствует оригинальной версии» в Yandex.Вебмастер с помощью раздела Отладка Турбо-страниц, можно легко определить, что валидатору не нравятся экранированные теги. Вероятнее всего Яндекс не хочет, чтобы в ленте экранировали html теги. Поэтому данное предупреждение возникает на всех страницах, где в тексте есть исходный код.
На моем сайте исходники и куски кода встречаются часто, например, в статье «Добавить Яндекс Карты на сайт для построения маршрута».
Избавляемся от «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('/«/', '"', $turbo_content);
$turbo_content = preg_replace('/»/', '"', $turbo_content);
$turbo_content = preg_replace('/”/', '"', $turbo_content);
$turbo_content = preg_replace('/'/', '\'', $turbo_content);
$turbo_content = preg_replace('/ /', ' ', $turbo_content);
$turbo_content = preg_replace('/ /', ' ', $turbo_content);
$turbo_content = preg_replace('/—/', '-', $turbo_content);
$turbo_content = preg_replace('/–/', '–', $turbo_content);
$turbo_content = preg_replace('/&/', '&', $turbo_content);
$turbo_content = preg_replace('/</', '<', $turbo_content);
$turbo_content = preg_replace('/>/', '>', $turbo_content);
Сохраняем изменения.
Проверяем новую генерацию в Отладчике Турбо-страниц и радуемся результату.
Надо быть внимательным, потому что теперь html теги не конвертируются и появляется опасность XSS уязвимостей.
Хочу заметить, что после очередного обновления плагина придется делать данные изменения заново, если конечно разработчик не внесет решение данной проблемы в обновление плагина.
Можно не исправлять данные предупреждения, т.к. страницы все равно попадают в индекс Яндекса. Для проверки Турбо-страницы можно воспользоваться ссылкой вида: https://yandex.ru/turbo?text=, где — адрес вашей страницы.
Например, https://yandex.ru/turbo?text=https://pogrommist.ru/dobavit-yandex-maps-na-site-dlja-postroenija-marshruta/