При управлении сайтом часто возникает необходимость скрыть отдельные страницы от поисковых систем. Это могут быть служебные разделы, тестовые страницы, дубликаты контента, страницы с конфиденциальной информацией или временные акции. В 1С-Битрикс для этого используется мета-тег robots с директивами noindex и nofollow. Рассмотрим, как установить такой запрет программно через API системы.
Что такое мета-тег robots и директивы noindex, nofollow
Мета-тег robots размещается в блоке <head> HTML-документа и передаёт поисковым роботам инструкции по индексации конкретной страницы. Две основные директивы:
- noindex — запрещает добавление страницы в поисковый индекс (она не будет показываться в результатах поиска).
- nofollow — запрещает переход по ссылкам на странице, то есть поисковый робот не будет учитывать ссылки с этой страницы.
Эти директивы можно использовать как по отдельности, так и вместе. Например, комбинация noindex, nofollow полностью закрывает страницу от поисковых систем.
Способы установки запрета индексации в Битрикс
В 1С-Битрикс есть два основных способа добавить мета-тег robots на конкретную страницу:
- Через административный интерфейс — при редактировании страницы или раздела на вкладке «SEO» можно заполнить поле «Robots» нужными директивами.
- Программно через API — с помощью метода
SetPageProperty объекта $APPLICATION. Этот способ удобен, когда нужно динамически управлять индексацией в зависимости от условий, или если страница создаётся не через стандартный редактор.
Программная установка мета-тега robots через API
Для программного запрета индексации используется следующий код:
<?php
$APPLICATION->SetPageProperty('robots', 'noindex, nofollow');
?>
Эту строку необходимо разместить в начале файла страницы (например, в верхней части index.php или detail.php) до вызова функции ShowHead(), так как именно она отвечает за вывод всех мета-тегов, включая robots.
Где именно размещать код
- Непосредственно в PHP-файл шаблона компонента или страницы перед вызовом
$APPLICATION->ShowHead().
- В файл
result_modifier.php компонента, если нужно управлять индексацией на основе данных компонента.
- В обработчике события или в пользовательском коде, который выполняется на ранней стадии формирования страницы.
Проверка корректности вывода
Чтобы мета-тег появился в HTML-коде страницы, необходимо, чтобы в шаблоне в секции <head> присутствовал вызов <?=$APPLICATION->ShowHead()?>. Именно эта функция генерирует все стандартные мета-теги, включая robots, установленный через SetPageProperty. Если шаблон использует устаревшую структуру, можно вручную вывести свойство:
<meta name="robots" content="<?=$APPLICATION->GetPageProperty('robots')?>">
Пример для конкретной страницы
Допустим, нужно запретить индексацию страницы с контактами (например, если она содержит временную информацию). В начале файла /contacts/index.php пишем:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetPageProperty('robots', 'noindex, nofollow');
?>
После этого весь стандартный вывод мета-тегов будет включать <meta name="robots" content="noindex, nofollow">.
Как проверить результат
- Откройте нужную страницу в браузере.
- Нажмите правой кнопкой мыши и выберите «Просмотр кода страницы» (или используйте сочетание клавиш Ctrl+U).
- Найдите в секции
<head> строку с name="robots". Если всё сделано верно, вы увидите <meta name="robots" content="noindex, nofollow">.
Также можно воспользоваться инструментами для веб-мастеров (Яндекс.Вебмастер, Google Search Console), чтобы проверить, как поисковики воспринимают страницу.
Важные нюансы
- Мета-тег robots действует только на ту страницу, где он прописан. Для глобального запрета доступа к разделам лучше использовать файл
robots.txt.
- Если в
robots.txt указан запрет на сканирование страницы, а мета-тег разрешает индексацию, приоритет имеет мета-тег, так как робот не сможет прочитать мета-тег, если доступ к странице закрыт в robots.txt. Поэтому для надёжного скрытия страницы рекомендуется комбинировать оба метода.
- Директива
noindex не запрещает сканирование страницы — робот всё равно может посетить её и прочитать содержимое, но не добавит в индекс. Если нужно полностью исключить посещение страницы роботом, используйте nofollow в мета-теге или директиву Disallow в robots.txt.
Заключение
Программная установка мета-тега robots через $APPLICATION->SetPageProperty('robots', 'noindex, nofollow'); — простой и эффективный способ гибко управлять индексацией отдельных страниц в 1С-Битрикс. Он позволяет быстро закрыть от поисковиков любые разделы сайта, не прибегая к правкам в административном интерфейсе. Главное — не забывать проверять корректность вывода мета-тега в исходном коде страницы и при необходимости настраивать шаблон для поддержки этого свойства.
При управлении сайтом часто возникает необходимость скрыть отдельные страницы от поисковых систем. Это могут быть служебные разделы, тестовые страницы, дубликаты контента, страницы с конфиденциальной информацией или временные акции. В 1С-Битрикс для этого используется мета-тег robots с директивами noindex и nofollow. Рассмотрим, как установить такой запрет программно через API системы.
Что такое мета-тег robots и директивы noindex, nofollow
Мета-тег robots размещается в блоке
<head>HTML-документа и передаёт поисковым роботам инструкции по индексации конкретной страницы. Две основные директивы:Эти директивы можно использовать как по отдельности, так и вместе. Например, комбинация
noindex, nofollowполностью закрывает страницу от поисковых систем.Способы установки запрета индексации в Битрикс
В 1С-Битрикс есть два основных способа добавить мета-тег robots на конкретную страницу:
SetPagePropertyобъекта$APPLICATION. Этот способ удобен, когда нужно динамически управлять индексацией в зависимости от условий, или если страница создаётся не через стандартный редактор.Программная установка мета-тега robots через API
Для программного запрета индексации используется следующий код:
Эту строку необходимо разместить в начале файла страницы (например, в верхней части
index.phpилиdetail.php) до вызова функцииShowHead(), так как именно она отвечает за вывод всех мета-тегов, включая robots.Где именно размещать код
$APPLICATION->ShowHead().result_modifier.phpкомпонента, если нужно управлять индексацией на основе данных компонента.Проверка корректности вывода
Чтобы мета-тег появился в HTML-коде страницы, необходимо, чтобы в шаблоне в секции
<head>присутствовал вызов<?=$APPLICATION->ShowHead()?>. Именно эта функция генерирует все стандартные мета-теги, включая robots, установленный черезSetPageProperty. Если шаблон использует устаревшую структуру, можно вручную вывести свойство:Пример для конкретной страницы
Допустим, нужно запретить индексацию страницы с контактами (например, если она содержит временную информацию). В начале файла
/contacts/index.phpпишем:После этого весь стандартный вывод мета-тегов будет включать
<meta name="robots" content="noindex, nofollow">.Как проверить результат
<head>строку сname="robots". Если всё сделано верно, вы увидите<meta name="robots" content="noindex, nofollow">.Также можно воспользоваться инструментами для веб-мастеров (Яндекс.Вебмастер, Google Search Console), чтобы проверить, как поисковики воспринимают страницу.
Важные нюансы
robots.txt.robots.txtуказан запрет на сканирование страницы, а мета-тег разрешает индексацию, приоритет имеет мета-тег, так как робот не сможет прочитать мета-тег, если доступ к странице закрыт вrobots.txt. Поэтому для надёжного скрытия страницы рекомендуется комбинировать оба метода.noindexне запрещает сканирование страницы — робот всё равно может посетить её и прочитать содержимое, но не добавит в индекс. Если нужно полностью исключить посещение страницы роботом, используйтеnofollowв мета-теге или директивуDisallowвrobots.txt.Заключение
Программная установка мета-тега robots через
$APPLICATION->SetPageProperty('robots', 'noindex, nofollow');— простой и эффективный способ гибко управлять индексацией отдельных страниц в 1С-Битрикс. Он позволяет быстро закрыть от поисковиков любые разделы сайта, не прибегая к правкам в административном интерфейсе. Главное — не забывать проверять корректность вывода мета-тега в исходном коде страницы и при необходимости настраивать шаблон для поддержки этого свойства.