В первую очередь хочу сказать, что SEO-инструменты в Битрикс реализованы действительно на очень высоком уровне. Более того, эти инструменты удобны для обеих сторон, как для клиентов, так и для разработчиков. Первый может легко настроить пользовательские параметры SEO через панель пользователя без каких-либо трудностей. Последний может расширить базовый функционал в соответствии с рекомендациями сео-специалистов.

В большинстве случаев, если у вас есть задачи от SEO-специалистов, вы можете решить проблему «из коробки». Однако иногда вы не можете этого сделать, и в этой ситуации я хотел бы описать, как мы можем решить эту проблему. Давайте возьмем один пример, когда вы должны изменить теги, такие как заголовок, описание и ключевые слова в разделе каталога интернет-магазина.

В основном за просмотр страницы каталога отвечает компонент битрикс catalog.section. В этом случае вы можете расширить базовую функциональность через файл component_epilog.php. Кроме того, я хотел бы сказать, что очень важно использовать для наших нужд именно этот компонентный файл, потому что он не кэширует данные в системе. Если вам нужно получить текущие данные раздела шаблона iprop, вы можете использовать функцию ниже:

if(!function_exists('getSectionTemplateValue'))
{
    function getSectionTemplateValue( $iblockId, $sectionId, $seoCode )
    {
        $obIpropTemlates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $sectionId);
        $arrIpropertyTemplates = $obIpropTemlates->findTemplates();
        $resultSection =  \Bitrix\Iblock\Template\Engine::process(
                new \Bitrix\Iblock\Template\Entity\Section($sectionId),
                $arrIpropertyTemplates[$seoCode]['TEMPLATE']
            );
        return $resultSection;
    }
}

После того, как вы получите данные раздела iprop, такие как заголовок или описание. Вы можете добавить собственные данные для существующих или полностью заменить их. Следующим шагом является установка значения свойства страницы и проверка результата. Мы можем сделать это, как описано ниже:

$oldTitleValue = getSectionTemplateValue(10, 150, "PAGE_TITLE");
$newTitleValue = $oldTitleValue.' the best category section';
$APPLICATION->SetPageProperty("title", $newTitleValue);

Это небольшой пример того, как мы можем установить SEO-данные на странице. Однако, исходя из этого, мы можем реализовывать разнообразные задачи.