Битрикс имеет встроенные инструменты для SEO: управление метатегами, генерацию sitemap и настройку robots.txt. Рассмотрим как управлять всем этим программно и через административный интерфейс.
Установка метатегов страницы
// В шаблоне компонента или странице
global $APPLICATION;
$APPLICATION->SetPageProperty('title', 'Заголовок страницы для SEO');
$APPLICATION->SetPageProperty('description', 'Описание страницы не длиннее 160 символов');
$APPLICATION->SetPageProperty('keywords', 'ключевые, слова, через, запятую');
// В шапке шаблона выводим
$title = $APPLICATION->GetPageProperty('title') ?: $APPLICATION->GetTitle();
$description = $APPLICATION->GetPageProperty('description') ?: '';
$keywords = $APPLICATION->GetPageProperty('keywords') ?: '';
Canonical URL
// В header.php шаблона
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage();
echo '<link rel="canonical" href="' . htmlspecialchars($canonicalUrl) . '">';
// Или через SetPageProperty
$APPLICATION->SetPageProperty('canonical', 'https://example.ru/page/');
Open Graph теги
// В header.php
$ogTitle = $APPLICATION->GetPageProperty('og_title') ?: $pageTitle;
$ogDescription = $APPLICATION->GetPageProperty('og_description') ?: $pageDescription;
$ogImage = $APPLICATION->GetPageProperty('og_image') ?: '/img/default-og.jpg';
?>
<meta property="og:title" content="= htmlspecialchars($ogTitle) ?>">
<meta property="og:description" content="= htmlspecialchars($ogDescription) ?>">
<meta property="og:image" content="= htmlspecialchars($ogImage) ?>">
<meta property="og:url" content="= htmlspecialchars($canonicalUrl) ?>">
<meta property="og:type" content="website">
SEO-свойства инфоблока
Для инфоблоков включите SEO-настройки в Контент → Инфоблоки → [Ваш инфоблок] → Вкладка SEO. Программный доступ:
use Bitrix\Iblock;
// Получить SEO-шаблон инфоблока
$templateObject = Iblock\Template\Entity::create($iblockId);
// Получить метатеги для конкретного элемента
$seoPropValues = Iblock\InheritedProperty\ElementValues::create($iblockId, $elementId);
$seoData = $seoPropValues->getValues();
$APPLICATION->SetPageProperty('title', $seoData['ELEMENT_META_TITLE']);
$APPLICATION->SetPageProperty('description', $seoData['ELEMENT_META_DESCRIPTION']);
$APPLICATION->SetPageProperty('keywords', $seoData['ELEMENT_META_KEYWORDS']);
XML Sitemap
Модуль seo генерирует sitemap автоматически. Настройка в Контент → Поисковая оптимизация → Карта сайта.
// Программное создание файла sitemap
Bitrix\Main\Loader::includeModule('seo');
$sitemapFile = new \Bitrix\Seo\SitemapFile('/', 'sitemap.xml');
$sitemapFile->save([
[
'loc' => 'https://example.ru/',
'lastmod' => date('Y-m-d'),
'changefreq' => 'weekly',
'priority' => '1.0',
],
// ...
]);
robots.txt через CMS
Контент → Поисковая оптимизация → robots.txt. Базовая конфигурация:
User-agent: *
Disallow: /bitrix/
Disallow: /upload/tmp/
Disallow: /search/?*
Disallow: /*?print=
Disallow: /*?PAGEN
Allow: /
Sitemap: https://example.ru/sitemap.xml
Структурированные данные JSON-LD
// В header.php для статьи
if ($isArticlePage) {
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => $pageTitle,
'description' => $pageDescription,
'datePublished' => $articleDate,
'author' => ['@type' => 'Organization', 'name' => 'Ваш сайт'],
];
echo '';
}
Итог
Для SEO в Битрикс: используйте SetPageProperty для метатегов в компонентах, настройте SEO-шаблоны инфоблоков в административной панели, и добавьте JSON-LD разметку в header.php шаблона. Sitemap генерируется автоматически через модуль seo.
