Агентство
интернет-маркетинга

 

Файл robots.txt или как сделать робота своими руками

14.11.2014

66 074

Как создать правильный файл robots.txt, настройка, директивы Файл robots.txt - текстовый файл в формате .txt, ограничивающий поисковым роботам доступ к содержимому на http-сервере. Как определение, Robots.txt - это стандарт исключений для роботов, который был принят консорциумом W3C 30 января 1994 года, и который добровольно использует большинство поисковых систем. Файл robots.txt состоит из набора инструкций для поисковых роботов, которые запрещают индексацию определенных файлов, страниц или каталогов на сайте. Рассмотрим описание robots.txt для случая, когда сайт не ограничивает доступ роботам к сайту. Простой пример:
User-agent: *
Allow: /
Здесь роботс полностью разрешает индексацию всего сайта. Файл robots.txt необходимо загрузить в корневой каталог вашего сайта, чтобы он был доступен по адресу:
ваш_сайт.ru/robots.txt
Для размещения файла в корне сайта обычно необходим доступ через FTP. Однако, некоторые системы управления (CMS) дают возможность создать robots.txt непосредственно из панели управления сайтом или через встроенный FTP-менеджер. Если файл доступен, то вы увидите содержимое в браузере.

Для чего нужен robots.txt

Сформированный файл для сайта является важным аспектом поисковой оптимизации. Зачем нужен robots.txt? Например, в SEO robots.txt нужен для того, чтобы исключать из индексации страницы, не содержащие полезного контента и многое другое. Как, что, зачем и почему исключается уже было описано в статье про запрет индексации страниц сайта, здесь не будем на этом останавливаться. Нужен ли файл robots.txt всем сайтам? И да и нет. Если использование подразумевает исключение страниц из поиска, то для небольших сайтов с простой структурой и статичными страницами подобные исключения могут быть лишними. Однако, и для небольшого сайта могут быть полезны некоторые директивы, например директива Host или Sitemap, но об этом ниже.

Как создать robots.txt

Поскольку это текстовый файл, нужно воспользоваться любым текстовым редактором, например Блокнотом. Как только вы открыли новый текстовый документ, вы уже начали создание robots.txt, осталось только составить его содержимое, в зависимости от ваших требований, и сохранить в виде текстового файла с названием robots в формате txt. Все просто, и создание файла не должно вызвать проблем даже у новичков. О том, как составить и что писать в роботсе на примерах покажу ниже.

Cоздать robots.txt онлайн

Вариант для ленивых: скачать в уже в готовом виде. Создание robots txt онлайн предлагает множество сервисов, выбор за вами. Главное - четко понимать, что будет запрещено и что разрешено, иначе создание файла robots.txt online может обернуться трагедией, которую потом может быть сложно исправить. Особенно, если в поиск попадет то, что должно было быть закрытым. Будьте внимательны - проверьте свой файл роботс, прежде чем выгружать его на сайт. Все же пользовательский файл robots.txt точнее отражает структуру ограничений, чем тот, что был сгенерирован автоматически и скачан с другого сайта. Читайте дальше, чтобы знать, на что обратить особое внимание при редактировании robots.txt.

Редактирование robots.txt

После того, как вам удалось создать файл robots.txt онлайн или своими руками, вы можете редактировать robots.txt. Изменить его содержимое можно как угодно, главное - соблюдать некоторые правила и синтаксис robots.txt. В процессе работы над сайтом, файл роботс может меняться, и если вы производите редактирование robots.txt, то не забывайте выгружать на сайте обновленную, актуальную версию файла со всем изменениями. Далее рассмотрим правила настройки файла, чтобы знать, как изменить файл robots.txt и «не нарубить дров».

Правильная настройка robots.txt

Правильная настройка robots.txt позволяет избежать попадания частной информации в результаты поиска крупных поисковых систем. Однако, не стоит забывать, что команды robots.txt не более чем руководство к действию, а не защита. Роботы надежных поисковых систем, вроде Яндекс или Google, следуют инструкциям robots.txt, однако прочие роботы могут легко игнорировать их. Правильное понимание и применение robots.txt - залог получения результата. Чтобы понять, как сделать правильный robots txt, для начала необходимо разобраться с общими правилами, синтаксисом и директивами файла robots.txt. Правильный robots.txt начинается с директивы User-agent, которая указывает, к какому роботу обращены конкретные директивы. Примеры User-agent в robots.txt:
# Указывает директивы для всех роботов одновременно
User-agent: *

# Указывает директивы для всех роботов Яндекса
User-agent: Yandex

# Указывает директивы для только основного индексирующего робота Яндекса
User-agent: YandexBot

# Указывает директивы для всех роботов Google
User-agent: Googlebot
Учитывайте, что подобная настройка файла robots.txt указывает роботу использовать только директивы, соответствующие user-agent с его именем. Пример robots.txt с несколькими вхождениями User-agent:
# Будет использована всеми роботами Яндекса
User-agent: Yandex
Disallow: /*utm_

# Будет использована всеми роботами Google
User-agent: Googlebot
Disallow: /*utm_

# Будет использована всеми роботами кроме роботов Яндекса и Google
User-agent: *
Allow: /*utm_
Директива User-agent создает лишь указание конкретному роботу, а сразу после директивы User-agent должна идти команда или команды с непосредственным указанием условия для выбранного робота. В примере выше используется запрещающая директива «Disallow», которая имеет значение «/*utm_». Таким образом, закрываем все страницы с UTM-метками. Правильная настройка robots.txt запрещает наличие пустых переводов строки между директивами «User-agent», «Disallow» и директивами следующими за «Disallow» в рамках текущего «User-agent». Пример неправильного перевода строки в robots.txt:
User-agent: Yandex

Disallow: /*utm_

Allow: /*id=

User-agent: *

Disallow: /*utm_

Allow: /*id=
Пример правильного перевода строки в robots.txt:
User-agent: Yandex
Disallow: /*utm_
Allow: /*id=

User-agent: *
Disallow: /*utm_
Allow: /*id=
Как видно из примера, указания в robots.txt поступают блоками, каждый из которых содержит указания либо для конкретного робота, либо для всех роботов «*». Кроме того, важно соблюдать правильный порядок и сортировку команд в robots.txt при совместном использовании директив, например «Disallow» и «Allow». Директива «Allow» - разрешающая директива, является противоположностью команды robots.txt «Disallow» - запрещающей директивы. Пример совместного использования директив в robots.txt:
User-agent: *
Allow: /blog/page
Disallow: /blog
Данный пример запрещает всем роботам индексацию всех страниц, начинающихся с «/blog», но разрешает индексации страниц, начинающиеся с «/blog/page». Прошлый пример robots.txt в правильной сортировке:
User-agent: *
Disallow: /blog
Allow: /blog/page
Сначала запрещаем весь раздел, потом разрешаем некоторые его части. Еще один правильный пример robots.txt с совместными директивами:
User-agent: *
Allow: /
Disallow: /blog
Allow: /blog/page
Обратите внимание на правильную последовательность директив в данном robots.txt. Директивы «Allow» и «Disallow» можно указывать и без параметров, в этом случае значение будет трактоваться обратно параметру «/». Пример директивы «Disallow/Allow» без параметров:
User-agent: *
Disallow: # равнозначно Allow: /
Disallow: /blog
Allow: /blog/page
Как составить правильный robots.txt и как пользоваться трактовкой директив - ваш выбор. Оба варианта будут правильными. Главное - не запутайтесь. Для правильного составления robots.txt необходимо точно указывать в параметрах директив приоритеты и то, что будет запрещено для скачивания роботам. Более полно использование директив «Disallow» и «Allow» мы рассмотрим чуть ниже, а сейчас рассмотрим синтаксис robots.txt. Знание синтаксиса robots.txt приблизит вас к тому, чтобы создать идеальный robots txt своими руками.

Синтаксис robots.txt

Роботы поисковых систем добровольно следуют командам robots.txt - стандарту исключений для роботов, однако не все поисковые системы трактуют синтаксис robots.txt одинаково. Файл robots.txt имеет строго определённый синтаксис, но в то же время написать robots txt не сложно, так как его структура очень проста и легко понятна. Вот конкретные список простых правил, следуя которым, вы исключите частые ошибки robots.txt:
  1. Каждая директива начинается с новой строки;
  2. Не указывайте больше одной директивы в одной строке;
  3. Не ставьте пробел в начало строки;
  4. Параметр директивы должен быть в одну строку;
  5. Не нужно обрамлять параметры директив в кавычки;
  6. Параметры директив не требуют закрывающих точки с запятой;
  7. Команда в robots.txt указывается в формате - [Имя_директивы]:[необязательный пробел][значение][необязательный пробел];
  8. Допускаются комментарии в robots.txt после знака решетки #;
  9. Пустой перевод строки может трактоваться как окончание директивы User-agent;
  10. Директива «Disallow: » (с пустым значением) равнозначна «Allow: /» - разрешить все;
  11. В директивах «Allow», «Disallow» указывается не более одного параметра;
  12. Название файла robots.txt не допускает наличие заглавных букв, ошибочное написание названия файла - Robots.txt или ROBOTS.TXT;
  13. Написание названия директив и параметров заглавными буквами считается плохим тоном и если по стандарту, robots.txt и нечувствителен к регистру, часто к нему чувствительны имена файлов и директорий;
  14. Если параметр директивы является директорией, то перед название директории всегда ставится слеш «/», например: Disallow: /category
  15. Слишком большие robots.txt (более 32 Кб) считаются полностью разрешающими, равнозначными «Disallow: »;
  16. Недоступный по каким-либо причинам robots.txt может трактоваться как полностью разрешающий;
  17. Если robots.txt пустой, то он будет трактоваться как полностью разрешающий;
  18. В результате перечисления нескольких директив «User-agent» без пустого перевода строки, все последующие директивы «User-agent», кроме первой, могут быть проигнорированы;
  19. Использование любых символов национальных алфавитов в robots.txt не допускается.
Поскольку разные поисковые системы могут трактовать синтаксис robots.txt по-разному, некоторые пункты можно опустить. Так например, если прописать несколько директив «User-agent» без пустого перевода строки, все директивы «User-agent» будут восприняты корректно Яндексом, так как Яндекс выделяет записи по наличию в строке «User-agent». В роботсе должно быть указано строго только то, что нужно, и ничего лишнего. Не думайте, как прописать в robots txt все, что только можно и чем его заполнить. Идеальный robots txt - это тот, в котором меньше строк, но больше смысла. «Краткость - сестра таланта». Это выражение здесь как нельзя кстати.

Как проверить robots.txt

Для того, чтобы проверить robots.txt на корректность синтаксиса и структуры файла, можно воспользоваться одной из онлайн-служб. К примеру, Яндекс и Google предлагают собственные сервисы анализа сайта для вебмастеров, которые включают анализ robots.txt: Проверка файла robots.txt в Яндекс.Вебмастер: http://webmaster.yandex.ru/robots.xml Проверка файла robots.txt в Google: https://www.google.com/webmasters/tools/siteoverview?hl=ru Для того, чтобы проверить robots.txt онлайн необходимо загрузить robots.txt на сайт в корневую директорию. Иначе, сервис может сообщить, что не удалось загрузить robots.txt. Рекомендуется предварительно проверить robots.txt на доступность по адресу где лежит файл, например: ваш_сайт.ru/robots.txt. Кроме сервисов проверки от Яндекс и Google, существует множество других онлайн валидаторов robots.txt.

Robots.txt vs Яндекс и Google

Есть субъективное мнение, что указание отдельного блока директив «User-agent: Yandex» в robots.txt Яндекс воспринимает более позитивно, чем общий блок директив с «User-agent: *». Аналогичная ситуация robots.txt и Google. Указание отдельных директив для Яндекс и Google позволяет управлять индексацией сайта через robots.txt. Возможно, им льстит персонально обращение, тем более, что для большинства сайтов содержимое блоков robots.txt Яндекса, Гугла и для других поисковиков будет одинаково. За редким исключением, все блоки «User-agent» будут иметь стандартный для robots.txt набор директив. Так же, используя разные «User-agent» можно установить запрет индексации в robots.txt для Яндекса, но, например не для Google. Отдельно стоит отметить, что Яндекс учитывает такую важную директиву, как «Host», и правильный robots.txt для яндекса должен включать данную директиву для указания главного зеркала сайта. Подробнее директиву «Host» рассмотрим ниже.

Запретить индексацию: robots.txt Disallow

Disallow - запрещающая директива, которая чаще всего используется в файле robots.txt. Disallow запрещает индексацию сайта или его части, в зависимости от пути, указанного в параметре директивы Disallow. Пример как в robots.txt запретить индексацию сайта:
User-agent: *
Disallow: /
Данный пример закрывает от индексации весь сайт для всех роботов. В параметре директивы Disallow допускается использование специальных символов * и $: * - любое количество любых символов, например, параметру /page* удовлетворяет /page, /page1, /page-be-cool, /page/kak-skazat и т.д. Однако нет необходимости указывать * в конце каждого параметра, так как например, следующие директивы интерпретируются одинаково:
User-agent: Yandex
Disallow: /page
User-agent: Yandex
Disallow: /page*
$ - указывает на точное соответствие исключения значению параметра:
User-agent: Googlebot
Disallow: /page$
В данном случае, директива Disallow будет запрещать /page, но не будет запрещать индексацию страницы /page1, /page-be-cool или /page/kak-skazat. Если закрыть индексацию сайта robots.txt, в поисковые системы могут отреагировать на так ход ошибкой «Заблокировано в файле robots.txt» или «url restricted by robots.txt» (url запрещенный файлом robots.txt). Если вам нужно запретить индексацию страницы, можно воспользоваться не только robots txt, но и аналогичными html-тегами:
  • <meta name="robots" content="noindex"/> — не индексировать содержимое страницы;
  • <meta name="robots" content="nofollow"/> — не переходить по ссылкам на странице;
  • <meta name="robots" content="none"/> — запрещено индексировать содержимое и переходить по ссылкам на странице;
  • <meta name="robots" content="noindex, nofollow"/> - аналогично content="none".

Разрешить индексацию: robots.txt Allow

Allow - разрешающая директива и противоположность директиве Disallow. Эта директива имеет синтаксис, сходный с Disallow. Пример, как в robots.txt запретить индексацию сайта кроме некоторых страниц:
User-agent: *
Disallow: /
Allow: /page
Запрещается индексировать весь сайт, кроме страниц, начинающихся с /page.

Disallow и Allow с пустым значением параметра

Пустая директива Disallow:
User-agent: *
Disallow:
Не запрещать ничего или разрешить индексацию всего сайта и равнозначна:
User-agent: *
Allow: /
Пустая директива Allow:
User-agent: *
Allow:
Разрешить ничего или полный запрет индексации сайта, равнозначно:
User-agent: *
Disallow: /

Главное зеркало сайта: robots.txt Host

Директива Host служит для указания роботу Яндекса главного зеркала Вашего сайта. Из всех популярных поисковых систем, директива Host распознаётся только роботами Яндекса. Директива Host полезна в том случае, если ваш сайт доступен по нескольким доменам, например:
mysite.ru
mysite.com
Или для определения приоритета между:
mysite.ru
www.mysite.ru
Роботу Яндекса можно указать, какое зеркало является главным. Директива Host указывается в блоке директивы «User-agent: Yandex» и в качестве параметра, указывается предпочтительный адрес сайта без «http://». Пример robots.txt с указанием главного зеркала:
User-agent: Yandex
Disallow: /page
Host: mysite.ru
В качестве главного зеркала указывается доменное имя mysite.ru без www. Таки образом, в результатах поиска буде указан именно такой вид адреса.
User-agent: Yandex
Disallow: /page
Host: www.mysite.ru
В качестве основного зеркала указывается доменное имя www.mysite.ru. Директива Host в файле robots.txt может быть использована только один раз, если же директива Хост будет указана более одного раза, учитываться будет только первая, прочие директивы Host будут игнорироваться. Если вы хотите указать главное зеркало для робота Google, воспользуйтесь сервисом Google Инструменты для вебмастеров.

Карта сайта: robots.txt sitemap

При помощи директивы Sitemap, в robots.txt можно указать расположение на сайте файла карты сайта sitemap.xml. Пример robots.txt с указанием адреса карты сайта:
User-agent: *
Disallow: /page
Sitemap: http://www.mysite.ru/sitemap.xml
Указание адреса карты сайта через директиву Sitemap в robots.txt позволяет поисковому роботу узнать о наличии карты сайта и начать ее индексацию.

Директива Clean-param

Директива Clean-param позволяет исключить из индексации страницы с динамическими параметрами. Подобные страницы могут отдавать одинаковое содержимое, имея различные URL страницы. Проще говоря, будто страница доступна по разным адресам. Наша задача убрать все лишние динамические адреса, которых может быть миллион. Для этого исключаем все динамические параметры, используя в robots.txt директиву Clean-param. Синтаксис директивы Clean-param:
Clean-param: parm1[&parm2&parm3&parm4&..&parmn] [Путь]
Рассмотрим на примере страницы со следующим URL:
www.mysite.ru/page.html?&parm1=1&parm2=2&parm3=3
Пример robots.txt Clean-param:
Clean-param: parm1&parm2&parm3 /page.html # только для page.html
или
Clean-param: parm1&parm2&parm3 / # для всех

Директива Crawl-delay

Данная инструкция позволяет снизить нагрузку на сервер, если роботы слишком часто заходят на ваш сайт. Данная директива актуальна в основном для сайтов с большим объемом страниц. Пример robots.txt Crawl-delay:
User-agent: Yandex
Disallow: /page
Crawl-delay: 3
В данном случае мы «просим» роботов яндекса скачивать страницы нашего сайта не чаще, чем один раз в три секунды. Некоторые поисковые системы поддерживают формат дробных чисел в качестве параметра директивы Crawl-delay robots.txt.

Комментарии в robots.txt

Комментарий в robots.txt начинаются с символа решетки - #, действует до конца текущей строки и игнорируются роботами. Примеры комментариев в robots.txt:
User-agent: *
# Комментарий может идти от начала строки
Disallow: /page # А может быть продолжением строки с директивой
# Роботы
# игнорируют
# комментарии
Host: www.mysite.ru

В заключении

Файл robots.txt - очень важный и нужный инструмент взаимодействия с поисковыми роботами и один из важнейших инструментов SEO, так как позволяет напрямую влиять на индексацию сайта. Используйте роботс правильно и с умом. Если у вас есть вопросы - пишите в комментариях. Рекомендуйте статью друзьям и не забывайте подписываться на блог. Новые интересные статьи каждый день.
Готовы пообщаться?Готовы пообщаться?Готовы пообщаться?

Комментарии

    1. Oksana Salvarovskaja

      было бы интересно найти такой пример) ведь для каждой cms свой роботс) у каждого сайта есть свои уникальные страницы, которые надо закрывать) Наверное, для всех можно выделить только директории админа))

  1. Oksana Salvarovskaja

    вот эта строка» Будет использована всеми роботами кроме роботов Яндекса и Google
    User-agent: * » — разве это так? во всех источниках, да и на практике — это «правило равнозначное для всех роботов», при этом для каждого можно отдельно. Я сбита с толку)

    1. Denis Sharov

      1. в любой ЦМС, есть правильный файл роботс
      2. на 99% сайтов вы можете посмотреть его сами по адресу сайт/ротос.тхт

  2. Jane Evgenia

    Здравствуйте! Статья полезная, но невероятна тяжело читается и воспринимается. Каждое второе слово — robots.txt — просто мешает понять суть (всего их около 130 в статье!)

  3. Юрий Иванович

    Спасибо за полезную статью.
    Вопрос: есть основной сайт и его зеркало.
    С зеркала сделан редирект на основной сайт. При диагностике зеркала появилось «Сервер отвечает редиректом на запрос /robots.txt. Робот обходчик не смог получить доступ к файлу robots.txt . Из-за отсутствия параметров индексирования и инструкций в поиск могут попасть нежелательные страницы.
    Вопрос: что делать в этой ситуации, когда из за редиректа, который необходим, на зеркале сайта поисковику нет доступа на robots .txt.

  4. Антон Пашкевич

    А как быть в случае, когда основной домен (сайт.ру) не используется, а используются только его поддомены (ваш.сайт.ру)? Роботс создается для каждого свой или один на все?

    1. Лаппо Виталий

      Поддомен считается как с технической точки зрения, так и с точки зрения поисковой системы — отдельным сайтом, поэтому нужно делать роботс под каждый поддомен…

  5. Ali

    Другoй формат файла Sitemap это текстовый файл sitemap.txt (в каждой строке должен быть только один URL).

    1. moderator

      Ali, есть правила по форматам файлов индексации.
      Пробовать этот бред не буду, но, вангую, системы напишут «формат этого файла Sitemap не поддерживается».
      Что за мысль вообще такая странная??
      Ждем вашего ответа, естественно)

    1. moderator

      В robots.txt дополнительно прописывать не надо, это ваши обычные страницы транслируемые через rss-фид c серверов Яндекса. Все пожелания для них вы уже указали.

  6. Илона

    Уточните пожалуйста. Если главная страница сайта открывается по нескольким адресам ( http, https, c / в конце и без него, www и без него). Надо выбрать один адрес. Например, https://сайт/, а все остальные запретить обходить и вписать в файл robot. txt, вписывая каждый адрес с новой строки с Clean-param:… А ту не поняла. Можете написать пример, если надо запретить url- http://www.сайт

  7. Metalampio

    Подскажите, пожалуйста. В роботс.тхт есть такая запись Disallow: *Vivoil* [марка производителя]. Как интерпретировать эту запись? Может ли быть такое, что все УРЛ, где есть это слово, не индексируются?

  8. Оксана

    Добрый день. Подскажите, у меня на сайте есть баннер партнера со ссылкой на его сайт.
    Если поисковый робот посетит мои страницы, он попадет на эту «чужую» ссылку и проиндексирует ее? То есть по ней он и уйдет от меня … Как закрыть чужой сайт в robots?
    Заранее спасибо

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кейсы