Работа с SEO сайта через api


Несколько примеров работ с SEO данными api для страниц, инфоблоков, разделов, элементов

SEO поля для страницы
$APPLICATION->SetTitle("Заголовок H1"); 
$APPLICATION->SetPageProperty('title', 'заголовок окна браузера');
$APPLICATION->SetPageProperty("keywords", "ключевые слова"); 
$APPLICATION->SetPageProperty("description", "описание страницы"); 
Вывод на странице
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?= LANG_CHARSET;?>">
    <META NAME="ROBOTS" content="ALL">
    <?$APPLICATION->ShowMeta("keywords")?>
    <?$APPLICATION->ShowMeta("description")?>
    <title><?$APPLICATION->ShowTitle()?></title>
    <?$APPLICATION->ShowCSS();?>
</head>
<body>
...
В модуле "Управление структурой" задаётся свойство title - Заголовок окна браузера
В теге h1 будет выводиться всегда заголовок страницы, независимо от того задан title или нет.
В  теге title будет выводиться заголовок страницы, но если задано title - Заголовок окна браузера, то будет выводиться свойство страницы title - Заголовок окна браузера.
<title><?$APPLICATION->ShowTitle()?></title>
<h1><?$APPLICATION->ShowTitle(false)?></h1>

SEO поля элемента, раздела, инфоблока
$ipropValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($iblockId); //для инфоблока
$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($iblockId,$sectionId); //для раздела
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($iblockId,$elementId); //для элемента

$arSeoProps = $ipropValues->getValues();  //получить
$ipropValues->clearValues(); //очистить 
seo шаблоны элемента, раздела, инфоблока

$ipropTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId); //для инфоблока
$ipropTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId,$iblockSectionId); //для раздела
$ipropTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId,$iblockElementId); //для элемента

$arTemplates = $ipropTemplates->findTemplates(); //получить
$ipropTemplates->delete(); //удалить
//обновить
$arNewTemplates = array('SECTION_META_TITLE'=>"{=this.Name} - цена, купить в Москве");
$ipropTemplates->set($arNewTemplates); 
можно установить при добавлении или обновлении элемента, раздела, инфоблока

пример для елемента
$arFields["IPROPERTY_TEMPLATES"]  = array(
       "ELEMENT_META_TITLE"                    =>  $element["meta_title"], // title элемента
       "ELEMENT_META_KEYWORDS"                 =>  $element["meta_keywords"], // ключевые слова элемента
       "ELEMENT_META_DESCRIPTION"              =>  $element["meta_description"], // сео-описание элемента
       "ELEMENT_PAGE_TITLE"                    =>  $element["name"], // title страницы
       "ELEMENT_PREVIEW_PICTURE_FILE_ALT"      =>  $element["img"]["alt_text"], // альт для привью (маленькой) картинки
       "ELEMENT_PREVIEW_PICTURE_FILE_TITLE"    =>  $element["img"]["title_text"], // тайтл для привью (маленькой) картинки
       "ELEMENT_PREVIEW_PICTURE_FILE_NAME"     =>  $element["img"]["name"], // имя прьвью картинки
       "ELEMENT_DETAIL_PICTURE_FILE_ALT"       =>  $element["img"]["alt_text"],
       "ELEMENT_DETAIL_PICTURE_FILE_TITLE"     =>  $element["img"]["title_text"],
       "ELEMENT_DETAIL_PICTURE_FILE_NAME"      =>  $element["img"]["name"],
);