Скрипт для удаления турбо-страниц Яндекса сайта на 1С-Битрикс

Чтобы удалить турбо-страницы Яндекса не достаточно просто отключить xml фид со страницами. То, что Яндекс уже забрал себе - остается у него. Для того, чтобы дать команду на удаление турбо-страницы - необходимо Яндексу передать файл с перечнем страниц, которые надо удалить. Более подробно тут: https://yandex.ru/dev/turbo/doc/concepts/display-controlling.html

Далее приводим инструкцию и php-код по формированию такого файла, для удаления турбо-страниц всех страниц инфоблока для 1С-Бирикс.

  1. Вначале создаем файл, можно в корне сайта. Например: delete_turbo.php
  2. В содержимое этогофайла вставляем такой код:
    <?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 - заменяем на свое доменное имя
  3. Добавляем URL адрес этого файла в источники турбо-страниц.

Через несколько апдейтов Яндекс уберет ваши турбостраницы.

При необходимости, можно добавить фильтр, чтобы файл формировался из определенных страниц, а не всех элементов инфоблока.