Закрыть и открыть сайт
Самые важные директивы robots.txt — это Disallow и Allow. С помощью них можно закрыть сайт (например, на стадии разработки) и открыть его (после разработки и переноса на «боевой» домен).
Закрыть от индексации сайт
Запрещаем индексацию сайта всем роботам:
User-agent: *
Disallow: /
Открыть к индексации сайт
Разрешаем всем роботам индексацию сайта:
User-agent: *
Allow: /
Директива – это некое указание для поисковых роботов на то, что необходимо индексировать.
Кроме файла robots.txt закрыть или открыть сайт (страницы сайта) можно с помощью специального meta тега robots, однако данный тег не освобождает владельца сайта от необходимости иметь на сервере отдельный файл robot.txt
Директива User-agent
User-agent – самая первая директива, которая позволяет обратиться к роботам поисковых систем. Рядом с ней указывается название поисковой системы или * (звездочка).
* (звездочка) в директиве User-agent позволяет обращаться ко всем поисковым системам сразу.
Система | Запись в User-agent | Описание |
GoogleBot | Робот Google | |
Яндекс | YandexBot | Основной робот Яндекса |
Яндекс | YandexMobileBot | Мобильный робот Яндекса |
Яндекс | Yandex | Робот, который будет использовать все другие боты от Яндекса (основной и мобильый) – используется чаще всего. |
Bing | BingBot | Основной робот от поисковой системы bing.com |
Mail.ru | Mail.ru | Робот от поисковой системы mail |
Rambler | StackRambler | Робот от поисковой системы rambler |
В большинстве своих проектов нам достаточно лишь:
User-agent: Yandex
User-agent: GoogleBot
#Для всех остальных поисковиков используем
User-agent: *
Директива Disallow
Директива Disallow – означает запрет к индексации страницы, раздела или файла.
Пример:
#запрещает индексировать весь сайт
Disallow: /
#запрещает индексировать все страницы, в url которых
содержится visit
Disallow: /*visit
* (звездочка) означает то, что перед нашим названием файла (папки) может стоять все, что угодно.
Директива Allow
Директива Allow – означает допуск к индексации страницы, раздела или файла.
Как открыть к индексации страницу или раздел:
Allow: /uploads
На данном примере мы открыли раздел /uploads.
Как открыть файл из закрытого раздела:
Disallow: /*bitrix
Allow: /*bitrix*jpg
В этом примере мы запрещаем индексировать все страницы, в которых содержится слово bitrix, но разрешаем индексировать страницы, в которых есть и bitrix и jpg, однако все другие страницы со словом bitrix в url адресе, которые не содержат символов jpg будут закрыты.
Директива Host
Директива Host – ранее в ней указывалось главное зеркало, но сейчас данная директива не используется поисковыми системами и ее можно не прописывать в файле robots.txt, т.к. сейчас все роботы смотрят на корректную настройку 301 редиректа, а не на то, что написано в директиве host. Информацию по этому поводу можно прочитать в статье Яндекса. Если вы добавите данную директиву в свой файл robots.txt, то ничего страшного от этого не произойдет, главное не забудьте настроить правильно зеркала.
Директива Sitemap
Sitemap – директива, служащая для указания на xml карту сайта, которая также обязательно должна быть на любом сайте (даже одностраничном). В карте сайта указывается список страниц, которые должны быть проиндексированы поисковой системой.
Директива указывается в самом конце файла robots.txt в виде url-адреса до файла карты сайта .xml
Спецсимволы *, $ в robots.txt
В файле robots.txt при указании путей можно использовать символы * и $ , задавая определенные регулярные выражения.
* означает любую последовательность символов. По-умолчанию к концу каждого правила, описанного в файле роботс тхт, приписывается спецсимвол *
$ данный спецсимвол служит для отмены * на конце.
Примеры:
Disallow /*visit/
Для данного правила:
example.com/visit/ — закрыт
example.com/visit/search/ — закрыт
example.com/visit/search/laptop/ — закрыт
Disallow /*visit/$
example.com/visit/ — закрыт
example.com/visit/search/ — открыт
example.com/visit/search/laptop/ — открыт
Как проверить robots.txt
Чтобы проверить правильное заполнение файла robots.txt можно воспользоваться сервисом Яндекс.Webmaster, в который уже должен быть добавлен ваш сайт.
На странице Инструменты -> Анализ robots.txt
Внизу есть поле для проверки страницы (доступна она для индексации или нет).
Вы можете скопировать интересующий вас url адрес вашего сайта в данную форму и проверить – доступна страница к индексации или нет.
Например, для одного нашего туристического проекта на кириллическом домене «рф» проскакивали адреса на латинице вида cashback.html на конце (это была особенность разработки и системы управления). Эти url-адреса нужно было, во-первых закрыть от индексации, во-вторых настроить 301 редирект.
Мы добавили:
Disallow: /*cashback.html
и вот, что получилось:
url адрес с cashback.html выдал ошибку (то, что нам и нужно было), а url-адрес с обычным url – проверку прошел. Всего-лишь одной небольшой командой мы избавились от проблемы. И в идеальном случае нужно было бы доработать систему и отфильтровать адреса (эта задача поставлена на будущее), но на данный момент мы отделались «малой кровью», настроив корректно редиректы и установив запрет к индексации.
Для перепроверки, можно производить различные тесты над вашим файлом robots.txt.
Допустим, вы не уверены в правильности написания определенных команд, в этом случае просто измените директиву на этой же странице в Яндекс.Вебмастер и протестируйте как будет выглядеть результат с измененным robots.txt (при этом основной ваш файл роботс, который лежит на сервере — править не нужно).
На своем примере — мы удалили строчку Disallow: /*cashback.html
и вот, что у нас получилось:
Все страницы доступны к индексации.
Данные методы тестирования применимы как к небольшим, так и к крупным проектам. Особенно, если есть мультиязычная версия и добавлено много правил.
Например, нам нужно, чтобы не индексировалась страница /travelguides/, но индексировалась travelguides/austria/. В этом случае мы создаем такое правило:
Disallow: /*travelguides/$
Кириллица в файле Robots
ВАЖНО ДЛЯ ВСЕХ ДОМЕНОВ .РФ – все страницы на кириллице прописываются в robots.txt в Punycode (паникод), то есть теми самыми «иероглифами», которые сложно разобрать. Такая уж особенность. Чтобы сделать пани-код можно воспользоваться онлайн-генератором.
Что нужно обязательно закрывать в robots.txt
В файле robots.txt обязательно закрываем дубли страниц (в том числе дубли главной страницы), служебные страницы, неинформативные страницы, «хвосты» платных каналов и рекламы, динамические url, которых нет в структуре сайта.
Динамические страницы можно закрыть с помощью «маски», то есть с помощью шаблона, который применим для определенного количества страниц сайта.
Например, мы видим, что в платном канале используются url с хвостами, где содержится параметр param=id
example.com/page/tm_mebel_qw2_r1_param=id_r1_1455156
Мы не будем закрывать каждую страницу от индексации, а используем маску:
Disallow: /*param=id
то есть мы закрыли тем самым от индексации станицы, которые содержат param=id , т.к. это является дублями.
Также, необходимо закрывать от индексации страницы с результатами поиска, фильтрации, страницам печати, страницы пагинации и т.п.
Например, закрываем страницу с выводами результатов поиска:
Для данного примера конструкция закрытия от индексации будет:
Disallow: /*search
тем самым мы закрыли страницу результатов поиска и все дополнительные «хвосты», связанные с ней.
Также, необходимо закрыть «служебные» страницы, например, страницу с корзиной.
Иностранная версия сайта
Если сайт содержит в себе иностранную версию страниц и контент на этих страницах полностью дублирует русскоязычную версию, то обязательно нужно закрывать данную страницу от индексации (если только это не является русскоязычным переводом).