Найти тему
S-WEBS24

Как задать meta-теги для умного фильтра в 1С-Битрикс

Смарт-фильтры в 1С-Битрикс экономят массу времени программистов, но совсем не заботятся о СЕО-оптимизаторах. Дело в том, что отфильтрованные страницы как таковые редактировать довольно затруднительно, а следовательно, не всегда удается проставить все необходимые meta-теги для продвижения. Мы же нашли решение данной проблемы и делимся с вами.

Сначала разберем имеющиеся положения умного фильтра. Задав конкретные параметры поиска товаров, мы получим некоторую страницу. Товары будут отображаться исходя из заданных фильтров. Вопрос лишь в том, как будут формироваться title, description, h1 и keywords данной страницы? Все очень просто – они не изменятся. Естественно, для СЕО-оптимизации так не пойдет, поэтому необходимо каким-то образом настроить смену meta-тегов, исходя из заданных фильтров.

Meta-информация с помощью highload инфоблоков

Чтобы начать работать с meta-тегами отфильтрованных страниц необходимо создать highload инфоблок, содержащий всю необходимую информацию для поисковиков в виде следующих полей:

  • UF_URL - для занесения url результата фильтрации в ЧПУ;
  • UF_TITLE- для title;
  • UF_DESCRIPTION - для description;
  • UF_KEYWORDS - для keywords;
  • UF_H1 - для H1.

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

Чтобы все это заработало необходимо в файле component_epilog в шаблоне компонента catalog.section прописать следующее:

$arHLBlock = HighloadBlockTable::getList(array('filter' => array('TABLE_NAME' => $strIblockData)))->fetch();
$obEntity = HighloadBlockTable::compileEntity($arHLBlock);
$strEntityDataClass = $obEntity->getDataClass();
$arQuery = array();
$arQuery['filter'] = array( '=UF_URL' => trim($APPLICATION->GetCurPage(false)))
$dbData = $strEntityDataClass::getList($arQuery);
$arMeta = $dbData->fetch();

$APPLICATION->SetPageProperty('title', $arMeta['UF_TITLE']);
$APPLICATION->SetPageProperty(description, $arMeta['UF_DESCRIPTION']);
$APPLICATION->SetPageProperty(keywords, $arMeta['UF_KEYWORDS']);
$arResult[‘H1’] = $arMeta['H1'];

В результате, в самом разделе, а вернее в его шаблоне, останется только задать поля для H1 и текста.

https://s-webs.ru/blog/kak-zadat-meta-tegi-dlya-umnogo-filtra-v-1s-bitriks/