Скрипт для удаления турбо-страниц Яндекса сайта на 1С-Битрикс
Чтобы удалить турбо-страницы Яндекса не достаточно просто отключить xml фид со страницами. То, что Яндекс уже забрал себе - остается у него. Для того, чтобы дать команду на удаление турбо-страницы - необходимо Яндексу передать файл с перечнем страниц, которые надо удалить. Более подробно тут: https://yandex.ru/dev/turbo/doc/concepts/display-controlling.html
Далее приводим инструкцию и php-код по формированию такого файла, для удаления турбо-страниц всех страниц инфоблока для 1С-Бирикс.
- Вначале создаем файл, можно в корне сайта. Например: delete_turbo.php
- В содержимое этогофайла вставляем такой код:
<?php define("NO_KEEP_STATISTIC", true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule('iblock'); header( "Content-Type:text/xml" ); echo '<?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> <?$rs = CIBlockElement::GetList( array(), array( "IBLOCK_ID" => 1, // Заменяем на ID своего инфоблока ), false, false, array("DETAIL_PAGE_URL") ); while($ar = $rs->GetNext()) { ?> <item turbo="false"> <link>https://protobyte.ru<?=$ar["DETAIL_PAGE_URL"]?></link> </item> <? }?> </channel> </rss> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
где: protobyte.ru - заменяем на свое доменное имя - Добавляем URL адрес этого файла в источники турбо-страниц.
Через несколько апдейтов Яндекс уберет ваши турбостраницы.
При необходимости, можно добавить фильтр, чтобы файл формировался из определенных страниц, а не всех элементов инфоблока.