Бывает требуется закрыть сайт от индексации, чтобы в поиске гугл или яндекс ссылок на ваш сайт не было. Рассмотрим несколько способов.
Способ от сеошников, через robots.txt
Самый распространённый и простой способ. В корне сайт надо найти файл robots.txt и добавить туда строки
User-agent: *
Disallow: /
Редактировать файл можно через FTP или через админку Битрикс. Если работаете по второму способу, открывайте файл как PHP, потому что только в этом случае не будет лишнего форматирования файла.
Но этот способ не надежный. Google всё равно может выводить сайт в поиске, только будет указано "Информация об этой странице недоступна." Пояснение гугл по этому поводу
Так же, если вы закрываете от индексации тестовый сайт и используете систему контроля версий, например гит, то файл может перенестись на продакшн сайт.
Чтобы проверить, откройте файл в браузере по адресу http://ваш_сайт/robots.txt. Там должны быть строки, которые мы добавили выше.
Способ от программистов. Через тег meta robots
Если вы закрываете от индексации тестовый сайт, то определить его можно через настройку главного модуля "Установка для разработки". Этот параметр должен быть установлен на всех сайтах для разработки, по правилам Битрикс.
В файл /local/php_interface/init.php, либо в /bitrix/php_interface/init.php, в зависимости от того, какой файл у вас есть, добавляем строки
if (\Bitrix\Main\Config\Option::get('main', 'update_devsrv') === 'Y') {
$APPLICATION->SetPageProperty('robots', 'noindex');
}
Если вы хотите закрыть продакш сайт, то уберите условие, чтобы свойство устанавливалось всегда.
На всём сайте должна появиться такая строчка в исходном коде
Вот что нам говорит гугл по поводу тега.
Что важно понять - если вы заблокируете индексацию через robots.txt, дополнительно через тег meta, а на сайт есть ссылки из вне - сайт попадет в поиск. Уберите запрет из robots.txt.
От сисадмина. Запрет по Useragent через .htaccess
В корне сайт в файл .htaccess требуется добавить стоки
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent Googlebot search_bot
SetEnvIfNoCase User-Agent YandexBot search_bot
SetEnvIfNoCase User-Agent yandex.com/bots search_bot
SetEnvIfNoCase User-Agent Slurp search_bot
SetEnvIfNoCase User-Agent dotbot search_bot
SetEnvIfNoCase User-Agent BLEXbot search_bot
SetEnvIfNoCase User-Agent MJ12bot search_bot
SetEnvIfNoCase User-Agent Ahrefsbot search_bot
SetEnvIfNoCase User-Agent Semrush search_bot
<Limit GET POST>
Order Allow,Deny
Allow from all
Deny from env=search_bot
</Limit>
</IfModule>
Так мы запрещает доступ к серверу пользователям, чье имя браузера содержит Googlebot, YandexBot... Так помечают себя поисковики.
Строка "yandex.com/bots" добавлена, так как имя браузера бота яндекса не всегда содержит YandexBot. Может быть "Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)". Список всех вариантов роботов от Яндекс.
Так поисковики не смогут попасть на сайт, соответственно не смогут его и проиндексировать. Но работать с . htaccess следует аккуратно, так как можно "положить" весь сайт.
Чтобы проверить способ, в браузер потребуется установить расширение для смены useragent. В маркетплейсе расширений ищите "User agent switcher", устанавливайте любое, в котором можно ставить свое значение, а не только выбирать из списка.. В расширении ставите useragent из списка роботов яндекс, ссылка выше.
Определить ваш текущий браузер можно по ссылке. Когда вы установите useragent яндекс бота, в определении браузера должен появиться текст, что вы яндекс бот.
От сисадмина 2. Добавление HTTP авторизации на сайт
В файл .htaccess следует добавить строки
AuthType Basic
AuthName "Authorization"
AuthUserFile /путь_до_директории/.htpasswd
Require valid-user
Чтобы получить файл .htpasswd, загуглите ".htpasswd генератор онлайн".
После при первом заходе на сайт, браузер запросит у вас логин и пароль. Поисковики ничего вводить не будут и на сайт не попадут.
Частные случаи закрытия от индексации
Закрыть от индексации страницы пагинации в Битрикс
Чтобы закрыть от индексации страницы пагинации, добавьте следующую запись в robots.txt. Внимание: добавлять строки надо после строки User-Agent: *
Disallow: ?PAGEN_*
Disallow: &PAGEN_*
Должно получиться так:
Закрыть страницу от индексации
Тут есть 2 пути:
- Через файл роботс. Добавьте в файл robots.txt в корне вашего сайта строку, после строки User-Agent: *, где /your_page/ - адрес вашей страницы, без указания домена:
Disallow: /your_page/
Либо через свойства страницы в Битрикс:
Нажмите в панели над сайтом Изменить страницу - Заголовок и свойства страницы - Редактировать в панели управления - Вкладка Свойства - нажмите Еще - там спишите свойство robots, значение noindex. Сохраните
Спасибо за информацию
$APPLICATION->SetPageProperty("robots", "noindex, nofollow"); - не работает.
Вславляю, ессно, в начало скрипта index.php публичной папки, после подключения /bitrix/header.php
возможно у вас старый битрикс. Или свойство где-то устанавливается после в пустое значение.
Попробуйте в header.php шаблона добавить $APPLICATION->ShowMeta("robots")?>