Выдано 129074 лицензии

Запрет индексации поисковыми системами страниц, для которых отключена индексация внутри системы

Структура сайта, информационное элементы, товары и группы имеют опцию "Индексировать". Данная опция влияет на индексацию встроенной поисковой системой, однако ее можно использовать и для запрета индексации таких страниц поисковыми системами.

В код основного макета в секцию <head> внесите следующий код:

<?php
// Запрет на индексацию узла структуры
$bNoindex = !Core_Page::instance()->structure->indexing;

if (!$bNoindex)
{
	if (is_object(Core_Page::instance()->object))
	{
		if (Core_Page::instance()->object instanceof Informationsystem_Controller_Show)
		{
			if (Core_Page::instance()->object->item)
			{
				$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', intval(Core_Page::instance()->object->item));
				$bNoindex = !$oInformationsystem_Item->indexing;
			}
			elseif (Core_Page::instance()->object->group)
			{
				$oInformationsystem_Group = Core_Entity::factory('Informationsystem_Group', intval(Core_Page::instance()->object->group));
				$bNoindex = !$oInformationsystem_Group->indexing;
			}
		}
		elseif (Core_Page::instance()->object instanceof Shop_Controller_Show)
		{   
			if (Core_Page::instance()->object->item)
			{
				$oShop_Item = Core_Entity::factory('Shop_Item', intval(Core_Page::instance()->object->item));
				$bNoindex = !$oShop_Item->indexing;
			}
			elseif (!is_array(Core_Page::instance()->object->group))
			{
				$group_id = is_array(Core_Page::instance()->object->group)
					? Core_Array::first(Core_Page::instance()->object->group)
					: intval(Core_Page::instance()->object->group);
					
				$oShop_Group = Core_Entity::factory('Shop_Group', $group_id);
				$bNoindex = !$oShop_Group->indexing;
			}
			elseif (// Нет примененного SEO-фильтра
				is_null(Core_Page::instance()->object->filterSeo)
				// Условия фильтра заданы по свойствам, ценам или производителю
				&& (count(Core_Page::instance()->object->getFilterProperties())
					|| count(Core_Page::instance()->object->getFilterPrices())
					|| Core_Page::instance()->object->producer
				)
			)
			{
				$bNoindex = TRUE;
			}
		}
	}
}

if ($bNoindex)
{
   ?><meta name="robots" content="noindex, follow" /><?php
   echo PHP_EOL;
}
?>

Дополнительно см. Запрет на индексацию фильтра, построенного через ЧПУ.

Не нашли ответ на свой вопрос в документации? Направьте обращение в или онлайн чат.

Комментарии

  • maria.ats

    Версия от 6,9,4

    При работе в версиях от 6.9.4 и кодом быстрых фильтров этот код срабатывает на всех страницах магазина как <meta name="robots" content="noindex, follow" />

    17.10.2020 20:14:07 maria.ats

    Без темы

    Причиной этого может являться то, что у вас у контроллера ->group представлен в виде массива. Код примера обновлён.

    19.10.2020 09:36:25 hostcms